我想在QGridLayout
中对两个小部件进行分组,这样我就可以同时将它们作为父布局中的一个小部件移动,我已经红了addLayout
可以工作但是我找不到具有该名称的课程,而是找到addChildLayout
和addChildWidget
,但我不知道如何让它们发挥作用!
这是我测试的代码:
#!/usr/bin/env python3.5.2
from PyQt5.QtWidgets import*
from PyQt5.QtCore import*
import sys
class ClassName(QDialog):
def __init__(self):
QDialog.__init__(self)
parent_layout = QGridLayout()
self.text1 = QLineEdit()
self.text2 = QLineEdit()
# I want to make Button1, text3 and progress widgets in one line
# I want Button1, text3 in a child_layout
Button1 = QPushButton("Button1")
self.text3 = QLineEdit()
self.progress = QProgressBar()
self.text1.setPlaceholderText("text 1")
self.text1.setFixedWidth(524)
self.text2.setPlaceholderText("text 2")
self.text2.setFixedWidth(85)
self.progress.setValue(0)
self.progress.setAlignment(Qt.AlignHCenter)
Button1.setFixedWidth(125)
self.text3.setReadOnly(True)
self.text3.setPlaceholderText("text 3")
parent_layout.addWidget(self.text1, 0, 0)
parent_layout.addWidget(self.text2, 0, 1)
parent_layout.addWidget(self.progress, 1, 1)
parent_layout.addWidget(Button1, 1, 0)
parent_layout.addWidget(self.text3, 2, 0)
self.setLayout(parent_layout)
app = QApplication(sys.argv)
dialog = ClassName()
dialog.show()
sys.exit(app.exec_())
结果:
我想要的是什么:
答案 0 :(得分:0)
我相信你想要做的是在你致电addWidget()
时设置columnspan参数。例如,从您的图像看,text1应该跨越网格的两列。如果您查看qt docs,您将看到addWidget已重载并且可以接受参数rowSpan和columnSpan。使用该信息,您应该能够像这样填充您的窗口。
parent_layout.addWidget(self.text1, 0, 0, 1, 2)
parent_layout.addWidget(self.text2, 0, 1)
parent_layout.addWidget(Button1, 1, 0)
parent_layout.addWidget(self.text3, 1, 1)
parent_layout.addWidget(self.progress, 1, 2)
如果有问题,请告诉我。