Home > Back-end >  Blank window pops up momentarily before main window
Blank window pops up momentarily before main window

Time:10-22

Whenever I run the code below to create a window a blank window shows up momentarily before the main window. I have been removing/moving lines in an attempt to figure out what the cause is.

What am I doing wrong that causes this blank window to show up briefly?

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

CodePudding user response:

I have had this issue before too, the problem is QStackedLayout. If you change it to QStackedWidget it will resolve.

self.stackedLayout = QStackedWidget()

And at the bottom

layout.addWidget(self.stackedLayout)
  • Related