[英]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.