我正在为一个GUI程序寻找源代码。我做了一个简单的测试,我不能改变GUI上的文本值,没有错误,也没有任何事情发生。关于mainloop
的Tkinter
有什么问题吗?你知道吗
你知道吗序列号.py地址:
import gui
gui.chiplabel.config(text="A.3f V" )
你知道吗图形用户界面.py地址:
from Tkinter import *
root = Tk()
chiplabel = Label(root, relief=RIDGE, width = 9 , text ="Unknown",
padx=0, pady=0).grid(row = 0,column=5, sticky =W)
root.mainloop()
你的代码有两个主要问题。它需要被重组,而你在布局你的小部件时犯了一个非常常见的错误。你知道吗
组织代码
按照代码的结构,对
configure
的调用发生在mainloop
退出之后,以及小部件被销毁之后。您需要重新组织代码,以便对mainloop
的调用是执行的最后一行代码。你知道吗在我看来,这最好是通过使用类和对象来实现的,但这并不是绝对必要的。只需在调用
mainloop
之后不需要任何代码。你知道吗布局小部件
问题是这条线:
在python中,当您执行
x=y().z()
时,x
被赋予z()
的值。所以,当你做chiplabel = Label(...).grid(...)
时,chiplabel
被赋予grid(...)
的值。网格总是返回None
,所以chiplabel
总是None
。因此,您无法重新配置它,因为您丢失了对小部件的引用。你知道吗解决方案是创建小部件并分两步布置小部件。你知道吗
一种方法是在类中创建UI,例如:
不要原地运行它,这样就可以
import
类而不运行任何东西。那么你的serial.py
看起来更像:如果需要多个帧,可以执行Switching between frames in tkinter menu之类的操作。你知道吗
相关问题 更多 >
编程相关推荐