先看一下最终的效果图:
完全代码:
#!/usr/bin/env python
import sys
from PySide.QtCore import *
from PySide.QtGui import *
class FindDialog(QDialog):
def __init__(self, parent=None):
QDialog.__init__(self, parent)
#创建Label & Edit
label = QLabel('Find &what:')
lineEdit = QLineEdit()
label.setBuddy(lineEdit) #当按下Alt+w时,焦点落在Edit上。
#创建CheckBox
caseCheckBox = QCheckBox('Match &case')
backwardCheckBox = QCheckBox('Search &backward')
#创建Find Button
findButton = QPushButton('&Find')
findButton.setDefault(True) #设置为默认按钮
findButton.setEnabled(False) #设置按钮禁用
closeButton = QPushButton('Close')
#布局对话框内容
topLeftLayout = QHBoxLayout()
topLeftLayout.addWidget(label)
topLeftLayout.addWidget(lineEdit)
leftLayout = QVBoxLayout()
leftLayout.addLayout(topLeftLayout)
leftLayout.addWidget(caseCheckBox)
leftLayout.addWidget(backwardCheckBox)
rightLayout = QVBoxLayout()
rightLayout.addWidget(findButton)
rightLayout.addWidget(closeButton)
rightLayout.addStretch()
mainLayout = QHBoxLayout()
mainLayout.addLayout(leftLayout)
mainLayout.addLayout(rightLayout)
self.setLayout(mainLayout)
#设置对话框标题
self.setWindowTitle('Find')
def main():
app = QApplication(sys.argv)
d = FindDialog()
d.show()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
下面的对话框布局图和父子关系图: