所以我把這段代碼分成了兩個不同的模塊。第一個,稱為“GUI”,我想存盤所有 TKINTER 代碼,然后是另一個我呼叫 GUI 的地方。
由于我將該基礎用于其他模塊,因此我正在考慮添加一個子類,該子類將添加 2 個帶有文本的標簽供用戶閱讀,并且不會干擾其他模塊的基礎 GUI。問題是它不起作用。
它告訴我“add_labels()”缺少 1 個必需的位置引數:“self”。
將不勝感激一些幫助。我正在復制以下 2 個代碼:
# GUIs module
import tkinter as tk
class pbt_GUI(tk.Tk):
def __init__(self, *args, **kwargs):
tk.Tk.__init__(self, *args, **kwargs)
self.title("Manual Input")
self.resizable(0,0)
# create widgets
self.frame = tk.Frame(self, width=300, height=300)
self.GUI_date = tk.Label(self.frame, text='Date (mm/dd/yyyy):').grid(row=0, sticky='w')
self.GUI_date_input = tk.Entry(self.frame)
self.submit = tk.Button(self.frame, text="Submit")
# widgets layout
self.frame.grid()
self.GUI_date_input.grid(row=0, column=1)
self.submit.grid(row=5)
self.username = tk.Label(self.frame, text='username: bla')
self.password = tk.Label(self.frame, text='password: bla**')
def add_labels(self):
self.username.grid(row=3)
self.password.grid(row=4)
然后是另一個模塊:
# module where executed
from datetime import datetime
import generalUse.GUIs
date_input = ('')
def get_man_input():
global date_input
date_input = datetime.strptime(UI_GUI.GUI_date_input.get(), '%m/%d/%Y')
date_input.strftime('%Y/%m/%d').date
UI_GUI.destroy()
# Button set up for executing the GUI:
UI_GUI = generalUse.GUIs.pbt_GUI.add_labels()
UI_GUI.submit['command'] = get_man_input
UI_GUI.mainloop()
非常感謝您提前
uj5u.com熱心網友回復:
您需要創建一個實體pbt_GUI并使用此實體來呼叫add_labels():
...
UI_GUI = generalUse.GUIs.pbt_GUI() # create instance of pbt_GUI
UI_GUI.add_labels()
...
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/435633.html
上一篇:如何在pythontkinter中創建邏輯來為某些單詞(如pythonshell)設定顏色
下一篇:self.tk.call(('image','create',imgtype,name,) options)_tkinter.TclError:無法識別影像檔案
