成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術文章
文章詳情頁

Python PyQt5中彈出子窗口解決子窗口一閃而過的問題

瀏覽:188日期:2022-06-24 11:21:17
方式一:槽函數中創建子窗口對象,賦值到普通變量

在主窗口添加按鈕,并把按鈕信號關聯槽,在槽函數中創建子窗口對象賦值到普通變量,并調用其 show 方法。

from PyQt5.QtWidgets import *import sys class Main(QMainWindow): def __init__(self): super().__init__() self.setWindowTitle('主窗口') button = QPushButton('彈出子窗', self) button.clicked.connect(self.show_child) def show_child(self): child_window = Child() child_window.show() class Child(QWidget): def __init__(self): super().__init__() self.setWindowTitle('我是子窗口啊') # 運行主窗口if __name__ == '__main__': app = QApplication(sys.argv) window = Main() window.show() sys.exit(app.exec_())

運行結果: 該段代碼運行后,點擊主窗口中的按鈕,子窗口一閃而過。

方式二:槽函數中創建子窗口對象,賦值為對象屬性

在主窗口添加按鈕,并把按鈕信號關聯槽,在槽函數中創建子窗口對象并賦值為對象屬性,并調用其 show 方法。

from PyQt5.QtWidgets import *import sys class Main(QMainWindow): def __init__(self): super().__init__() self.setWindowTitle('主窗口') button = QPushButton('彈出子窗', self) button.clicked.connect(self.show_child) def show_child(self): self.child_window = Child() self.child_window.show() class Child(QWidget): def __init__(self): super().__init__() self.setWindowTitle('我是子窗口啊') # 運行主窗口if __name__ == '__main__': app = QApplication(sys.argv) window = Main() window.show() sys.exit(app.exec_())

運行結果: 該段代碼運行后,點擊主窗口中的按鈕,子窗口正常打開,重復點擊按鈕,子窗口重復彈出。

方式三:在主窗口__init__方法中創建子窗

在主窗口__init__方法中創建子窗口對象并賦值為對象屬性,添加按鈕,并把按鈕信號關聯槽,在槽函數中調用子窗口對象的 show 方法。

from PyQt5.QtWidgets import *import sys class Main(QMainWindow): def __init__(self): super().__init__() self.setWindowTitle('主窗口') button = QPushButton('彈出子窗', self) button.clicked.connect(self.show_child) self.child_window = Child() def show_child(self): self.child_window.show() class Child(QWidget): def __init__(self): super().__init__() self.setWindowTitle('我是子窗口啊') # 運行主窗口if __name__ == '__main__': app = QApplication(sys.argv) window = Main() window.show() sys.exit(app.exec_())

運行結果: 重復點擊按鈕,子窗口不重復彈出。

方式四:exec()方法

把例1的show()方法改為exec()方法

from PyQt5.QtWidgets import *import sys class Main(QMainWindow): def __init__(self): super().__init__() self.setWindowTitle('主窗口') button = QPushButton('彈出子窗', self) button.clicked.connect(self.show_child) def show_child(self): child_window = Child() child_window.exec() class Child(QWidget): def __init__(self): super().__init__() self.setWindowTitle('我是子窗口啊') # 運行主窗口if __name__ == '__main__': app = QApplication(sys.argv) window = Main() window.show() sys.exit(app.exec_())

運行結果:子窗口順利彈出,且不能重新選擇父窗口

結論:

這里涉及到一個概念 模式對話框 與 非模式對話框 (modeless dialog | modal dialog)

模式對話框,就是在彈出窗口的時候,整個程序就被鎖定了,處于等待狀態,直到對話框被關閉。這時往往是需要對話框的返回值進行下面的操作。如:確認窗口(選擇“是”或“否”)。非模式對話框,在調用彈出窗口之后,調用即刻返回,繼續下面的操作。這里只是一個調用指令的發出,不等待也不做任何處理。如:查找框。

show() ------ modeless dialog

exec() ------- modal dialog

方式一中 子窗口 通過 show() 方法顯示,為非模態窗口,它的實例為父窗口show_child()方法中的局部變量,當窗口顯示后,父窗口的show_child()方法繼續執行,當方法運行完后,python的回收機制就把局部變量銷毀了,相當于子窗口實例被銷毀,故子窗口一閃而過; 方式二中 子窗口實例為 主窗口類的變量,當show_child()方法運行完后,主窗口對象依舊存在,子窗口實例也存在,故子窗口正常顯示,但是每一次運行槽函數都會重新創建子窗口對象; 方式三中 子窗口實例為 主窗口類的變量,當show_child()方法運行完后,主窗口對象依舊存在,子窗口實例也存在,故子窗口正常顯示,每一次show_child()函數,重新調用子窗口對象show_child()方法,不會創建新窗口,且可隨意在父,子窗口間切換; 方式四中 子窗口 通過 exec() 方法顯示,為模態窗口,雖然他為父窗口show_child()方法中的局部變量,由于阻塞的機制,父窗口show_child()并沒有繼續執行,故其不會像 例1 中 一閃而過,且不能在父,子窗口間切換;

到此這篇關于Python PyQt5中彈出子窗口解決子窗口一閃而過的問題的文章就介紹到這了,更多相關Python PyQt5彈出子窗口內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
欧美日韩日日夜夜| 亚洲欧洲在线一区| 一区二区三区我不卡| 亚洲黑丝一区二区| 久久久久久久久久美女| 成人av片在线观看| 国产精品久久777777| 日韩欧美高清一区| 精品一区二区免费| 欧美四级电影在线观看| 国产精品理伦片| 欧美日韩一卡| 91精品免费观看| 国产精品资源站在线| 欧美日韩国产成人在线91| 一区二区高清在线| 91色九色蝌蚪| 4438成人网| 国产成人亚洲综合a∨婷婷| 国产亚洲欧美一区二区| 自拍偷拍亚洲综合| 高清在线成人网| 日韩欧美高清dvd碟片| 日韩精品每日更新| 色综合久久精品| 青青草视频一区| 欧美日韩综合在线| 亚洲成av人片在线观看| 韩国在线视频一区| 亚洲欧美一区二区久久| 国产一级精品aaaaa看| 午夜精品福利一区二区三区蜜桃| 翔田千里一区二区| 奇米一区二区三区av| 欧美精品乱码久久久久久| **欧美大码日韩| 成人久久视频在线观看| 欧美色成人综合| 午夜精品免费在线| 伊伊综合在线| 一区二区欧美国产| 久久久久一区| 亚洲国产视频一区| 亚洲国产日韩在线| 中文字幕欧美三区| 91亚洲国产成人精品一区二三| 亚洲国产精品成人久久综合一区| 国内精品久久久久久久97牛牛 | 国产欧美中文在线| 在线精品亚洲一区二区| 一区二区三区欧美视频| 国内精品福利| 亚洲精品伦理在线| 亚洲二区在线| 亚洲成av人片在线| 欧美一级播放| 久久99精品网久久| 久久先锋影音av| 成人性视频免费网站| 91精品中文字幕一区二区三区| 国产999精品久久久久久| 日韩一区二区免费视频| 欧美国产先锋| 亚洲高清免费一级二级三级| 国产精品免费区二区三区观看| 亚洲欧美精品午睡沙发| 亚洲精品女人| 亚洲曰韩产成在线| 亚洲激精日韩激精欧美精品| 婷婷综合另类小说色区| 日韩一区二区在线看| 欧美视频不卡| 日韩理论片一区二区| 色爱区综合激月婷婷| 午夜电影久久久| 鲁鲁狠狠狠7777一区二区| 国产一区二区在线视频| 国产欧美视频在线观看| 久久久www| av日韩在线网站| 一区二区三区 在线观看视频| 欧美日韩国产一级片| 国产精品yjizz| 亚洲欧美日韩人成在线播放| 在线观看精品一区| 国产精品原创巨作av| 国产精品福利一区二区| 欧美在线不卡视频| 欧美午夜欧美| 亚洲女子a中天字幕| 欧美精品日韩综合在线| 国内精品久久国产| 久久99精品国产.久久久久久| 国产欧美日韩亚州综合| 在线视频你懂得一区二区三区| 久久aⅴ国产欧美74aaa| 欧美第一区第二区| 色综合视频在线观看| 丝袜美腿一区二区三区| 欧美亚洲免费在线一区| 国产成人精品在线看| 久久精品一区二区三区四区| 亚洲一区二区三区四区中文 | 亚洲男人都懂的| 91精品国产日韩91久久久久久| 亚洲精品自在在线观看| 日韩av在线发布| 欧美亚洲免费在线| 不卡高清视频专区| 一区在线观看视频| 鲁鲁狠狠狠7777一区二区| 99久久综合色| 亚洲日本免费电影| 欧美一区二区三区性视频| 欧美ab在线视频| 亚洲一区二区三区自拍| 精品不卡在线视频| 亚洲精品视频啊美女在线直播| 国产九九视频一区二区三区| 国产精品素人视频| 日韩一区二区视频| 久久久久se| 精品不卡一区| 97精品电影院| 国产一区二区中文字幕| 午夜国产精品一区| 欧美刺激脚交jootjob| 色婷婷av久久久久久久| 国产成人aaa| 蜜臀精品久久久久久蜜臀 | 国产精品网站导航| 久久免费黄色| 亚洲久久一区二区| 精品一区二区三区视频| 国产精品系列在线| 色就色 综合激情| 91麻豆精品在线观看| 国产精品一区专区| 麻豆精品在线播放| 五月激情综合色| 精品国产乱码久久久久久免费| 黄色成人在线网址| 91亚洲精品一区二区乱码| 久久国产人妖系列| 中文字幕一区二区不卡 | 国产亚洲精品久| 精品国产麻豆免费人成网站| 亚洲欧美日韩另类精品一区二区三区 | 亚洲精品成人精品456| 欧美三级中文字幕在线观看| 欧美bbbxxxxx| jlzzjlzz亚洲日本少妇| 国产成人免费在线| 黄页视频在线91| 久久丁香综合五月国产三级网站| 久久久久久久久99精品| 91黄色小视频| 国产视频一区在线观看| 亚洲图片欧美综合| 欧美日韩一区二区三区在线| 午夜欧美一区二区三区在线播放| 久久国产精品免费一区| 久久品道一品道久久精品| 亚洲成人免费观看| 亚洲国产日韩av| 成人动漫中文字幕| 欧美另类久久久品| 国产精品国产自产拍在线| 最新国产拍偷乱拍精品| 久久精品一区四区| 欧美日韩福利| 久久久www| 国产suv一区二区三区88区| 美美哒免费高清在线观看视频一区二区| 国产精品美女久久久久久2018| 91麻豆精品国产91久久久久久 | 精品日韩成人av| 精品国产三级a在线观看| 在线观看亚洲a| 视频一区二区三区在线| 欧美精品一区二区三区在线 | 亚洲免费网站| 亚洲少妇最新在线视频| 亚洲电影专区| 成人精品在线视频观看| 国产91精品一区二区麻豆网站| 国产乱人伦偷精品视频不卡| 日韩综合在线视频| 免费成人小视频| 亚洲一区二区av电影| 亚洲欧洲另类国产综合| 综合网在线视频| 亚洲资源在线观看| 亚洲视频电影在线| 亚洲国产精品嫩草影院| 蜜桃av噜噜一区| 国内成人免费视频| fc2成人免费人成在线观看播放| 久久av资源网| 国产成人aaa|