你拼錯了,python里的構造函數(shù)應該是
專業(yè)從事企業(yè)網站建設和網站設計服務,包括網站建設、域名注冊、網絡空間、企業(yè)郵箱、微信公眾號開發(fā)、微信支付寶重慶小程序開發(fā)、成都app軟件開發(fā)公司、軟件開發(fā)、等服務。公司始終通過不懈的努力和以更高的目標來要求自己,在不斷完善自身管理模式和提高技術研發(fā)能力的同時,大力倡導推行新經濟品牌戰(zhàn)略,促進互聯(lián)網事業(yè)的發(fā)展。
def?__init__()
而不是
def?_init_()
請采納
now.Time()這句是干嘛?你的Time class有這個方法嗎
你把錯誤貼出來吧
哈哈,Time()這個方法你也要一起打出來啊,不然去哪里調用啊
上一節(jié)我們介紹了登錄窗體的GUI設計與功能實現(xiàn),用戶的賬號和密碼校驗完成后應當跳轉到主窗體內容,這一節(jié)我們將具體介紹主窗體界面的設計與功能實現(xiàn)!
我們新建一個900x640的窗口,頂部加入圖片,下面主體部分創(chuàng)建兩個Panedwindow容器,左邊添加按鈕,右邊作為TreeView顯示界面;
顯示效果:(注意:tkinter在Mac上Panedwindow不支持修改前景色背景色)
在右邊的Pannedwindow容器中,添加一個LabelFrame容器作為查詢區(qū)域,在LabelFrame容器中添加一系列的Label、Entry、Button控件,可以輸入學號、姓名、電話、身份證、查詢、和顯示全部信息:
顯示效果:
創(chuàng)建控件、設置對齊方式和每個列的標題
顯示效果:
登錄成功后,在頂部顯示用戶姓名和登錄時間,用戶姓名是怎么來的?是我們在登錄窗口輸入的,所以這就涉及到了跨窗體數(shù)據(jù)的傳遞。這一點非常重要!
登錄窗體(登錄信息)==主窗體
傳遞的基本方式:構造函數(shù)
在主窗體的構造函數(shù)中添加一個接收參數(shù) current_user ,在登錄窗體加載新窗體時將參數(shù)傳遞進去;
但是我們登錄窗體的登錄函數(shù) login() 中用戶名的變量 user 是局部變量,函數(shù)調用完了之后就變量就沒有了,那怎么調用呢?
我們需要在登錄窗體的構造函數(shù)中定義全局變量:
為了獲取用戶登錄的時間,我們定義一個獲取當前時間的方法:
然后在加載主窗體時將參數(shù) self.user 和 self.get_now_time() 作為參數(shù)傳遞進去
另一邊,我們在主窗體中,在構造函數(shù)中添加全局變量
之后,我們在Top_banner中通過標簽將user信息展示出來:
這樣主窗口就會顯示通過登錄窗口登錄的用戶名(首字母自動轉大寫)和登錄時間:
效果演示:
然后我們在構造方法中把這個函數(shù)寫入,以實現(xiàn)自動把學生信息寫入到all_student_list中
文件中讀取到的學生信息存儲到all_student_list列表,以此作為參數(shù)傳入加載TreeView的方法中;
在構造方法中調用該方法,自動把所有學生信息加載到TreeView中
運行效果:
這一節(jié)我們實現(xiàn)了主窗體的搭建,從界面的布局到TreeView加載全部學生信息。學生數(shù)據(jù)如此之多,如果我們想精確查看具體某個學生的信息該怎么做呢?下一講,我們將實現(xiàn)學生信息的查詢功能,敬請期待吧~
class?Person:
#?此處,兩個?下劃線?_?_
def?__init__(self,name,job):
self.name=name
self.job=job
bob=Person('Bob?Smith','dev')
print(bob.name,bob.job)
嗯,怎么說呢。每一個gui程序都有一個稱為頂層(toplevel)的窗口管理器用于管理那些窗口部件,如按鈕,輸入框之類的,這個窗口管理器就是這些下級部件的master,頂級窗口的master是None即,它自己管理自己。
回到你的問題,(1)第4行的master=None是表示Application這個類的master默認為None,即它是頂層窗口。
(2)第13行中的app.master是返回當前頂層窗口的對象,然后再調用title這個方法設置title,master=None只是表明app是頂層窗口而已。
我自己理解的。