首页 文章

创建TAB并创建在TAB页面中获取数据的文本框

提问于
浏览
1

我在PyQt工作 . 现有代码(非常长并且几乎所有组织的s / w都有源代码)具有负责创建选项卡和文本框的部分 . 但是,作为PyQt的新手,我不清楚它是如何工作的 . 就我而言,我需要做以下事情:(1)在所有其他选项卡的行中创建一个 Headers 为“xyz”的TAB . (2)在创建的TAB显示的页面中创建6个带有单个标签的文本框,用户可以在其中输入数据并保存 .

这是我现在要处理的两个直接问题 . 后来,

输入并保存文本框中的数据后,在文本框中输入的数据将替换条形图中的数据(在另一个窗口中) . 这是事后要做的,但首先我需要解决上面列出的两个问题 . 导入都在(长)代码中,我必须在代码中插入新代码 - 也许是通过创建一个新类 . 你能帮我吗?谢谢 . 如果您需要任何相关信息,请告知我们 .
Create TAB+TEXTBOXES

编辑:::::::::::已插入下面的图像 . 如您所见,在左窗格的顶部,一行中有多个选项卡(全部在PyQt中生成) . 我需要创建一个像最后一个标签(此处 Headers 为Incentives)的标签,其中包含一个空白页面,如标签下方所示 . 在页面中,我需要创建2组文本框,每组中有3个文本框,其中包含集合和单个文本框的标签 . 在框中输入的数据将是整数(20),然后数据将继续填充/更新动态堆叠条形图 . 此时,我想问另一个问题 . 当数据更新图表时,是否应首先将其保存在DB(主要负责图中初始数据的DB)中,然后路由到图表,或者数据是否应直接更新图表,绕过数据库,如果因此,图表不会恢复到其早期值,并且一旦重置就会忘记文本框中的数据 . 谢谢 .

1 回答

  • 1

    好 . 在这里,您可以使用代码作为自己开发的起点 . 它创建了一个带有两个选项卡的 QTabWidget . "Tab 1"选项卡包含带有两个组框的垂直布局 . 组框包含以网格排列的标签和文本框 . 另一个选项卡为空 .

    from PyQt4.QtGui import *
    from PyQt4.QtCore import *
    
    class MyMainWindow(QMainWindow):
        def __init__(self, parent=None):
            QMainWindow.__init__(self, parent)
    
            # Create the tabbed widget
            self.central = QTabWidget(self)
            self.setCentralWidget(self.central)
    
            # Create a new tab
            self.tab1 = QWidget()
            # Tab has a vertical layout
            self.vbox = QVBoxLayout(self.tab1)
            # Tab children: two groups containing a grid of labels and textboxes
            self.group1 = QGroupBox("Group 1")
            self.textBox1 = QLineEdit(self.group1)
            self.textBox2 = QLineEdit(self.group1)
            self.fillGroup(self.group1, self.textBox1, self.textBox2)
            self.group2 = QGroupBox("Group 2")
            self.textBox3 = QLineEdit(self.group2)
            self.textBox4 = QLineEdit(self.group2)
            self.fillGroup(self.group2, self.textBox3, self.textBox4)
            # Add tab children to the tab layout
            self.vbox.addWidget(self.group1)
            self.vbox.addWidget(self.group2)
            # Append tab to the tabbed widget
            self.central.addTab(self.tab1, "Tab 1")
    
            # Create a new tab and append it to the tabbed widget
            self.tab2 = QWidget()
            self.central.addTab(self.tab2, "Tab 2")
    
        def fillGroup(self, group, box1, box2) :
            """Arrange the groupbox content in a grid layout"""
    
            grid = QGridLayout(group)
            label1 = QLabel("Input 1:", group)
            grid.addWidget(label1, 0, 0)
            grid.addWidget(box1, 0, 1)
            label2 = QLabel("Input 2:", self.group1)
            grid.addWidget(label2, 1, 0)
            grid.addWidget(box2, 1, 1)
    
    if __name__ == "__main__":
        import sys
        app = QApplication(sys.argv)
        ui = MyMainWindow()
        ui.show()
        sys.exit(app.exec_())
    

    请注意,为方便起见,我使用 QMainWindow 作为选项卡式小部件的父级 . 如果需要,您可以使用其他小部件作为父级 .

    希望能帮助到你 .

相关问题