【发布时间】:2021-12-17 09:21:21
【问题描述】:
这是我尝试过的:
import tkinter as tk
from tkinter import TOP,BOTTOM,LEFT,RIGHT
_master=''
class GUI(tk.Tk):
def __init__(self):
global _master
tk.Tk.__init__(self)
self._master=self
def stay(self):
self._master.mainloop()
class button():
def __init__(self,**kwargs):
global _master
if 'image' in kwargs:
self._image=tk.PhotoImage(file=kwargs['image'])
self._button=tk.Button(_master,image=_image)
if 'x' in kwargs and 'y' in kwargs:
self._button.place(x=kwargs['x'],y=kwargs['y'])
elif 'x' in kwargs:
self._button.place(x=kwargs['x'])
elif 'y' in kwargs:
self._button.place(y=kwargs['y'])
elif 'side' in kwargs:
self._button.place(side=kwargs['side'])
else:
self._button.place()
if 'text' in kwargs:
self._text=kwargs[text]
self._button=tk.Button(_master,text=_text)
if 'x' in kwargs and 'y' in kwargs:
_button.place(x=kwargs['x'],y=kwargs['y'])
elif 'x' in kwargs:
_button.place(x=kwargs['x'])
elif 'y' in kwargs:
_button.place(y=kwargs['y'])
elif 'side' in kwargs:
_button.place(side=kwargs['side'])
else:
_button.place()
class text():
def __init__(self,**kwargs):
global _master
self.text=kwargs['text']
self._label=tk.Label(kwargs['win'],text=text)
if 'x' in kwargs and 'y' in kwargs:
self._label.place(x=kwargs['x'],y=kwargs['y'])
elif 'x' in kwargs:
self._label.place(x=kwargs['x'])
elif 'y' in kwargs:
self._label.place(y=kwargs['y'])
elif 'side' in kwargs:
self._label.place(side=kwargs['side'])
else:
self._label.place()
win=GUI()
text(win=win,text='Hey')
win.stay()
但它不起作用。 它没有出现。 没有任何错误,它只显示空白的 tk 窗口。 我正在尝试为自己(甚至可能为公众)制作一个 GUI 库 我怎样才能解决这个问题? 还有为什么会这样?
【问题讨论】:
-
请注意,不带选项调用
place()将不会放置小部件。至少指定x或y选项,两者都更好。另外self._label=tk.Label(kwargs['win'],text=text)应该是self._label=tk.Label(kwargs['win'],text=self.text)。