Python 想知道为什么我的GUI检查按钮功能不工作?
以上是我的checkbutton GUI程序代码,我希望得到输出: 但在我运行程序后,输出是意外的:Python 想知道为什么我的GUI检查按钮功能不工作?,python,tkinter,Python,Tkinter,以上是我的checkbutton GUI程序代码,我希望得到输出: 但在我运行程序后,输出是意外的: 如您所见,我的意外输出显示为空白,没有显示任何内容。我想知道为什么会这样,我的代码有什么问题吗?如果您能帮我解决这个问题,我将不胜感激。问题是您没有打包self.cb1或cb2或cb3的父项。您应该在\uuu init\uu方法中执行self.top.pack() import tkinter import tkinter.messagebox class checkbutton:
如您所见,我的意外输出显示为空白,没有显示任何内容。我想知道为什么会这样,我的代码有什么问题吗?如果您能帮我解决这个问题,我将不胜感激。问题是您没有打包
self.cb1
或cb2
或cb3
的父项。您应该在\uuu init\uu
方法中执行self.top.pack()
import tkinter
import tkinter.messagebox
class checkbutton:
def __init__(self):
self.main = tkinter.Tk()
self.top = tkinter.Frame(self.main)
self.bot = tkinter.Frame(self.main)
self.cb1v = tkinter.IntVar()
self.cb2v = tkinter.IntVar()
self.cb3v = tkinter.IntVar()
self.cb1v.set(0)
self.cb2v.set(0)
self.cb3v.set(0)
self.cb1 = tkinter.Checkbutton(self.top, text = 'Option 1', variable = self.cb1v)
self.cb2 = tkinter.Checkbutton(self.top, text = 'Option 2', variable = self.cb2v)
self.cb3 = tkinter.Checkbutton(self.top, text = 'Option 3', variable = self.cb3v)
self.cb1.pack()
self.cb2.pack()
self.cb3.pack()
self.calbutton = tkinter.Button(self.bot, text = 'ok', command = self.show)
self.quit = tkinter.Button(self.bot, text = 'quit',command = self.main.destroy)
self.calbutton.pack(side='left')
self.quit.pack(side='left')
tkinter.mainloop()
def show(self):
self.messge = 'you click: '
if self.cb1v.get() == 1:
self.messge = self.messge + '1'
if self.cb2v.get() == 1:
self.messge = self.messge + '2'
if self.cb3v.get() == 1:
self.messge = self.messge + '3'
tkinter.messagebox.showinfo('seletion',self.messge)
gui = checkbutton()
谢谢,我只是直接从教科书中复制代码,但没有top-pack或bot-pack()属性。另外,我们在创建框架时总是打包吗?@MINO如果您希望它显示,您应该
.pack
或.grid
它。很酷,这就解释了,再次感谢
def __init__(self):
# code above
self.top.pack()
self.cb1 = tkinter.Checkbutton(self.top, text = 'Option 1', variable = self.cb1v)
self.cb2 = tkinter.Checkbutton(self.top, text = 'Option 2', variable = self.cb2v)
self.cb3 = tkinter.Checkbutton(self.top, text = 'Option 3', variable = self.cb3v)
# code after