1. 程式人生 > 其它 >Python PyQt5中彈出子視窗解決子視窗一閃而過的問題

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

方法一:

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_())

方法二:

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_())

方法三:

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_())

原文連結:

https://blog.csdn.net/vzdong1/article/details/120509095