我在PyQt的工作。 现有的代码(极长和来源几乎所有的org.'ss / w)的具有部分,其负责创建选项卡和文本框。 但是,作为一个新手到PyQt的,我不是它是如何工作明确。 就我而言,我需要做到以下几点:(1)创建的所有其他选项卡的行内标题为“XYZ”一个标签。 (2)创建文本框6在被创建的选项卡,用户可以输入数据并保存它将会持续显示的页面各个标签。
这是两个直接的问题我不得不面对现在。 后来,
如输入并保存在文本框的数据在文本框输入的数据会很快取代在条形图中的数据(在另一个窗口)。 这是要事后完成,但首先我需要解决上面列出的2个问题。 进口都出现在(稍长)的代码,我要的代码中插入我的新代码 - 也许通过创建一个新的类。 你能帮我吗? 谢谢。 而且,请让我知道,如果你需要的任何信息,这方面的工作。
编辑:::::::::::已插入下面的图片。 正如你所看到的,在左窗格的顶部,有一排(全部在PyQt的制造)多个标签。 我需要创建像最后一个(在这里,标题的激励措施)有了这样的标签如下所示的一个空白页面中的标签。 内页,我需要在每一组标签设定(S)和单独的文本框创建2套文本框,文本框3。 在框中输入的数据将是整数(20),然后将数据将继续填充/更新动态堆积条形图。 在这一点上,我要问一个问题。 当数据更新的图表中,它应该被首先保存在DB(数据库,其是用于在图中的初始数据主要负责),然后路由到图形或应的数据直接更新图表,绕过DB,并且如果所以,不会图表恢复到以前的值,并从文本框忘记数据,一旦它被重置。 谢谢。
好。 在这里,你有,你可以作为一个起点,为自己的发展使用代码。 它创建了一个QTabWidget
两个选项卡。 在“标签1”选项卡包含垂直布局有两个groupboxes。 Groupboxes包含排列成网格的标签和文本框。 另一个选项卡是空的。
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
作为标签控件父。 Obiously如果你需要它,你可以使用其他部件如父。
希望能帮助到你。