您的位置:首页技术文章
文章详情页

python - pyqt 调用tablewidget窗口时无法显示窗口内容

浏览:65日期:2022-06-30 09:31:30

问题描述

请教一下大家,想实现在主窗口中点击按钮调用一个新窗口,这个窗口是tablewidget,目前可以实现弹出窗口,但是无法显示表格,只有一个空白窗口。实在找不到原因了,还请大家指点。这是主窗口代码

# -*- coding: utf-8 -*-# Form implementation generated from reading ui file ’question.ui’## Created by: PyQt4 UI code generator 4.11.4## WARNING! All changes made in this file will be lost!from PyQt4 import QtCore, QtGuitry: _fromUtf8 = QtCore.QString.fromUtf8except AttributeError: def _fromUtf8(s):return stry: _encoding = QtGui.QApplication.UnicodeUTF8 def _translate(context, text, disambig):return QtGui.QApplication.translate(context, text, disambig, _encoding)except AttributeError: def _translate(context, text, disambig):return QtGui.QApplication.translate(context, text, disambig)class Ui_MainWindow(object): def setupUi(self, MainWindow):MainWindow.setObjectName(_fromUtf8('MainWindow'))MainWindow.resize(344, 244)self.centralwidget = QtGui.QWidget(MainWindow)self.centralwidget.setObjectName(_fromUtf8('centralwidget'))self.pushButton = QtGui.QPushButton(self.centralwidget)self.pushButton.setGeometry(QtCore.QRect(110, 80, 121, 61))font = QtGui.QFont()font.setPointSize(17)self.pushButton.setFont(font)self.pushButton.setObjectName(_fromUtf8('pushButton'))MainWindow.setCentralWidget(self.centralwidget)self.menubar = QtGui.QMenuBar(MainWindow)self.menubar.setGeometry(QtCore.QRect(0, 0, 344, 23))self.menubar.setObjectName(_fromUtf8('menubar'))MainWindow.setMenuBar(self.menubar)self.statusbar = QtGui.QStatusBar(MainWindow)self.statusbar.setObjectName(_fromUtf8('statusbar'))MainWindow.setStatusBar(self.statusbar)self.retranslateUi(MainWindow)QtCore.QMetaObject.connectSlotsByName(MainWindow) def retranslateUi(self, MainWindow):MainWindow.setWindowTitle(_translate('MainWindow', 'MainWindow', None))self.pushButton.setText(_translate('MainWindow', 'Push', None))

这是被调用的窗口代码

# -*- coding: utf-8 -*-# Form implementation generated from reading ui file ’qtable.ui’## Created by: PyQt4 UI code generator 4.11.4## WARNING! All changes made in this file will be lost!from PyQt4 import QtCore, QtGuitry: _fromUtf8 = QtCore.QString.fromUtf8except AttributeError: def _fromUtf8(s):return stry: _encoding = QtGui.QApplication.UnicodeUTF8 def _translate(context, text, disambig):return QtGui.QApplication.translate(context, text, disambig, _encoding)except AttributeError: def _translate(context, text, disambig):return QtGui.QApplication.translate(context, text, disambig)class Ui_MainTable(QtGui.QWidget): def setupUi(self, Table):Table.setObjectName(_fromUtf8('Table'))Table.resize(422, 196)self.centralwidget = QtGui.QWidget(Table)self.centralwidget.setObjectName(_fromUtf8('centralwidget'))self.tableWidget = QtGui.QTableWidget(self.centralwidget)self.tableWidget.setGeometry(QtCore.QRect(0, 0, 421, 171))self.tableWidget.setObjectName(_fromUtf8('tableWidget'))self.tableWidget.setColumnCount(4)self.tableWidget.setRowCount(4)item = QtGui.QTableWidgetItem()self.tableWidget.setVerticalHeaderItem(0, item)item = QtGui.QTableWidgetItem()self.tableWidget.setVerticalHeaderItem(1, item)item = QtGui.QTableWidgetItem()self.tableWidget.setVerticalHeaderItem(2, item)item = QtGui.QTableWidgetItem()self.tableWidget.setVerticalHeaderItem(3, item)item = QtGui.QTableWidgetItem()self.tableWidget.setHorizontalHeaderItem(0, item)item = QtGui.QTableWidgetItem()self.tableWidget.setHorizontalHeaderItem(1, item)item = QtGui.QTableWidgetItem()self.tableWidget.setHorizontalHeaderItem(2, item)item = QtGui.QTableWidgetItem()self.tableWidget.setHorizontalHeaderItem(3, item)Table.setCentralWidget(self.centralwidget)self.menubar = QtGui.QMenuBar(Table)self.menubar.setGeometry(QtCore.QRect(0, 0, 422, 23))self.menubar.setObjectName(_fromUtf8('menubar'))Table.setMenuBar(self.menubar)self.statusbar = QtGui.QStatusBar(Table)self.statusbar.setObjectName(_fromUtf8('statusbar'))Table.setStatusBar(self.statusbar)self.retranslateUi(Table)QtCore.QMetaObject.connectSlotsByName(Table) def retranslateUi(self, Table):Table.setWindowTitle(_translate('Table', 'Table', None))item = self.tableWidget.verticalHeaderItem(0)item.setText(_translate('Table', '1', None))item = self.tableWidget.verticalHeaderItem(1)item.setText(_translate('Table', '2', None))item = self.tableWidget.verticalHeaderItem(2)item.setText(_translate('Table', '3', None))item = self.tableWidget.verticalHeaderItem(3)item.setText(_translate('Table', '4', None))item = self.tableWidget.horizontalHeaderItem(0)item.setText(_translate('Table', '新建列', None))item = self.tableWidget.horizontalHeaderItem(1)item.setText(_translate('Table', '新建列', None))item = self.tableWidget.horizontalHeaderItem(2)item.setText(_translate('Table', '新建列', None))item = self.tableWidget.horizontalHeaderItem(3)item.setText(_translate('Table', '新建列', None))

这是主程序

from ui_question import Ui_MainWindowfrom PyQt4 import QtGuifrom PyQt4.QtCore import QCoreApplicationfrom PyQt4.QtCore import * import os,sys,subprocess,refrom ui_qtable import Ui_MainTableclass myui(QtGui.QMainWindow,Ui_MainWindow,Ui_MainTable): def __init__(self, MainWindow):#QtGui.QMainWindow.__init__(self)super(my2d,self).__init__()self.setupUi(MainWindow)self.pushButton.clicked.connect(self.createMaterialFunc) def createMaterialFunc(self):print ’OK’self.another = Ui_MainTable()self.another.show() if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) MainWindow = QtGui.QMainWindow() ui = myui(MainWindow) MainWindow.show() sys.exit(app.exec_())

运行结果如下:python - pyqt 调用tablewidget窗口时无法显示窗口内容python - pyqt 调用tablewidget窗口时无法显示窗口内容非常感谢大家!!麻烦大家了!!

问题解答

回答1:

主程序line 17的createMaterialFunc()函数,改为如下:

def createMaterialFunc(self):self.another = Ui_MainTable()self.table = QtGui.QMainWindow()self.another.setupUi(self.table)self.table.show()

运行结果:python - pyqt 调用tablewidget窗口时无法显示窗口内容

标签: Python 编程
相关文章: