Tkinterを使ってボタンを作っています。
ボタンに画像を貼り付けようとして、このサイトを参考に作ってみたのですが、
うまくいきません。
発生している問題・エラーメッセージ
Traceback (most recent call last): File "C:\Users*****\起動\1.py", line 8, in <module> dimg = tk.PhotoImage(file=dimgpath) File "C:\Users*****\AppData\Local\Programs\Python\Python39\lib\tkinter\__init__.py", line 4064, in __init__ Image.__init__(self, 'photo', name, cnf, master, **kw) File "C:\Users*****\AppData\Local\Programs\Python\Python39\lib\tkinter\__init__.py", line 3997, in __init__ master = _get_default_root('create image') File "C:\Users*****\AppData\Local\Programs\Python\Python39\lib\tkinter\__init__.py", line 297, in _get_default_root raise RuntimeError(f"Too early to {what}: no default root window") RuntimeError: Too early to create image: no default root window
該当のソースコード
python
1import tkinter 2import tkinter as tk 3import subprocess 4import os 5from tkinter import messagebox 6 7dimgpath = os.path.abspath(os.path.join(os.path.dirname(__file__), "discorlogo.png")) 8dimg = tk.PhotoImage(file=dimgpath) 9 10# click時のイベント 11def btn_click(): 12 subprocess.run("C:\Program Files (x86)\Minecraft Launcher\MinecraftLauncher.exe",shell=True) 13 14# 画面作成 15tki = tkinter.Tk() 16tki.attributes('-fullscreen', True) 17tki.title('ボタンのサンプル') # 画面タイトルの設定 18 19# ボタンの作成 20btn = tkinter.Button(tki, text='ボタン', compound="top", width=120, height=40, command = btn_click) 21btn.place(x=100, y=260) #ボタンを配置する位置の設定 22 23# ボタンの作成 24btn2 = tkinter.Button(tki, text='ボタン2', width=120, height=40, command = btn_click) 25btn2.place(x=1000, y=260) #ボタンを配置する位置の設定 26 27# 画面をそのまま表示 28tki.mainloop() 29
###質問(本題)
サイトによるとこのコードで行けるはずなんでがね。
なんかできません。
どこか間違えているのでしょうか。
絶対パスを割り当てたりしてみましたが無理です。
自分には同じようなエラーに見えました。
補足情報(FW/ツールのバージョンなど)
Python(3.9.5)
回答1件
あなたの回答
tips
プレビュー