使用.addRow()方法将 QtGui.QLineEdit line_edit小部件放在 QtGui.QFormLayout 表单布局中。
my_formLayout.addRow(my_label, my_lineEdit)
使用sizePolicy尝试使line_edit小部件坚持对话框窗口的边缘(因此使用对话框重新调整大小):
sizePolicy = my_lineEdit.sizePolicy()
sizePolicy.setHorizontalStretch(1)
my_lineEdit.setSizePolicy( sizePolicy )
没有错误。但是line_edit小部件仍然没有坚持到对话框的边缘......可能出错了什么?
答案 0 :(得分:2)
你不应该做任何事情。
这个简单的例子根据需要调整大小:
from PyQt4 import QtGui
class Dialog(QtGui.QDialog):
def __init__(self):
super(Dialog, self).__init__()
form = QtGui.QFormLayout(self)
label = QtGui.QLabel('Label', self)
edit = QtGui.QLineEdit(self)
form.addRow(label, edit)
if __name__ == '__main__':
import sys
app = QtGui.QApplication(sys.argv)
window = Dialog()
window.setGeometry(500, 300, 300, 50)
window.show()
sys.exit(app.exec_())
<强>更新强>:
好的,似乎QFormaLayout 的行为依赖于平台。引用docs:
基于Mac OS X Aqua指南的样式。标签是右对齐的,字段不会超出其大小提示,并且表单是水平居中的。
但是,有一个setFieldGrowthPolicy方法,可用于覆盖Mac OSX上的默认行为。所以试试:
my_formLayout.setFieldGrowthPolicy(QtGui.QFormLayout.ExpandingFieldsGrow)
或:
my_formLayout.setFieldGrowthPolicy(QtGui.QFormLayout.AllNonFixedFieldsGrow)
答案 1 :(得分:0)
试试这个:sizePolicy.setHorizontalPolicy(QSizePolicy.Expanding)