试图限制PyQt4中每行的QPushbutton GUI
问题描述:
我将'n'个按钮添加到QHBoxLayout中。在水平布局中,所有按钮排成一排,有些按钮离开屏幕。但我只需要连续7个按钮。有没有办法?试图限制PyQt4中每行的QPushbutton GUI
class test(QtGui.QWidget):
def __init__(self, parent=None):
super(test, self).__init__(parent)
self.test_btn = QtGui.QPushButton()
self.test_btn.show()
self.test_btn.clicked.connect(self.btn_fun)
self.layout = QtGui.QHBoxLayout()
self.setLayout(self.layout)
def btn_fun(self):
for i in range(42):
btns = QtGui.QPushButton('btns %d' %i)
self.layout.addWidget(btns)
if __name__ == '__main__':
app = QtGui.QApplication(sys.argv)
ex = test()
ex.show()
sys.exit(app.exec_())
答
在这种情况下,QGridLayout更合适。然后,您可以专门分配每个按钮的行和列,以便每行只有有限的数字。
class test(QtGui.QWidget):
def __init__(self, parent=None):
...
self.layout = QtGui.QGridLayout()
self.setLayout(self.layout)
self.max_per_row = 7
self.btn_fun()
def btn_fun(self):
for i in range(42):
col = i % self.max_per_row
row = i//self.max_per_row
btns = QtGui.QPushButton('btns %d' % i)
self.layout.addWidget(btns, row, col)
+0
非常感谢解决方案。问题解决了 –
对我来说不清楚你在问什么......你能更具体地说明结果应该是什么样子吗? – TehSphinX
对不起,因为我是新来的*我无法附上我的问题的截图。我需要限制屏幕内的qpushbuttons排列。如果他们的人数更多,他们必须排成一排。 –
您可能是一位新成员,但您可以为我们提供一个实例。考虑[如何创建最小,完整和可验证的示例](https://*.com/help/mcve)。当您向我们展示只有三行代码时,很难为您提供帮助。 – Matho