看板 Python 關於我們 聯絡資訊
※ 引述《eaden (evenrain)》之銘言: : 大家好,我是個 python 新手~所以萬一我問的問題太笨,請鞭小力一點 T_T : 目前是做登入的功能,但是偷懶不想自己維護帳號密碼, : 但是程式也會需要用到 FTPS,所以就做個登入視窗使用者抓 windows 的帳號 : 密碼讓 user 自己輸入,再藉由是否成功連線來判定登入與否 : main.py 是主程式宣告了 DialogLogin(QDialog) : 跟 MainWindow(QMainWindow) 兩個 UI 物件,一開始只會顯示 Dialog : 使用者填寫密碼後按確定 會呼叫 login 函式 : 裏頭會執行 FtpsQThread 這個 QThread 連線 ftp : 再依據結果決定顯示 QMessageBox 或是切換到 MainWindows : 不過執行結果卻是 QThread: Destroyed while thread is still running : 有朋友跟我說大概是生命週期的問題,不過我不確定我哪裡錯了 : 請大家幫我看看~ m(_ _)m : 程式碼: https://dl.dropbox.com/u/1245969/src.7z 自己回自己.. 我剛剛亂試把原先的 def login(thread): thread = FtpsQThread(uname, pwd) thread.dataReady.connect(get_login, Qt.QueuedConnection) thread.start() if __name__ == '__main__': dl = DialogLogin() dl.ui.buttonBox.accepted.connect(login) 改成 def login(thread): thread.start() if __name__ == '__main__': dl = DialogLogin() thread = FtpsQThread(uname, pwd) thread.dataReady.connect(get_login, Qt.QueuedConnection) dl.ui.buttonBox.accepted.connect(login) 這樣就好了 @@ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.116.190.212
legnaleurc:不要繼承 QThread ... 06/21 21:08
eaden:有甚麼原因不建議繼承 QThread 嗎 @@? 06/22 13:36
eaden:原來是因為 qthread 是一個 concrete class 了... 06/22 14:44