3
運行此代碼將創建一個帶有標籤,lineedit和兩個按鈕的簡單對話框。 所有的小部件都很好地響應對話框水平調整大小。但對話框底部的按鈕在垂直調整大小時不會粘到對話窗口的下邊緣。確保按鈕始終位於對話框底部的可能解決方案是什麼?PyQt:如何將小部件粘貼到對話框的底部邊緣
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'繼承。 – Hyperboreus
不幸的是QDialog在QMainWindow中沒有'Minimize Dialog'按鈕(在OSX上)。在QDialog上使用QMainWindow有什麼副作用?爲什麼會推薦QMialWindow使用QDialog? – alphanumeric
那麼,QDialog有'接受'和'拒絕'的插槽。它可能是模態的(但我認爲也是一個MainWindow,但不確定)。 – Hyperboreus