Пустое окно на мгновение появляется перед главным окном

#python #pyqt5

Вопрос:

Всякий раз, когда я запускаю приведенный ниже код для создания окна, перед главным окном на мгновение появляется пустое окно. Я удалял/перемещал линии в попытке выяснить, в чем причина.

Что я делаю не так, из-за чего на короткое время появляется это пустое окно?

 import sys from PyQt5.QtWidgets import (  QApplication,  QComboBox,  QFormLayout,  QLineEdit,  QStackedLayout,  QVBoxLayout,  QWidget,  QPushButton,  QListWidget,  QAbstractItemView, )       class Window(QWidget):   def __init__(self):    super().__init__()    self.setFixedSize(260, 380)  self.setWindowTitle("LogfileParser")    layout = QVBoxLayout()  self.setLayout(layout)    self.pageCombo = QComboBox()  self.pageCombo.addItems(["TSLogfileParser", "MBLogfileParser"])   self.stackedLayout = QStackedLayout()    self.page1 = QWidget()  self.page1Layout = QFormLayout()  self.line_edit = QLineEdit()  self.line_edit.setReadOnly(True)  self.page1Layout.addRow("Directory:", self.line_edit)  self.browsebutton = QPushButton("Browse")  self.page1Layout.addRow(self.browsebutton)  self.page1lw = QListWidget(selectionMode=QAbstractItemView.ExtendedSelection)  self.lengthpage1lw = len(self.page1lw)  self.page1Layout.addRow(self.page1lw)  self.page1.setLayout(self.page1Layout)  self.addbutton = QPushButton("Add")  self.page1Layout.addWidget(self.addbutton)  self.page1Layout.addRow(self.addbutton)  self.removebutton = QPushButton("Remove")  self.page1Layout.addRow(self.removebutton)  self.parsebutton = QPushButton("Parse")  self.page1Layout.addRow(self.parsebutton)  self.stackedLayout.addWidget(self.page1)   layout.addWidget(self.pageCombo)  layout.addLayout(self.stackedLayout)  if __name__ == "__main__":  app = QApplication(sys.argv)  window = Window()  window.show()  sys.exit(app.exec_())  

Ответ №1:

У меня тоже была эта проблема раньше, проблема в QStackedLayout. Если вы измените его на QStackedWidget, он разрешится.

 self.stackedLayout = QStackedWidget()  

И в самом низу

 layout.addWidget(self.stackedLayout)