各位程序员好。
当前正在处理图形用户界面。我正试着用3个框架做布局。
如下图所示,黄色框架位于右侧。我希望该框架位于右侧框架的顶部。(在numpad的顶部,占据整个水平空间)
另外,对于右边框上的numpad按钮。我希望他们尽可能地接近对方,就像键盘上的一个数字。我该如何调整网格才能做到这一点?
提前谢谢。
截图:
已编辑 这就是我想要的结果。其中红色框是右上框(第一张图片中的黄色框)。
代码:
def layoutUI(self):
### Right Top Frame
self.rightTopFrame = QFrame()
self.rightTopFrame.resize(1,1)
self.rightTopFrame.setStyleSheet("background-color: yellow")
### Left Grid
self.leftGrid = QGridLayout()
self.leftGrid.setColumnMinimumWidth(10, 10)
self.leftGrid.setRowMinimumHeight(1, 1)
# Run, Stop, Speed layout
self.leftGrid.addWidget(self.b1, 0, 0)
self.leftGrid.addWidget(self.b2, 0, 2)
self.leftGrid.addWidget(self.b3, 1, 0)
self.leftGrid.addWidget(self.l1, 1, 1)
self.leftGrid.addWidget(self.b4, 1, 2)
# pl (Pieces and Length) layout
self.leftGrid.addWidget(self.b5, 2, 0)
self.leftGrid.addWidget(self.l2, 2, 1)
self.leftGrid.addWidget(self.b6, 2, 2)
self.leftGrid.addWidget(self.b7, 3, 0)
self.leftGrid.addWidget(self.l3, 3, 1)
self.leftGrid.addWidget(self.b8, 3, 2)
# Manual
self.leftGrid.addWidget(self.l4, 4, 1)
self.leftGrid.addWidget(self.b9, 5, 0)
self.leftGrid.addWidget(self.b10, 5, 1)
self.leftGrid.addWidget(self.b11, 5, 2)
### Right Grid
self.rightGrid = QGridLayout()
self.rightGrid.setColumnMinimumWidth(0, 0)
self.rightGrid.setRowMinimumHeight(1, 1)
self.rightGrid.addWidget(self.np1, 2, 0)
self.rightGrid.addWidget(self.np2, 2, 1)
self.rightGrid.addWidget(self.np3, 2, 2)
self.rightGrid.addWidget(self.np4, 3, 0)
self.rightGrid.addWidget(self.np5, 3, 1)
self.rightGrid.addWidget(self.np6, 3, 2)
self.rightGrid.addWidget(self.np7, 4, 0)
self.rightGrid.addWidget(self.np8, 4, 1)
self.rightGrid.addWidget(self.np9, 4, 2)
self.rightGrid.addWidget(self.np0, 5, 1)
self.rightGrid.addWidget(self.npCl, 5, 0)
#self.rightGrid.addWidget(self.bExit, 0, 2)
### Left Frame
self.leftFrame = QFrame()
self.leftFrame.resize(150,550)
#self.leftFrame.setStyleSheet("background-color: red")
self.leftFrame.setLayout(self.leftGrid)
### Right Frame
self.rightFrame = QFrame()
self.rightFrame.resize(15,50)
#self.rightFrame.setStyleSheet("background-color: green")
self.rightFrame.setLayout(self.rightGrid)
### Main Grid
self.mainGrid = QGridLayout()
self.mainGrid.setColumnMinimumWidth(10, 0)
self.mainGrid.addWidget(self.leftFrame)
self.mainGrid.addWidget(self.rightFrame)
self.mainGrid.addWidget(self.rightTopFrame)
### Main Interface
self.setGeometry(300, 200, 850, 450)
self.setLayout(self.mainGrid)
self.setStyleSheet("background-color: %s" % backgroundColor)
self.setWindowTitle('Signal & slot')
self.show()
为了使框架位于numpad下面,您必须将它们作为基础放置。要使按钮在一起,除了在QGridLayout周围添加
QSpacerItem
外,还必须将包含按钮的QGridLayout
中的空间({your layout}.setSpacing(0)
)归零。如果你有任何问题,我会留给你完整的代码。输出:
相关问题 更多 >
编程相关推荐