python - pyqt ne peut pas afficher le contenu de la fenêtre lors de l'appel de la fenêtre tablewidget
ringa_lee
ringa_lee 2017-05-27 17:39:25
0
1
861

Je voudrais demander à tout le monde, je veux cliquer sur un bouton dans la fenêtre principale pour appeler une nouvelle fenêtre. Cette fenêtre est un tableauwidget. Actuellement, une fenêtre contextuelle peut être implémentée, mais le tableau ne peut pas être affiché et il y en a. seulement une fenêtre vide. Je n'arrive vraiment pas à trouver la raison, donnez-moi s'il vous plaît quelques conseils.
C'est le code de la fenêtre principale

# -*- 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, QtGui

try:
    _fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
    def _fromUtf8(s):
        return s

try:
    _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))

C'est le code de la fenêtre appelé

# -*- 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, QtGui

try:
    _fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
    def _fromUtf8(s):
        return s

try:
    _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))

C'est le programme principal

from ui_question import Ui_MainWindow
from PyQt4 import QtGui
from PyQt4.QtCore import QCoreApplication
from PyQt4.QtCore import * 
import os,sys,subprocess,re
from ui_qtable import Ui_MainTable

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

Les résultats en cours sont les suivants :


Merci à tous ! ! Désolé de déranger tout le monde ! !

ringa_lee
ringa_lee

ringa_lee

répondre à tous(1)
phpcn_u1582

La fonction createMaterialFunc() dans la ligne 17 du programme principal est modifiée comme suit :

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

Résultat du run :

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal