1

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

这是我现在必须处理的两个直接问题。之后,

输入并保存文本框中的数据后,在文本框中输入的数据将替换条形图(在另一个窗口中)中的数据。这将在之后完成,但首先我需要解决上面列出的 2 个问题。导入都在(长)代码中,我必须在该代码中插入我的新代码 - 也许通过创建一个新类。你能帮我吗?谢谢。而且,如果您需要任何信息来解决这个问题,请告诉我。 创建 TAB+文本框

编辑::::::::::: 已插入下面的图像。如您所见,在左窗格的顶部,一行中有多个选项卡(全部在 PyQt 中制作)。我需要创建一个与最后一个类似的选项卡(此处为“激励”),其中包含一个空白页面,如选项卡下方所示。在页面中,我需要创建 2 组文本框,每组 3 个文本框,其中包含用于组和单个文本框的标签。在框中输入的数据将是整数 (20),然后数据将继续填充/更新动态堆叠条形图。在这一点上,我想问另一个问题。数据更新图时,是先保存在DB(主要负责图中初始图的DB)再路由到图,还是数据直接更新图,绕过DB,如果所以,不会的 t 图形恢复到其先前的值,并在重置后忘记文本框中的数据。谢谢你。

4

1 回答 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_())

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

希望能帮助到你。

于 2012-11-30T09:31:39.177 回答