[英]How to set Checkbox state in Pygubu
我一直在尝试通过代码设置Tkinter-checkbox
状态有一段时间了,但我被卡住了。
试过.toggle()
, .set()
, .select()
但我得到“对象没有属性”
使用pygubu
是否有另一种方法可以访问Tkinter
对象方法?
关于如何做到这一点的任何想法?
import os
import tkinter as tk # for python 3
import pygubu
CURDIR = os.path.dirname(__file__)
UI_FILE = os.path.join(CURDIR, 'gui2.ui')
class Application:
def __init__(self):
#1: Create a builder
self.builder = builder = pygubu.Builder()
#2: Load an ui file
builder.add_from_file(UI_FILE)
#3: Create the widget using a master as parent
self.mainwindow = builder.get_object('toplevel1')
#4: connect callbacks
self.builder.connect_callbacks(self)
def on_print(self):
checked = self.builder.get_object('Checkbutton_1')
checked.toggle()
def run(self):
self.mainwindow.mainloop()
if __name__ == '__main__':
app = Application()
app.run()
我设法通过在 pygubu(设计器窗格的右下角)中设置一个与复选框关联的变量然后在代码中获取该变量并更改它来做到这一点。 我在 app 类的__init__
中设置了默认值。
假设连接到复选框的变量称为boxChecked
并且其类型设置为 boolean
checked = builder.get_variable("boxChecked")
checked.set(True)
然后,您可以使用checked.get()
从变量中获取复选框的状态
我认为必须有一种“更好”的方法来做到这一点,但这对我有用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.