首页 > 解决方案 > 如何从许多选项卡中选择特定选项卡以在 pyqt 上添加信息?

问题描述

我正在设计一个基于 PyQt4 的 GUI。

GUI 基本上是一个窗口中的 QTabWidget。

QtabWidget 有许多选项卡,每个选项卡都存在一个表,其想法是选择一个特定的选项卡并将信息添加到其表中。

我的问题是,当我更改我的 tabwidget 的索引并尝试在该特定表中添加信息时,该信息将放在创建的最后一个选项卡的表上。

例如,我有 3 个选项卡,我想在 tab1 的表中添加一个单词,但该单词被放在 tab2 的表中,单词错放在 Tab2 的表中,称为 'mesa_2'

谁能帮我?

在此先感谢,这是我的代码:

from PyQt4.QtCore import *
from PyQt4.QtGui import *
from PyQt4 import uic, QtCore, QtGui

class MyWindow(QtGui.QWidget):
    recive=QtCore.pyqtSignal(str)
    poner=QtCore.pyqtSignal(str)
    def __init__(self,parent=None):
        super(MyWindow, self).__init__(parent)
        QtGui.QWidget.__init__(self)
        self.setWindowTitle(_translate("Form", "Form", None))
        self.setObjectName(_fromUtf8("Form"))
        self.resize(695, 577)
        self.tabWidget = QtGui.QTabWidget(self)
        self.tabWidget.setGeometry(QtCore.QRect(0, 0, 691, 571))
        self.tabWidget.setAcceptDrops(False)
        self.tabWidget.setObjectName("tabWidget")
        self.indice=1

    @pyqtSlot(str)
    def add_tab(self,numero):
        self.tab = QtGui.QWidget(self.tabWidget)
        self.tab.setObjectName("tab")
        self.tabWidget.addTab(self.tab, "tab")
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab),     _translate("Form", "mesa_"+numero, None))
        QtCore.QMetaObject.connectSlotsByName(self.tabWidget)
        self.add_table()
        self.tab.show()
        self.indice=self.indice+1

    @pyqtSlot()
    def add_table(self):
        self.tabla_mia = QtGui.QTableWidget(self.tab)
        self.tabla_mia.setGeometry(QtCore.QRect(0, 0, 391, 401))
        self.tabla_mia.setAcceptDrops(False)
        self.tabla_mia.setAutoFillBackground(False)
        self.tabla_mia.setObjectName("tabla_mia")
        self.tabla_mia.setColumnCount(2)
        self.tabla_mia.setRowCount(0)
        item = QtGui.QTableWidgetItem()
        self.tabla_mia.setHorizontalHeaderItem(0, item)
        item.setText(_translate("Form", "Platillo", None))
        item = QtGui.QTableWidgetItem()
        self.tabla_mia.setHorizontalHeaderItem(1, item)
        item.setText(_translate("Form", "Cantidad", None))
        QtCore.QMetaObject.connectSlotsByName(self.tabWidget)
        self.tabla_mia.show()

if __name__ == '__main__':
    app = QtGui.QApplication(sys.argv)
    window=MyWindow()
    window.show()
    window.recive.connect(window.add_tab)
    window.recive.emit('0')
    window.recive.emit('1')
    window.recive.emit('2')
    window.tabWidget.setCurrentIndex(1)
    window.tabla_mia.setRowCount((window.tabla_mia.rowCount())+1)
    window.tabla_mia.setItem(0,0,QTableWidgetItem("Holo"))
    sys.exit(app.exec_())

标签: pythonpyqtpyqt4

解决方案


推荐阅读