PyQt5对话框
QinputDialog
输入的值可以是字符串,数字,或者一个项目从一个列表
def showDialog(self): text, ok = QInputDialog.getText(self, 'Input Dialog', 'Enter your name:') if ok: self.le.setText(str(text))
# 显示对话框;第一个字符串是对话框标题,第二个字符串是对话框中的消息
# 对话框返回一个输入文本和一个布尔值,点击OK按钮,布尔值是True
# 对话框中收到的消息会显示在行编辑文本框中
1 import sys 2 from PyQt5.QtWidgets import (QWidget, QPushButton, QLineEdit, QInputDialog, QApplication) 3 class Example(QWidget): 4 def __init__(self): 5 super().__init__() 6 self.initUI() 7 8 def initUI(self): 9 self.btn = QPushButton('Dialog', self) # 创建一个Dialog的按钮 10 self.btn.move(20, 20) 11 self.btn.clicked.connect(self.showDialog) # btn信号连接到self.showDialog槽 12 13 self.le = QLineEdit(self) # 行编辑实例 14 self.le.move(130, 22) 15 16 self.setGeometry(300, 300, 290, 150) 17 self.setWindowTitle('Input dialog') 18 self.show() 19 20 def showDialog(self): 21 # 显示对话框;第一个字符串是对话框标题,第二个字符串是对话框中的消息 22 # 对话框返回一个输入文本和一个布尔值,点击OK按钮,布尔值是True 23 text, ok = QInputDialog.getText(self, 'Input Dialog', 'Enter your name:') 24 if ok: 25 self.le.setText(str(text)) 26 27 if __name__ == '__main__': 28 app = QApplication(sys.argv) 29 ex = Example() 30 sys.exit(app.exec_())
QColorDialog
QColorDialog显示一个用于选择颜色值的对话框。
1 # Author:凌逆战 2 # -*- coding:utf-8 -*- 3 4 import sys 5 from PyQt5.QtWidgets import (QWidget, QPushButton, QFrame,QColorDialog, QApplication) 6 from PyQt5.QtGui import QColor 7 8 class Example(QWidget): 9 def __init__(self): 10 super().__init__() 11 self.initUI() 12 13 def initUI(self): 14 col = QColor(0, 0, 0) # 初始化QFrame颜色为黑色 15 self.btn = QPushButton('Dialog', self) # 创建Dialog按钮 16 self.btn.move(20, 20) 17 18 self.btn.clicked.connect(self.showDialog) # btn信号绑定self.showDialog槽 19 20 self.frm = QFrame(self) # 创建一个框架 21 self.frm.setStyleSheet("QWidget { background-color: %s }"% col.name()) 22 self.frm.setGeometry(130, 22, 100, 100) 23 24 self.setGeometry(300, 300, 250, 180) 25 self.setWindowTitle('Color dialog') 26 self.show() 27 28 def showDialog(self): 29 col = QColorDialog.getColor() # 弹出QColorDialog对话框 30 # 先检查col的值。如果点击的是Cancel按钮,返回的颜色值是无效的。 31 # 当颜色值有效时,我们通过样式表(style sheet)来改变背景颜色。 32 if col.isValid(): 33 self.frm.setStyleSheet("QWidget { background-color: %s }"% col.name()) 34 35 if __name__ == '__main__': 36 app = QApplication(sys.argv) 37 ex = Example() 38 sys.exit(app.exec_())
QFontDialog
1 import sys 2 from PyQt5.QtWidgets import (QWidget, QVBoxLayout, QPushButton,QSizePolicy, 3 QLabel, QFontDialog, QApplication) 4 class Example(QWidget): 5 def __init__(self): 6 super().__init__() 7 self.initUI() 8 9 def initUI(self): 10 vbox = QVBoxLayout() # 创建垂直布局实例 11 12 btn = QPushButton('Dialog', self) # 创建按钮Dialog 13 btn.setSizePolicy(QSizePolicy.Fixed,QSizePolicy.Fixed) # 设置按钮长宽固定 14 15 btn.move(20, 20) 16 17 vbox.addWidget(btn) # 垂直布局增加按钮 18 19 btn.clicked.connect(self.showDialog) # clicked信号绑定self.showDialog槽 20 21 self.lbl = QLabel('Knowledge only matters', self) # 创建文本标签 22 self.lbl.move(130, 20) 23 24 vbox.addWidget(self.lbl) # 垂直布局添加按钮 25 self.setLayout(vbox) # 设置垂直布局 26 27 self.setGeometry(300, 300, 250, 180) 28 self.setWindowTitle('Font dialog') 29 self.show() 30 31 def showDialog(self): 32 # 弹出字体对话框,getFont()方法返回字体名称和OK参数, 33 # 如果点击Ok,表明是True, 34 font, ok = QFontDialog.getFont() 35 # 改变标签的字体 36 if ok: 37 self.lbl.setFont(font) 38 39 40 if __name__ == '__main__': 41 app = QApplication(sys.argv) 42 ex = Example() 43 sys.exit(app.exec_())
QFileDialog
1 # Author:凌逆战 2 # -*- coding:utf-8 -*- 3 4 import sys 5 from PyQt5.QtWidgets import (QMainWindow, QTextEdit, 6 QAction, QFileDialog, QApplication) 7 from PyQt5.QtGui import QIcon 8 9 class Example(QMainWindow): 10 def __init__(self): 11 super().__init__() 12 self.initUI() 13 14 def initUI(self): 15 self.textEdit = QTextEdit() # 创建文本编辑实例 16 self.setCentralWidget(self.textEdit) # 将文本编辑控件设置为窗体中央 17 self.statusBar() # 设置状态栏 18 19 openFile = QAction(QIcon('web.png'), 'Open', self) # 创建事件 20 openFile.setShortcut('Ctrl+O') # 设置快捷方式 21 openFile.setStatusTip('Open new File') # 设置状态栏提示 22 openFile.triggered.connect(self.showDialog) # 触发绑定事件 23 24 menubar = self.menuBar() # 创建菜单栏 25 fileMenu = menubar.addMenu('&File') # 创建File菜单 26 fileMenu.addAction(openFile) # 添加事件 27 28 self.setGeometry(300, 300, 350, 300) 29 self.setWindowTitle('File dialog') 30 self.show() 31 32 def showDialog(self): 33 # 弹出QFileDialog对话框,第一个字符串参数为对话框的标题,第二个指定对话框的工作目录 34 # 默认情况下文件刷选器会匹配所有类型的文件(*) 35 fname = QFileDialog.getOpenFileName(self, 'Open file', '/home') 36 # 读取文件并将文件内容显示在TextEdit控件 37 if fname[0]: 38 f = open(fname[0], 'r') 39 40 with f: 41 data = f.read() 42 self.textEdit.setText(data) 43 44 if __name__ == '__main__': 45 app = QApplication(sys.argv) 46 ex = Example() 47 sys.exit(app.exec_())