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

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

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

瀏覽:259日期: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久久,三上悠亚国产精品一区二区三区
欧美日韩亚洲国产精品| 在线精品视频一区| 亚洲一级黄色| 国产一级成人av| 国产99精品一区| 成午夜精品一区二区三区软件| 视频在线观看国产精品| 成人看片网站| 成人在线视频免费| 精品一区二区三区中文字幕视频| 欧美a级片一区| 国产va免费精品观看精品视频| 欧美日韩亚洲三区| 亚洲精品a级片| 日本欧美不卡| 正在播放日韩精品| 91免费精品| 日韩国产一区二区三区| 国产一区二区三区天码| 欧美激情aⅴ一区二区三区 | 亚洲综合电影| 日韩国产欧美| 国产精品午夜一区二区三区| 久久国产免费看| 亚洲网址在线观看| 日韩在线电影| 一区二区日韩免费看| 日本成人一区二区| 国产精品调教| 水蜜桃精品av一区二区| 精品72久久久久中文字幕| 久久精品国产网站| 日韩免费小视频| 久久国产亚洲| 国产亚洲精品v| 欧美久久一区二区三区| 日韩精品成人| 久久久国产精品入口麻豆| 日韩在线中文| 日韩午夜av| 免费观看亚洲天堂| 婷婷六月综合| 国产欧美日韩一级| 特黄毛片在线观看| 免费在线观看视频一区| 国产欧美88| 美女福利一区二区三区| 中文字幕av一区二区三区人| 欧美激情精品| 蜜臀av性久久久久蜜臀aⅴ流畅 | 亚州av日韩av| 国内精品亚洲| 三级久久三级久久久| 国产66精品| 在线综合亚洲| 久久电影tv| 欧美在线黄色| 亚洲在线一区| 999国产精品永久免费视频app| 日韩不卡一区二区三区| 亚洲福利国产| 激情国产在线| 国产精品中文字幕制服诱惑| 久久亚洲精品伦理| 成人在线观看免费视频| 蜜臀精品久久久久久蜜臀| 日韩欧美网址| 精品国产精品国产偷麻豆| 日韩综合一区二区三区| 欧美成人亚洲| 久久久一本精品| 91综合视频| 欧美精品成人| 国产精品久久乐| 日韩黄色在线观看| 日韩制服丝袜先锋影音| 不卡中文一二三区| 91精品久久久久久久久久不卡| 首页国产精品| 欧美aa在线视频| 婷婷精品在线| 日本综合视频| 国产欧美三级| 国产精品成人自拍| 精品一区二区三区在线观看视频| 精品中文字幕一区二区三区| 国产精品亚洲欧美日韩一区在线| 国产免费播放一区二区| 麻豆91小视频| 中文字幕一区久| 久久国产影院| 男女精品网站| 亚洲精品一级| 欧美激情三区| 国产成人精品一区二区三区免费 | 天堂а√在线最新版中文在线| 亚洲主播在线| 黄色在线观看www| 国产欧美一区二区三区米奇| 欧美日韩色图| 日韩高清欧美| 国产劲爆久久| 日韩有吗在线观看| 激情欧美亚洲| 黄色在线观看www| 欧美精品成人| 国产精品久久久久久久免费软件 | 精品香蕉视频| 97精品资源在线观看| 中文亚洲免费| 婷婷久久一区| 999久久久91| 中文一区一区三区高中清不卡免费| 中文字幕中文字幕精品| 精品欧美激情在线观看| 天堂av在线| 欧美成a人免费观看久久| 黑人精品一区| 欧洲av不卡| 日本精品不卡| 激情婷婷亚洲| 亚洲激情久久| 久久中文字幕av| 色老板在线视频一区二区| 92国产精品| 亚洲午夜视频| 尤物精品在线| 亚洲精品四区| 国产探花在线精品一区二区| 国产精品麻豆成人av电影艾秋 | 四虎精品永久免费| 亚洲另类黄色| 综合干狼人综合首页| 一区二区电影在线观看| 亚洲人亚洲人色久| 国产精品一区二区三区美女| 麻豆视频一区| 亚洲国产福利| 国内激情久久| 亚洲精品一区二区在线播放∴| 日韩欧美中文字幕一区二区三区| 91精品国产经典在线观看| 国产成人久久精品一区二区三区| 久久人人97超碰国产公开结果| 亚洲黄页一区| 国产午夜久久av| 桃色一区二区| 免费不卡在线观看| 国产亚洲人成a在线v网站| 精品精品99| 日韩专区欧美专区| 卡一精品卡二卡三网站乱码| 久久精品高清| 国产激情欧美| 国产综合色产| 麻豆精品av| 一区二区精品| 另类中文字幕国产精品| 亚洲欧洲日韩| 日韩专区精品| 国产亚洲一区二区三区啪| 久久精品高清| 欧美日本不卡| 99热免费精品| 国产一区二区三区亚洲| 日本不卡一区二区| 欧美~级网站不卡| 国产精品一区三区在线观看| 免费精品视频| 免费久久久久久久久| 精品香蕉视频| 国产精品1区| 国产精品入口久久| 青青国产精品| 亚洲精品影院在线观看| 黄色免费成人| 婷婷综合激情| 高清久久一区| 美女视频网站久久| 久久国产精品色av免费看| 中文字幕一区二区av| 在线综合亚洲| 石原莉奈在线亚洲三区| 亚洲精品电影| 欧美日韩国产综合网| 亚洲精品国产嫩草在线观看 | 狠狠干综合网| 日韩高清在线不卡| 免费看黄色91| 日韩av不卡一区二区| 亚洲播播91| 久久xxxx| 蜜桃免费网站一区二区三区| 青青国产精品| 久久激情中文| 亲子伦视频一区二区三区| 精品免费av一区二区三区| 久久一区亚洲| 亚洲啊v在线| 婷婷激情一区|