pyqt5主窗口按鍵彈出子窗口的實現(xiàn)
目標:主窗口保持,通過按鍵彈出子窗口
步驟一:pyqt5創(chuàng)建主窗口,并設(shè)置按鍵
from PyQt5.QtWidgets import * import sys # 主窗口 class Main(QMainWindow): def __init__(self): super().__init__() self.setWindowTitle("主窗口") fbutton = QPushButton("彈出子窗口", self) fbutton.clicked.connect(self.show_child) def show_child(self): print("子窗口") if __name__ == "__main__": app = QApplication(sys.argv) window = Main() window.show() sys.exit(app.exec_())
運行結(jié)果:
步驟二:pyqt5創(chuàng)建子窗口,并設(shè)置內(nèi)容
from PyQt5.QtWidgets import * import sys class Child(QMainWindow): def __init__(self): super().__init__() self.resize(360, 240) self.setWindowTitle("我是子窗口啊") # 運行主窗口 if __name__ == "__main__": app = QApplication(sys.argv) window = Child() window.show() sys.exit(app.exec_())
運行結(jié)果:
步驟三:pyqt5通過主窗口按鍵彈出子窗口
from PyQt5.QtWidgets import * import sys # 主窗口 class Main(QMainWindow): def __init__(self): super().__init__() self.setWindowTitle("主窗口") fbutton = QPushButton("彈出子窗口", self) fbutton.clicked.connect(self.show_child) def show_child(self): print("子窗口") self.resize(360, 240) self.setWindowTitle("我是子窗口啊") if __name__ == "__main__": app = QApplication(sys.argv) window = Main() window.show() sys.exit(app.exec_())
本以為可以實現(xiàn),結(jié)果和預(yù)想?yún)^(qū)別很大,按下按鍵后,結(jié)果如下:
結(jié)果是之間取代了原來的主窗口而且按鍵沒有消失
原因是只有一個類,只有一個主窗口,所以修改內(nèi)容都是在同一個窗口內(nèi)修改的
經(jīng)過修改,第二次修改后測試源碼:
from PyQt5.QtWidgets import * import sys # 主窗口 class Main(QMainWindow): def __init__(self): super().__init__() self.setWindowTitle("主窗口") fbutton = QPushButton("彈出子窗口", self) fbutton.clicked.connect(self.show_child) def show_child(self): print("子窗口") child_window = Child() child_window.show() class child(QMainWindow): def __init__(self): super().__init__() print("子窗口") self.resize(360, 240) self.setWindowTitle("我是子窗口啊") if __name__ == "__main__": app = QApplication(sys.argv) window = Main() window.show() sys.exit(app.exec_())
但是,這里遇到個問題,子窗口閃退。
看到是可以打印子窗口,說明是已經(jīng)進入子窗口,但是就是一直閃退
研究了很久,將show()改成exec_()后運行,報錯如下,原因是不存在exec_()
解決辦法:將class的QMainWindow改成QDialog
改成
運行結(jié)果:
到此這篇關(guān)于pyqt5主窗口按鍵彈出子窗口的實現(xiàn)的文章就介紹到這了,更多相關(guān)pyqt5主窗口按鍵彈出子窗口內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
關(guān)于TensorFlow、Keras、Python版本匹配一覽表
這篇文章主要介紹了關(guān)于TensorFlow、Keras、Python版本匹配一覽表,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-03-03el-table 多表格彈窗嵌套數(shù)據(jù)顯示異常錯亂問題解決方案
使用vue+element開發(fā)報表功能時,需要列表上某列的超鏈接按鈕彈窗展示,在彈窗的el-table列表某列中再次使用超鏈接按鈕點開彈窗,以此類推多表格彈窗嵌套,本文以彈窗兩次為例,需要的朋友可以參考下2023-11-11Python內(nèi)置函數(shù)input()示例詳解
input()函數(shù)是Python中用于獲取用戶輸入的一個簡單而強大的工具,它在創(chuàng)建需要用戶交互的程序時非常有用,這篇文章主要介紹了Python內(nèi)置函數(shù)input()詳解,需要的朋友可以參考下2024-04-04Python實現(xiàn)統(tǒng)計文本中字符的方法小結(jié)
在計算機編程中,經(jīng)常需要對文本數(shù)據(jù)進行處理和分析,字符統(tǒng)計是其中一個常見任務(wù),本文將詳細介紹如何使用Python進行字符統(tǒng)計,希望對大家有所幫助2024-01-01opencv python Canny邊緣提取實現(xiàn)過程解析
這篇文章主要介紹了opencv python Canny邊緣提取實現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-02-02