【发布时间】:2014-03-06 19:59:43
【问题描述】:
运行此代码会创建一个带有标签、行编辑和两个按钮的简单对话框。 所有的小部件都能很好地响应对话框的水平调整大小。但是对话框底部的按钮在垂直调整大小时不会粘在对话框窗口的下边缘。确保按钮始终位于对话框底部边缘的可能解决方案是什么?
from PyQt4 import QtCore, QtGui
app = QtGui.QApplication(sys.argv)
class mainWindow(QtGui.QMainWindow):
def __init__(self):
super(mainWindow, self).__init__()
mainQWidget = QtGui.QWidget()
mainLayout=QtGui.QFormLayout()
mainLayout.setFieldGrowthPolicy(QtGui.QFormLayout.AllNonFixedFieldsGrow)
label = QtGui.QLabel('My Label')
lineEdit = QtGui.QLineEdit()
mainLayout.addRow(label, lineEdit)
ButtonBox = QtGui.QGroupBox()
ButtonsLayout = QtGui.QHBoxLayout()
Button_01 = QtGui.QPushButton("Close")
Button_02 = QtGui.QPushButton("Execute")
ButtonsLayout.addWidget(Button_01)
ButtonsLayout.addWidget(Button_02)
ButtonBox.setLayout(ButtonsLayout)
mainLayout.addRow(ButtonBox)
mainQWidget.setLayout(mainLayout)
self.setCentralWidget(mainQWidget)
if __name__ == '__main__':
window = mainWindow()
window.show()
window.raise_()
window.resize(480,320)
app.exec_()
【问题讨论】:
-
附注:如果你想要一个对话框,继承自
QDialog而不是QMainWindow。 -
不幸的是,QDialog 没有“最小化对话框”按钮(在 OSX 上),而 QMainWindow 有。在 QDialog 上使用 QMainWindow 有什么副作用?为什么会是您建议在 QMainWindow 上使用 QDialog 的原因?
-
嗯,QDialog 有
accepted和rejected插槽。它可能是模态的(但我也认为是 MainWindow,但不确定)。
标签: python pyqt4 qtgui qtcore qapplication