gpt4 book ai didi

python - PyQT 按钮在 QGridLayout 中的大小不正确

转载 作者:行者123 更新时间:2023-12-01 03:41:40 26 4
gpt4 key购买 nike

我刚刚在 Windows 7 和 Python 2.7 上启动了一个简单的 PyQt 应用程序。有 2 个按钮和一张 table 。 Apple 按钮应比 Orange 按钮高 5 倍,并且表格应与 Apple 按钮高度相同。

尽管使用 grid.addWidget(appleBtn, 0, 0, 5, 1) 定义其高度,但两个按钮的高度都相同。

有什么建议吗?

enter image description here

from PyQt4.QtGui import *
from PyQt4.QtCore import *
import sys


def main():

app = QApplication(sys.argv)
w = QTabWidget()

# Tab
grid = QGridLayout()
tab = QWidget()
tab.setLayout(grid)
w.addTab(tab,"Hello World")


# Button 1
appleBtn = QPushButton("Apples")
appleBtn.setSizePolicy(QSizePolicy.Preferred, QSizePolicy.Expanding)
grid.addWidget(appleBtn, 0, 0, 5, 1)


# Button 1
orangeBtn = QPushButton("Oranges")
appleBtn.setSizePolicy(QSizePolicy.Preferred, QSizePolicy.Expanding)
grid.addWidget(orangeBtn, 5, 0, 1, 1)


# Table
fruitTable = QTableWidget()
fruitTable.setRowCount(5)
fruitTable.setColumnCount(2)
fruitTable.setHorizontalHeaderLabels(QString("Fruit;Color;").split(";"))
fruitTable.horizontalHeader().setResizeMode(QHeaderView.Stretch)
grid.addWidget(fruitTable, 6, 0, 1, 1)


w.resize(400,300)
w.setWindowTitle('Test')
w.show()
sys.exit(app.exec_())


main()

最佳答案

addWidget 方法并不像您想象的那样工作。第二个和第三个参数指定行/列,而第三个和第四个参数指定要跨越的行/列数。

指定比例高度的正确方法是使用setRowStretch:

grid.addWidget(appleBtn, 0, 0)
grid.setRowStretch(0, 5)
...
grid.addWidget(orangeBtn, 1, 0)
...
grid.addWidget(fruitTable, 2, 0)
grid.setRowStretch(2, 5)

关于python - PyQT 按钮在 QGridLayout 中的大小不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39536497/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com