python - pyqt 调用tablewidget窗口时无法显示窗口内容
问题描述
请教一下大家,想实现在主窗口中点击按钮调用一个新窗口,这个窗口是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_())
运行结果如下:
非常感谢大家!!麻烦大家了!!
问题解答
回答1:主程序line 17的createMaterialFunc()函数,改为如下:
def createMaterialFunc(self):self.another = Ui_MainTable()self.table = QtGui.QMainWindow()self.another.setupUi(self.table)self.table.show()
运行结果:
相关文章:
1. 为什么span的color非要内联样式才起作用?2. docker - 如何修改运行中容器的配置3. css - div设置float:left后高度设置自动会无效 ?4. 求大神指点js修改margintop导致无限下滑的问题5. linux - centos 配置ip?6. 求救一下,用新版的phpstudy,数据库过段时间会消失是什么情况?7. 老师,请问我打开browsersync出现这个问题怎么解决啊?8. 请问一下各位老鸟 我一直在学习独孤九贱 现在是在tp5 今天发现 这个系列视频没有实战9. 在cmd下进入mysql数据库,可以输入中文,但是查看表信息,不显示中文,是怎么回事,怎新手,请老师10. html5 - H5做的手机分享页微信更新后,分享出去不再默认显示第一个图 作为缩略图

网公网安备