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_())
QinputDialog

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_())
文件选择对话框

 

posted @ 2018-08-30 22:41  凌逆战  阅读(322)  评论(0编辑  收藏  举报