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. ueditor上传服务器提示后端配置项没有正常加载,求助!!!!!2. 配置文件 - nginx多站点配置,无法通过域名访问,使用ip访问会跳转到其中一个站点3. css - transform: translateY(-50%)在360浏览器极速模式下使得文字变模糊了4. css - .clearfix:after中为什么设置display: table5. angular.js - 怎样在使用ng-repeat属性的标签里面监听单个事件,使其能够单个改变CSS。6. 请教: 关于 python 反斜杠转义的疑问7. python - 关于matplotlib的x轴显示的问题8. javascript - vue生成一维码?求助!!!!!急9. mysql优化 - mysql慢查询copying to tmp table10. nginx英文文档的WebSocket proxying部分没看太明白,麻烦推荐一点中文文章
