当我调整 QFormLayout 的大小时,标签列会消失。
这是我的布局:
label = QLabel("I don't want to be truncated!")
horizontal_layout = QHBoxLayout()
for i in range(5):
button = QPushButton(str(i))
horizontal_layout.addWidget(button)
form_layout = QFormLayout()
form_layout.addRow(label, horizontal_layout)
调整大小:
为什么隐藏该列?应该有足够的位置来显示它,因为按钮宽度可以非常小。这是他们的最小尺寸:
在我的真实程序中,标签列是截断。我试图重现这个问题,但我失败了。然而,消失的列几乎是同样的问题。
完整源代码:
import sys
from PyQt4.QtGui import QApplication, QWidget, QFormLayout, QHBoxLayout,\
QPushButton, QLabel
class Form(QWidget):
def __init__(self):
QWidget.__init__(self)
label = QLabel("I don't want to be truncated!")
horizontal_layout = QHBoxLayout()
for i in range(5):
button = QPushButton(str(i))
horizontal_layout.addWidget(button)
form_layout = QFormLayout()
form_layout.addRow(label, horizontal_layout)
self.setLayout(form_layout)
self.setMinimumWidth(1)
application = QApplication(sys.argv)
form = Form()
form.show()
application.exec_()
答案 0 :(得分:1)
如果这一行
self.setMinimumWidth(1)
替换为
button.setMinimumWidth(1)
作为for循环的第二行,它可以工作