日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

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

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

瀏覽:254日期: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 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
91精品一区二区三区综合| 免费日韩视频| 麻豆精品新av中文字幕| 亚洲a成人v| 日韩在线播放一区二区| 一区二区不卡| 综合一区二区三区| 日韩精品视频一区二区三区| 亚洲精品精选| 日韩激情一二三区| 国产欧美在线| 久久免费精品| 欧洲av不卡| 卡一精品卡二卡三网站乱码| 国产一卡不卡| 美腿丝袜在线亚洲一区| 国产精品久久久久久模特| 国产在线一区不卡| 免费一区二区三区在线视频| 国产精品成久久久久| 免费福利视频一区二区三区| 日韩视频网站在线观看| 日韩精品首页| 久久成人精品| 久久精品99国产精品日本| 久久精品欧洲| 久久亚洲专区| 中文字幕av一区二区三区人| 日本不卡高清| 日本成人中文字幕在线视频| 国产伦一区二区三区| 国产美女亚洲精品7777| 四虎8848精品成人免费网站| 亚洲黄色中文字幕| 国产精品日韩欧美一区| 在线精品国产亚洲| 国产欧美一区二区精品久久久 | 久久精品中文| 最新亚洲激情| 国产麻豆一区| 国产v综合v| 久久午夜视频| 久久av综合| 久久精品亚洲人成影院| 亚洲免费资源| 精品国产亚洲一区二区三区| 蜜桃tv一区二区三区| 偷拍亚洲精品| 国产美女高潮在线| 免费人成黄页网站在线一区二区| 国产精品白浆| 亚洲性图久久| 久久福利一区| 国产在线观看91一区二区三区| 亚洲成人一区在线观看| 亚洲影视一区| 精品久久久网| 亚洲一区二区成人| 国产精品亚洲四区在线观看| 久久激情网站| 欧美精品影院| 成人日韩在线观看| 日韩精品一级| 神马日本精品| 国产日韩视频在线| 麻豆视频在线观看免费网站黄| 亚洲精品在线国产| 国产精品xxxav免费视频| 亚洲欧洲一区二区天堂久久| 国产欧美自拍| 99国产精品久久久久久久| 日韩精品视频中文字幕| 亚洲手机在线| 日韩av二区在线播放| 91久久久精品国产| 国产精品久久乐| 日韩在线一区二区| 成人亚洲欧美| 日韩av一区二区在线影视| 99视频精品全部免费在线视频| 国产中文一区| 精品三级av在线导航| 免费精品国产的网站免费观看| 国产精品一区二区av交换| 国产模特精品视频久久久久| 精品国产午夜| 欧美日韩xxxx| 久久亚洲图片| 免费观看不卡av| 黄色网一区二区| 久久亚洲电影| 在线日韩视频| 97精品久久| 视频在线在亚洲| 在线手机中文字幕| 国产精品成人**免费视频| 视频一区二区不卡| 国产一区二区三区黄网站 | 最新亚洲国产| 在线视频精品| 999国产精品999久久久久久| 久久精品国产成人一区二区三区| 日韩福利视频网| 久久亚洲电影| 亚洲精品小说| 日韩三区免费| 国产欧洲在线| 久久99久久久精品欧美| 欧美中文高清| 日韩在线成人| 最新亚洲一区| 免费不卡中文字幕在线| 日本综合字幕| 伊伊综合在线| 欧美亚洲综合视频| 蜜臀91精品一区二区三区| av高清一区| 欧美成人基地| 国产精品tv| 欧美激情99| 国产乱论精品| 欧美黄色一区二区| 老司机精品视频网| 精品午夜视频| 福利欧美精品在线| 国产精品亚洲一区二区在线观看| 欧美一区自拍| 久久av网站| 久久亚洲精品中文字幕| 久久久免费人体| 精品久久99| 国产白浆在线免费观看| 欧美三区四区| 99久久亚洲精品蜜臀| 亚洲婷婷免费| 先锋影音国产一区| 亚洲三级国产| 中文字幕亚洲在线观看| 婷婷亚洲精品| 欧美一区不卡| 日韩av不卡一区二区| 国产精品一区二区av日韩在线| 欧美激情视频一区二区三区免费 | 久久久久国产精品一区二区| 日韩精品网站| 国产亚洲高清视频| 亚洲三级网址| 国产欧美69| 国产成人精品一区二区三区免费| 狠狠躁少妇一区二区三区| 久久国产亚洲精品| 国产亚洲综合精品| 久久福利一区| 男人的天堂久久精品| 日本一区二区三区视频在线看 | 色综合视频一区二区三区日韩 | 中文字幕一区二区精品区| 亚洲狼人精品一区二区三区| 97精品资源在线观看| 久久精品国产久精国产| 成人午夜网址| 国产精品毛片一区二区在线看| 国产成人免费| 午夜久久免费观看| 日本不卡高清视频| 国产精品欧美日韩一区| 久久久久久自在自线| 国产精品亚洲欧美日韩一区在线| 欧美国产偷国产精品三区| 欧美va天堂| 日本午夜免费一区二区 | 日韩在线黄色| 国产精品久久久亚洲一区| 99久久久国产精品美女| 日韩一二三区在线观看| 亚洲精品免费观看| 国产成人精品一区二区三区视频 | 99视频精品全国免费| 蜜桃传媒麻豆第一区在线观看| 中文视频一区| 国产精品亲子伦av一区二区三区 | 国产中文字幕一区二区三区| 精品在线91| 中文字幕av一区二区三区人| 国产精品色婷婷在线观看| 特黄特色欧美大片| 视频一区日韩精品| 日韩网站中文字幕| 综合一区av| 欧美日韩尤物久久| 日韩精品a在线观看91| sm捆绑调教国产免费网站在线观看| 免费日韩精品中文字幕视频在线| 美女视频网站久久| 欧美在线资源| 美女久久久久久| 午夜亚洲精品| 中文字幕在线免费观看视频| 一区视频在线| 国产一区二区三区四区二区|