好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > Python PyQt5中彈出子窗口解決子窗口一閃而過的問題

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

熱門標簽:西藏快速地圖標注地點 ai地圖標注 長春人工智能電銷機器人官網 廈門crm外呼系統如何 百應ai電銷機器人鄭州 如何在地圖標注文字 地圖標注推廣單頁 女王谷地圖標注 n400電話申請多少錢

方式一:槽函數中創建子窗口對象,賦值到普通變量

在主窗口添加按鈕,并把按鈕信號關聯槽,在槽函數中創建子窗口對象賦值到普通變量,并調用其 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彈出子窗口內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • pyqt5對用qt designer設計的窗體實現彈出子窗口的示例
  • PyQt5實現從主窗口打開子窗口的方法

標簽:興安盟 黔東 綿陽 渭南 拉薩 亳州 內江 廊坊

巨人網絡通訊聲明:本文標題《Python PyQt5中彈出子窗口解決子窗口一閃而過的問題》,本文關鍵詞  Python,PyQt5,中,彈出,子,窗口,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Python PyQt5中彈出子窗口解決子窗口一閃而過的問題》相關的同類信息!
  • 本頁收集關于Python PyQt5中彈出子窗口解決子窗口一閃而過的問題的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 寡妇安妮沙凯特无删减版观看| 特黄做受又粗又大又硬老头| 日韩综合无尺码码电影| 免费**的网址| 91传媒久久久久久久久| 与夫妇交换性视频| 免费伦费一区二区三区四区| 女生叫床声| 中文字幕有码自拍欧美| 嗯啊射小子宫里| 机机对机机无遮挡超清晰视频| 男女刺激床爽爽免费视频| 和美国式禁忌一样裸露的电影| 婢女春桃| 岳丰满多毛的大隂户_| 激情片网址| 就去吻亚洲精品欧美日韩| 虎白馒头在线一线天| 少妇婬荡呻吟久久久久久老妇 | 短篇肉很多的糙汉文n| 肉伦禁忌小说小可的奶水| 乱肉合集乱500篇小说免费下载| 好多水视频| 色干干| 国产女人综合久久精品视| 关晓彤的奶头被教练摸得又红又肿| 91亚洲狠狠色综合久久久久| gay小黄文| 国产一区二区三区小向美奈子| 最新国产视频| 国产Chinese???| 91人妻精品无码一区二区蜜臀| 国产69精品久久久久9999| 一级毛片**免费看试看20分钟 | 我抱着你尿h| 国产做受??还在区| 国模第六套私拍大尺度| 双性上课被同桌用震蛋折磨| 色偷偷网站| 好涨太粗进去用力快好深视| 国产精品嫩草影院入口|