标准对话框的使用

代码:

 1 #coding: utf-8
 2 from PyQt4.QtGui import *
 3 from PyQt4.QtCore import *
 4 import sys
 5 #设定 tr 方法使用 utf8 编码来解析文字
 6 QTextCodec.setCodecForTr(QTextCodec.codecForName("utf8"))
 7 
 8 class StandardDialog(QDialog):
 9 
10     def __init__(self, parent=None):
11         super(StandardDialog, self).__init__(parent)
12         #设置程序标题
13         self.setWindowTitle("Standard Dialog")
14         #创建各个按钮控件
15         filePushButton = QPushButton(self.tr("文件对话框"))
16         colorPushButton = QPushButton(self.tr("颜色对话框"))
17         fontPushButton = QPushButton(self.tr("字体对话框"))
18         #创建一个QLineEdit类实例fileLineEdit,用来显示选择的文件名
19         self.fileLineEdit = QLineEdit()
20         #创建一个 QFrame 类例 colorFrame,当用户选择不同的颜色时,colorFrame 会根据用户选择的颜色更新其背景
21         self.colorFrame = QFrame()
22         self.colorFrame.setFrameShape(QFrame.Box)
23         self.colorFrame.setAutoFillBackground(True)
24         #创建一个 QLineEdit 类实例 fontLineEdit,当用户选择不同的字体时,fontLineEdit 会根据用户选择的字体更新其内容
25         self.fontLineEdit = QLineEdit("Hello World!")
26         #将各个控件进行布局
27         layout = QGridLayout()
28         layout.addWidget(filePushButton, 0, 0)
29         layout.addWidget(self.fileLineEdit, 0, 1)
30         layout.addWidget(colorPushButton, 1, 0)
31         layout.addWidget(self.colorFrame, 1, 1)
32         layout.addWidget(fontPushButton, 2, 0)
33         layout.addWidget(self.fontLineEdit, 2, 1)
34 
35         self.setLayout(layout)
36         #将各个按钮的 clicked 信号相应的槽进行连接
37         self.connect(filePushButton, SIGNAL("clicked()"), self.openFile)
38         self.connect(colorPushButton, SIGNAL("clicked()"), self.openColor)
39         self.connect(fontPushButton, SIGNAL("clicked()"), self.openFont)
40 
41     def openFile(self):
42         #getOpenFileName()是QFileDialog 类的一个静态方法,返回用户选择的文件名,如果用户选择取消,则返回一个空串
43         s = QFileDialog.getOpenFileName(self, "Open file dialog", "/", "Python files(*.py)")
44         self.fileLineEdit.setText(str(s))
45 
46     def openColor(self):
47         #slotColor()函数是颜色对话框按钮 clicked 信号的槽。其中 getColor()是 QColorDialog 的一个静态函数,返回用户选择的颜色值
48         c = QColorDialog.getColor(Qt.blue)
49         if c.isValid():
50             self.colorFrame.setPalette(QPalette(c))
51 
52     def openFont(self):
53 
54         f,ok = QFontDialog.getFont()
55         if ok:
56             self.fontLineEdit.setFont(f)
57 
58 app = QApplication(sys.argv)
59 form = StandardDialog()
60 form.show()
61 app.exec_()

1.QFileDialog 类还提供了类似的其他静态函数,如下表,通过这些函数,用户可以方便地定制自己的文件对话框。

2.slotFont()函数是字体对话框按钮clicked信号的槽。其中getFont()是QFontDdialog的一个静态函数,返回用户选择的字体,函数形式如下:

(QFont, bool)getFont(QFont, QWidget, QString, FontDialogOptions)

 (QFont, bool) getFont (QFont, QWidget, QString)
 (QFont, bool) getFont (QFont, QWidget parent = None)
 (QFont, bool) getFont (QWidget parent = None)

posted @ 2015-05-08 21:42  Chris*Chen  阅读(511)  评论(0编辑  收藏  举报