主窗口小部件调整大小(Pyside)(MainWindow Widget Resize (Pysid

2019-10-19 06:56发布

我有一个GUI应用程序的主窗口的大小调整的问题。

这是我所看到的,当我尝试运行应用程序: 链接图片1

:当我尝试用鼠标来调整它发生什么链接图片2

我想,当我尝试调整它显示里面像第一图像I显示了插件的主窗口前,而不是让每个“标签”之间的大间距。

如果它可以帮助这是代码: 链接代码

你可以去straigth到功能setUi(),setGridUI(),忽略其余代码。 试图削减一些吧,让它简单..

谢谢..

Answer 1:

如果你想有一个调整大小以不修改的中心QGridLayout ,您需要把不同的拉伸一些周边行。

我添加了一个排的上方和下方的内容,以及内容的左侧和右侧一列,并增加了拉伸。

http://doc.qt.io/qt-4.8/qgridlayout.html#setRowStretch

http://doc.qt.io/qt-4.8/qgridlayout.html#setColumnStretch

def setupGridUI(self):
    widget = QWidget()
    layout = QGridLayout()
    width, height = 10, 10

    root_x, root_y = random.randrange(width), random.randrange(height)

    for x in range(width):
        for y in range(height):
            random_wall = random.randrange(3)
            if x == root_x and y == root_y:
                label = ClickableLabel(x, y, False, True)
            else:
                if random_wall == 0:
                    label = ClickableLabel(x, y, True)
                else:
                    label = ClickableLabel(x, y)

            layout.addWidget(label, x+1, y+1) # modified

    # added the following 4 lines
    layout.setRowStretch(0, 1);
    layout.setRowStretch(height+2, 1);
    layout.setColumnStretch(0, 1);
    layout.setColumnStretch(width+2, 1);

    widget.setLayout(layout)
    self.setCentralWidget(widget)

    self.setStyleSheet("QMainWindow {background: 'purple'}")

希望帮助。



文章来源: MainWindow Widget Resize (Pyside)