为什么我的QMainWindow无法正常工作?

问题描述

我正在尝试学习Python的GUI库PyQT5,但无法理解主类“ MainWindow”的运行情况。如果我继承QWidget(或QDialog),则效果很好,但无法设置状态栏。如果继承QMainWindow,则可以设置状态栏,但会弹出一个空白窗口。这是一个片段:

from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
import pandas as pd
import sys


class MainWindow(QDialog): #QMainWindow

    def __init__(self):
        super(MainWindow,self).__init__()#QMainWindow.__init__(self)
        self.setWindowTitle("pySAGE Bruno Antonieto")

        # Window dimensions
        self.setFixedSize(1080,620)

        
        # # Commented Status Bar I wish to implement
        # self.status = self.statusBar()
        # self.status.showMessage("pySAGE Data Visualization 0.1 | Bruno Antonieto - Aprot Engenharia Eletrica")


        self.createMenu()
        self.createTable()

        mainLayout = QVBoxLayout()
        mainLayout.setMenuBar(self.menuBar)
        mainLayout.addWidget(self.groupBox)

        self.setLayout(mainLayout)

    def createMenu(self):
        self.menuBar = QMenuBar()
        self.fileMenu = QMenu("&File",self)
        self.menuBar.addMenu(self.fileMenu)


    def createTable(self):
        self.groupBox = QGroupBox('Tabela')
        layout = QGridLayout()

        # Some table i'm using,works properly on QDialog
        # and show's nothing with QMainWindow
        model = pandasModel(dir_data)
        view = QTableView()
        view.setModel(model)
        view.show()
        layout.addWidget(view)

        self.groupBox.setLayout(layout)


class pandasModel(QAbstractTableModel):

    def __init__(self,data):
        QAbstractTableModel.__init__(self)
        self._data = data

    def rowCount(self,parent=None):
        return self._data.shape[0]

    def columnCount(self,parnet=None):
        return self._data.shape[1]

    def data(self,index,role=Qt.DisplayRole):
        if index.isValid():
            if role == Qt.DisplayRole:
                return str(self._data.iloc[index.row(),index.column()])
        return None

    def headerData(self,col,orientation,role):
        if orientation == Qt.Horizontal and role == Qt.DisplayRole:
            return self._data.columns[col]
        return None


if __name__ == '__main__':
    app = QApplication([])
    app.setStyle('Fusion')

    main_window = MainWindow()
    main_window.show()

    app.exec_()

为什么QMainWindow显示空白页? 谢谢你。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...