【问题标题】:Reduce spacing in PyQt5 - GridLayout - Between the widgets减少 PyQt5 中的间距 - GridLayout - 小部件之间
【发布时间】:2020-06-25 15:38:01
【问题描述】:

我是 PyQt5 的新手,我创建了一个如图所示的网格布局我想减少三个小部件之间的差距,我尝试了边距、间距和行拉伸,但都没有奏效,请看中的图像超链接并帮助我:

图片:

def createlayout(self):
    self.label1=QLabel(self.label,self)
    self.label2=QLabel(self.label2,self)
    self.label3 = QLabel("try", self)
    self.textbox = QLineEdit(self)

    vbox=QGridLayout()


    vbox.addWidget(self.label1,0,0,1,1)

    vbox.addWidget(self.textbox,1,0,1,1)

    vbox.addWidget(self.label2,2,0,1,1)

    vbox.addWidget(self.label3, 3, 0, 1, 1)

    vbox.setContentsMargins(1,0,0,0)
    #vbox.setAlignment('AlignCenter')
    vbox.setRowStretch(0, 0)
    vbox.setRowStretch(1, 0)
    vbox.setRowStretch(2,0)
    vbox.setColumnStretch(1,0)
    #vbox.setRowStretch(2,1)
    vbox.setRowStretch(3,0)
    vbox.setSpacing(0)

【问题讨论】:

    标签: python user-interface pyqt pyqt5 pygui


    【解决方案1】:

    QGridLayout::setRowStretch(int row, int stretch)

    将行列的拉伸因子设置为拉伸。第一行是数字 0。

    拉伸因子与此网格中的其他行相关。具有较高拉伸因子的行会占用更多可用空间。

    默认拉伸因子为 0。如果拉伸因子为 0,并且此表中的其他行根本无法增长,则该行可能仍会增长。

    import sys
    from PyQt5.Qt import *
    
    class Window(QWidget):
        def __init__(self):
            super().__init__()
            self.createlayout()
    
        def createlayout(self):
            self.label1 = QLabel("self.label")
            self.label2 = QLabel("self.label2")
            self.label3 = QLabel("try", )
            self.textbox = QLineEdit()
    
            vbox = QGridLayout(self)
            vbox.addWidget(self.label1, 0, 0)
            vbox.addWidget(self.textbox, 1, 0)
            vbox.addWidget(self.label2, 2, 0)
            vbox.addWidget(self.label3, 3, 0)
            
            vbox.setRowStretch(4, 1)                                 # +++
    
            
    if __name__ == '__main__':
        app = QApplication(sys.argv)
        w = Window()
        w.resize(300, 200)
        w.show()
        sys.exit(app.exec_())
    

    【讨论】:

    • 谢谢,但如果我想增加文本框和“Self.label2”之间的空间,我应该再次使用拉伸还是其他?
    • @Omi 对不起,但你没有在问题中写这个。提出问题并展示您希望收到的内容?
    • 我提出了新问题
    猜你喜欢
    • 1970-01-01
    • 2021-08-06
    • 2010-09-18
    • 1970-01-01
    • 1970-01-01
    • 2017-02-16
    • 2015-03-17
    • 1970-01-01
    • 2021-10-25
    相关资源
    最近更新 更多