PySide:GUI上按钮的“动态”定位?

2024-10-02 02:37:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我在OSX10.8上使用Python2.7.5。我正在学习PySide并试图构建一个简单的GUI。在

我成功地使用了按钮(哇哦!)用于选择路径或执行函数:

pathBtn = QtGui.QPushButton("FITS file path", self)
pathBtn.setToolTip('Choose the <b>path</b> to your FITS file')
pathBtn.clicked.connect(essai)
pathBtn.resize(pathBtn.sizeHint())
pathBtn.move(200, 100) 

我的问题是,当程序运行时,我用鼠标光标改变窗口的大小,按钮不动,不适应大小的变化。在

我试图找到一些答案(当然是谷歌),我明白“QVBoxLayout”应该做我想做的(某种“动态”定位,不知道是否有一个具体的名称),但我不明白它的语法,也不知道如何使用它。。。在

感谢任何帮助!在


Tags: thepath函数self路径gui按钮file
1条回答
网友
1楼 · 发布于 2024-10-02 02:37:05

在Qt小部件中,布局和小部件的大小提示决定了如何调整大小。布局小部件的一般步骤是(例如):

dialog = QDialog()
layout = QVBoxLayout()
label = QLabel('This is a label')
edit = QLineEdit('This is a line edit box')
layout.addWidget(label)
layout.addWidget(edit)
dialog.setLayout(layout)

(*我无法在这里测试这段代码(没有Qt/PySide),所以考虑这个“伪代码”:-)

这将生成一个带有标签和编辑框的对话框小部件。如果调整对话框小部件的大小,则小部件的布局和调整大小属性可确保标签和编辑框的大小适当调整:水平方向都会最大限度地展开,但在垂直方向上,编辑将保持相同的大小,而标签将占用所有剩余空间。这是因为编辑框的resize提示表示要保持高度(即一行文本)。在

如果您不指定布局,您的小部件(按钮、标签)在调整其父部件的大小时不会做任何事情,这就是您所观察到的。因此,解决方案确实是QVBoxLayout,如我所述使用它。在

顺便说一句:对于更复杂的布局,您可能希望使用Qt提供的设计器工具:这个工具允许您预先查看和测试GUI。在

相关问题 更多 >

    热门问题