代码:
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)
时间: 2024-10-12 03:48:35