亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

pyqt5 創建新窗口

pyqt5 創建新窗口

墨色風雨 2021-11-30 16:36:27
我正在嘗試在按下 fieldE 按鈕時創建新窗口,但它沒有發生。Mapeditor() 類正在工作,所以我認為當我調用 fieldE.clicked.connection 函數時問題是一致的。有小費嗎?def startGpressed(name):    print(name)def fieldeditorOPEN():   fieldScreen = Mapeditor()def main():     app = QApplication(sys.argv)     ex = App()     buttons = ex.initUI()     startG = buttons[0]     fieldE = buttons[1]     startG.clicked.connect(lambda:(startGpressed("Game starting")))     fieldE.clicked.connect(partial(fieldeditorOPEN))     startG.show()     fieldE.show()     sys.exit(app.exec_())main()
查看完整描述

1 回答

?
慕碼人8056858

TA貢獻1803條經驗 獲得超6個贊

函數中創建的變量會在函數執行完畢后被清除,因此即使顯示窗口,也會立即關閉并清除。所以解決辦法是延長它的生命周期,使其可以創建為全局變量:


fieldScreen = None

def fieldeditorOPEN():

   global fieldScreen

   fieldScreen = Mapeditor()

   fieldScreen.show()

另一種選擇是在 main 中創建 Mapeditor 并單擊顯示它:


 # ...

 fieldScreen = Mapeditor()

 fieldE.clicked.connect(fieldScreen.show)

 # ...


查看完整回答
反對 回復 2021-11-30
  • 1 回答
  • 0 關注
  • 156 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號