1

私はPyQtで働いています。既存のコード (非常に長く、ほとんどすべての org.'ss/w のソース) には、タブとテキストボックスの作成を担当するセクションがあります。しかし、PyQt の初心者であるため、すべてがどのように機能するかについては明確ではありません。私としては、次のことを行う必要があります: (1) 他のすべてのタブの行内に「xyz」というタイトルのタブを作成します。(2) ユーザーがデータを入力して保存できる作成された TAB によって表示されるページに、個別のラベルが付いた 6 つのテキストボックスを作成します。

これらは、私が今対処しなければならない差し迫った問題です。後で、

テキストボックスにデータが入力されて保存されるとすぐに、テキストボックスに入力されたデータが (別のウィンドウの) 棒グラフのデータに置き換わります。これは後で行う必要がありますが、最初に上記の 2 つの問題を解決する必要があります。インポートはすべて (長い) コードにあり、おそらく新しいクラスを作成して、そのコード内に新しいコードを挿入する必要があります。手伝ってくれますか?ありがとう。また、これに取り組むために情報が必要な場合はお知らせください。 TAB+TEXTBOXES の作成

編集::::::::::: 下の画像を挿入しました。ご覧のとおり、左側のペインの上部には複数のタブが並んでいます (すべて PyQt で作成されています)。タブの下に表示されているような空白のページを持つ、最後のタブ (ここではインセンティブというタイトル) のようなタブを作成する必要があります。ページ内で、2 セットのテキスト ボックスを作成する必要があります。各セットには、セットと個々のテキスト ボックスのラベルが付いた 3 つのテキスト ボックスがあります。ボックスに入力されたデータは整数 (20) になり、データは動的積み上げ棒グラフに入力/更新されます。ここで、もう一つ質問したいことがあります。データがグラフを更新するとき、最初に DB (グラフの最初の数値を主に担当する DB) に保存してからグラフにルーティングするか、DB をバイパスして直接グラフを更新する必要があります。だから、しません」t グラフが以前の値に戻り、リセットされるとテキスト ボックスからのデータが失われます。ありがとうございました。

4

1 に答える 1

1

わかった。ここに、独自の開発の開始点として使用できるコードがあります。QTabWidget2 つのタブを持つ を作成します。「タブ 1」タブには、2 つのグループボックスを含む垂直レイアウトが含まれています。グループボックスには、グリッドに配置されたラベルとテキストボックスが含まれています。他のタブは空です。

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、タブ付きウィジェットの親として を使用したことに注意してください。明らかに、必要に応じて他のウィジェットを親として使用できます。

それが役に立てば幸い。

于 2012-11-30T09:31:39.177 に答える