UI布局中的奇怪间距

时间:2014-03-07 07:41:41

标签: python user-interface layout pyqt4

每当我运行我的这个脚本时,我的元素的布局都在正确的区域,但是右栏中的间距(标签/按钮/行编辑所在的位置)使得它们之间的奇怪间距非常难看

我有什么想法可以杀掉它吗?或者也许使用gridLayout不是明智的选择?

 class createUI(QFrame):
    def __init__(self, parent =None):
        QFrame.__init__(self, parent)
        self.initUI()

    def initUI(self):   
        self.objLbl = QLabel('Name of Item')
        self.objTxt = QLineEdit()
        self.objTxt.setMaximumWidth(100)
        self.renameLbl = QLabel('Rename')
        self.renameTxt = QLineEdit()
        self.renameTxt.setMaximumWidth(100)

        self.itemLbl = QLabel('Item Lists')
        self.itemList = QListWidget()

        self.okButton = QPushButton('OK')
        self.okButton.setMaximumWidth(100)

        gridLayout = QGridLayout()
        gridLayout.addWidget(self.itemLbl,1,0)
        gridLayout.addWidget(self.itemList,2,0,6,1)


        gridLayout.addWidget(self.objLbl,2,1)
        gridLayout.addWidget(self.objTxt,3,1)
        gridLayout.addWidget(self.renameLbl,4,1)
        gridLayout.addWidget(self.renameTxt,5,1)
        gridLayout.addWidget(self.okButton,7,1)

        self.setLayout(gridLayout)  
        self.setWindowTitle("Testing")

1 个答案:

答案 0 :(得分:1)

在OK按钮上方插入一个垂直拉伸的垫片:

    gridLayout.addWidget(self.renameTxt,5,1)

    gridLayout.addItem(QSpacerItem(
        0, 0, QSizePolicy.Minimum, QSizePolicy.Expanding), 6, 1)

    gridLayout.addWidget(self.okButton,7,1)