如何在 QtoolBox 页面中选择小部件表格

问题描述

在 QToolBox 中,我添加一个用于增加或减少页数的按钮,所有这些按钮都带有一个表格小部件。有没有办法选择每个页面中的表来读取存储的值? 这是可能的代码代码不全,不能用,是QGIS的一个插件项目)。

class guiSUSTDialog(QDialog):
    def __init__(self,iface):
        super().__init__()
        QDialog.__init__(self,iface.mainWindow())
        self.iface = iface
        self.layout = qgridLayout()
        self.setLayout(self.layout)
        self.numAddWidget = 1
        self.initUi()
        self.resize(700,600)
        # Add toolbar and items
        
    def initUi(self):
        self.toolBox = QToolBox()
        self.getField=CollectField() #Object for selsect correct fields
        self.layout.addWidget(self.getField,0)
        self.add_button = QPushButton("Add page")
        self.layout.addWidget(self.add_button,1,0)
        self.add_button.clicked.connect(self.addPage)
        self.rem_button=QPushButton("Remove page")
        self.layout.addWidget(self.rem_button,2,0)
        self.rem_button.clicked.connect(self.removePage)
        self.reaload_button = QPushButton("Reload")
        self.layout.addWidget(self.reaload_button,3,0)
        self.reaload_button.clicked.connect(self.reload)
        self.layout.addWidget(self.toolBox,4,0)
        self.toolBox.addItem(self.getField,"Setting")
        self.run_button=QPushButton("Run")
        self.layout.addWidget(self.run_button,5,0)
        self.run_button.clicked.connect(self.run)

        
    def addPage(self):
        self.numAddWidget += 1
        fieldList=[self.getField.selectedField.item(i).text() for i in range(self.getField.selectedField.count())]
        self.table=EvalTable(fieldList)#Object table added in each new page
        self.toolBox.addItem(self.table,"table {}".format(self.numAddWidget))
        self.getField.selectedField.clear()
        
    def removePage(self):
        id=self.toolBox.currentIndex()
        if id==0:
            QMessageBox.warning(self.iface.mainWindow(),"SSAM",("Setting page isn't removable"),QMessageBox.Ok,QMessageBox.Ok)
        else:
            self.toolBox.removeItem(id)
            
    def reload(self):
        self.getField.listAllFields.clear()
        self.getField.listAllFields.addItems(allFields)
        
    def run(self):
        self.output=OutputPage(self.toolBox.count())
        self.toolBox.addItem(self.output,"......")
        for i in range(self.toolBox.count()):
            print(self.toolBox.itemText(i))

这是我正在使用的 gui Gui with pages and tables added

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)