删除Combobox和标签之间的空格(QGridlayout)

时间:2014-12-08 13:48:37

标签: python qt pyside

我正在尝试通过PySide创建一个Application表单,并且我遵循一些教程,但我遇到的问题是QLabel和QCombobox之间的空间。

这是我的代码

import sys
from PySide import QtCore, QtGui
from PySide.QtGui import *
from PySide.QtCore import *

class Window(QtGui.QWidget):
    def __init__(self, parent=None):
        super(Window, self).__init__(parent)

        self.setMinimumHeight(660)
        self.setMinimumWidth(700)
        self.setMaximumHeight(660)
        self.setMaximumWidth(900)

        grid = QtGui.QGridLayout()
        grid.addWidget(self.First(), 0,0,2,0)

        self.setLayout(grid)

        self.setWindowTitle("Library")
        self.resize(700, 660)

    def First(self):
        groupBox = QtGui.QFrame()
        groupBox.setMaximumWidth(230)
        groupBox.setMaximumHeight(700)

        lbFile = QtGui.QLabel("File :",self)
        lbFolders = QtGui.QLabel("Folders :",self)

        cbFile = QtGui.QComboBox(self)
        cbFile.addItem("File 1")
        cbFile.addItem("File 2")

        lvFolders = QtGui.QListView(self)
        lvFolders.setMaximumWidth(220)
        lvFolders.setMaximumHeight(500)

        vbox = QtGui.QGridLayout()
        vbox.addWidget(lbFile,0,0)
        vbox.addWidget(cbFile,0,1)
        vbox.addWidget(lbFolders,2,0)
        vbox.addWidget(lvFolders,3,0,1,2)
        groupBox.setLayout(vbox)
        return groupBox


app = QApplication.instance()
if app is None:
    app = QApplication(sys.argv)
    clock = Window()
    clock.show()
app.exec_()

这是我的表格:

enter image description here

我不知道如何删除QLabel“File”和QCombobox“File 1”之间的空间

1 个答案:

答案 0 :(得分:0)

调整布局第二列的拉伸系数,并可能使folders标签跨越两列:

    vbox = QtGui.QGridLayout()
    vbox.addWidget(lbFile,0,0)
    vbox.addWidget(cbFile,0,1)
    vbox.addWidget(lbFolders,2,0,1,2)
    vbox.addWidget(lvFolders,3,0,1,2)
    vbox.setColumnStretch(1, 1)