【问题标题】:PyQT issues with buttons and QGridLayout按钮和 QGridLayout 的 PyQT 问题
【发布时间】:2014-04-04 18:21:37
【问题描述】:

我正在尝试创建一个简单的 GUI,它由 3 个垂直分割的部分组成,顶部 2 个是 QLabels,底部是一个按钮网格。我的问题是,虽然按钮在网格中水平扩展,但它们并没有垂直扩展以填充整个单元格。

这是我的设置:

    app = QtGui.QApplication([])

    window = QtGui.QMainWindow()
    window.setWindowFlags(QtCore.Qt.FramelessWindowHint)
    window.setFixedSize(self.WINDOW_WIDTH,self.WINDOW_HEIGHT)

    centralWidget = QtGui.QWidget(window)
    window.setCentralWidget(centralWidget)


    LCD = QtGui.QLabel()
    LCD.setFixedSize(self.WINDOW_WIDTH, int(.32*self.WINDOW_HEIGHT))
    LCD.setAutoFillBackground(True)
    LCD.setAlignment(QtCore.Qt.AlignCenter)
    LCD.setText("LCD")

    palette = QtGui.QPalette()
    palette.setColor(QtGui.QPalette.Background,QtCore.Qt.red)
    palette.setColor(QtGui.QPalette.Foreground,QtCore.Qt.white)
    LCD.setPalette(palette)

    ticker= QtGui.QLabel()
    ticker.setFixedSize(self.WINDOW_WIDTH, int(.04*self.WINDOW_HEIGHT))
    ticker.setText("Ticker")
    ticker.setAlignment(QtCore.Qt.AlignCenter)

    buttonWidget = QtGui.QWidget()
    buttonWidget.setFixedSize(self.WINDOW_WIDTH, int(.64*self.WINDOW_HEIGHT))


    vbox = QtGui.QVBoxLayout(centralWidget)
    vbox.setContentsMargins(0,0,0,0)
    vbox.setSpacing(0)

    vbox.addWidget(LCD)
    vbox.addWidget(ticker)
    vbox.addWidget(buttonWidget)

    buttonGridbox = QtGui.QGridLayout(buttonWidget)
    buttonWidget.setLayout(buttonGridbox)
    for i in range(0,2):
        for j in range(0,2): 
            buttonGridbox.addWidget(QtGui.QPushButton("button "+ str(i)),i,j)



    centralWidget.setLayout(vbox)

    window.show()
    sys.exit(app.exec_())

这是我的输出(我已经用矩形限制了 QLabels 和 QGridLayout 以显示它们的区域):

【问题讨论】:

    标签: python qt pyqt pyqt4


    【解决方案1】:

    您必须在它们上设置 setSizePolicy 才能扩展,例如

    THE_BUTTON_OBJECT.setSizePolicy(QtGui.QSizePolicy.MinimumExpanding,QtGui.QSizePolicy.Preferred)

    【讨论】:

      猜你喜欢
      • 2013-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-17
      • 2023-03-18
      相关资源
      最近更新 更多