方法 | 描述 |
---|---|
setWindowTitle() | 设置对话框标题 |
setWindowModality() | 设置窗口模态,取值如下:Qt.NonModal:非模态,可以和程序的其他窗口进行交互;Qt.WindowModal:窗口模态,程序在未处理玩当前对话框时,将阻止和对话框的父窗口进行交互;Qt.ApplicationModal:应用程序模态,阻止和任何其他窗口进行交互 |
import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
class DialogDemo(QMainWindow):
def __init__(self, parent=None):
super(DialogDemo, self).__init__(parent)
self.setWindowTitle("Dialog 例子")
self.resize(350, 300)
self.btn = QPushButton(self)
self.btn.setText("弹出对话框")
self.btn.move(50, 50)
self.btn.clicked.connect(self.showdialog)
def showdialog(self):
dialog = QDialog()
btn = QPushButton("ok", dialog)
btn.move(50, 50)
dialog.setWindowTitle("Dialog")
dialog.setWindowModality(Qt.ApplicationModal)
dialog.exec_()
if __name__ == '__main__':
app = QApplication(sys.argv)
demo = DialogDemo()
demo.show()
sys.exit(app.exec_())
QMessageBox.information 信息框
QMessageBox.question 问答框
QMessageBox.warning 警告
QMessageBox.ctitical危险
QMessageBox.about 关于
#消息框
#self 当前窗口的父窗口
#消息:信息
QMessageBox.information(self,“消息框标题”,“这是一条消息。”,QMessageBox.Yes | QMessageBox.No)
#消息:问答
QMessageBox.question(self,“消息框标题”,“这是一条问答。”,QMessageBox.Yes | QMessageBox.No)
#消息:警告warning
QMessageBox.warning(self,“消息框标题”,“这是一条警告。”,QMessageBox.Yes | QMessageBox.No)
#消息:危险ctitical
QMessageBox.ctitical(self,“消息框标题”,“这是一条危险。”,QMessageBox.Yes | QMessageBox.No)
#消息:关于
QMessageBox.about(self,“消息框标题”,“这是关于对话框的说明”,QMessageBox.Yes | QMessageBox.No)
import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
class WinForm(QWidget):
def __init__(self):
super(WinForm, self).__init__()
self.setWindowTitle("QMessageBox 例子")
self.resize(300, 100)
self.myButton = QPushButton(self)
self.myButton.setText("点击弹出消息框")
self.myButton.clicked.connect(self.msg)
def msg(self):
# 使用infomation信息框
reply = QMessageBox.information(self, "标题", "对话框消息正文", QMessageBox.Yes | QMessageBox.No, QMessageBox.Yes)#最后一个yes表示默认选yes。
print(reply)
if __name__ == '__main__':
app = QApplication(sys.argv)
demo = WinForm()
demo.show()
sys.exit(app.exec_())
QInputDialog控件是一个标准对话框,有一个文本框和两个按钮(ok和cancel)组成,当用户单击ok或enter键后,在父窗口可以收集通过QInputDialog控件输入的信息,QInputDialog控件是QDialog标准对话框的一部分
在QInpuTDialog控件中可以输入数字,字符串或列表中的选项,标签用于提示必要的信息
方法 | 描述 |
---|---|
getint() | 从控件中获得标准整数输入 |
getDouble() | 从控件中获得标准浮点数输入 |
getText() | 从控件中获得标准字符串的输入 |
getItem() | 从控件中获得列表里的选项输入 |
import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
class InputdialogDemo(QWidget):
def __init__(self, parent=None):
super(InputdialogDemo, self).__init__(parent)
layout = QFormLayout()
self.btn1 = QPushButton("获得列表里的选项")
self.btn1.clicked.connect(self.getItem)
self.le1 = QLineEdit()
layout.addRow(self.btn1, self.le1)
self.btn2 = QPushButton("获得字符串")
self.btn2.clicked.connect(self.getIext)
self.le2 = QLineEdit()
layout.addRow(self.btn2, self.le2)
self.btn3 = QPushButton("获得整数")
self.btn3.clicked.connect(self.getInt)
self.le3 = QLineEdit()
layout.addRow(self.btn3, self.le3)
self.setLayout(layout)
self.setWindowTitle("Input Dialog 例子")
def getItem(self):
items = ("C", "C++", "Java", "Python")
item, ok = QInputDialog.getItem(self, "select input dialog",
"语言列表", items, 0, False)
if ok and item:
self.le1.setText(item)
def getIext(self):
text, ok = QInputDialog.getText(self, 'Text Input Dialog', '输入姓名:')
if ok:
self.le2.setText(str(text))
def getInt(self):
num, ok = QInputDialog.getInt(self, "integer input dualog", "输入数字")
if ok:
self.le3.setText(str(num))
if __name__ == '__main__':
app = QApplication(sys.argv)
demo = InputdialogDemo()
demo.show()
sys.exit(app.exec_())
QInputDialog.getText(self, ‘窗口名’, ‘提升信息:’)
初始界面
点击左边按钮,弹出对话框界面
在对话框里输入内容,点击OK,就会显示在页面上。
import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
class FontDialogDemo(QWidget):
def __init__(self, parent=None):
super(FontDialogDemo, self).__init__(parent)
layout = QVBoxLayout()
self.fontButton = QPushButton("choose font")
self.fontButton.clicked.connect(self.getFont)
layout.addWidget(self.fontButton)
self.fontLineEdit = QLabel("Hello,测试字体例子")
layout.addWidget(self.fontLineEdit)
self.setLayout(layout)
self.setWindowTitle("Font Dialog 例子")
def getFont(self):
font, ok = QFontDialog.getFont()
if ok:
self.fontLineEdit.setFont(font)
if __name__ == '__main__':
app = QApplication(sys.argv)
demo = FontDialogDemo()
demo.show()
sys.exit(app.exec_())
选取文件夹 QFileDialog.getExistingDirectory()
选择文件 QFileDialog.getOpenFileName()
选择多个文件 QFileDialog.getOpenFileNames()
选择保存文件 QFileDialog.getSaveFileName()
方法 | 描述 |
---|---|
getOpenFileName() | 返回用户所选择文件的名称,并打开该文件 |
getSaveFileName() | 使用用户选择的文件名保存文件 |
setFileMode() | 可以选择的文件类型,枚举常量是: |
- | QFileDialog.AnyFile:任何文件 |
- | QFileDialog.ExistingFile:已存在的文件 |
- | QFileDialog.Directory:文件目录 |
- | QFileDialog.ExistingFiles:已经存在的多个文件 |
setFilter() | 设置过滤器,只显示过滤器允许的文件类型 |
import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
class filedialogdemo(QWidget):
def __init__(self, parent=None):
super(filedialogdemo, self).__init__(parent)
layout = QVBoxLayout()
self.btn = QPushButton("加载图片")
self.btn.clicked.connect(self.getfile)
layout.addWidget(self.btn)
self.le = QLabel("")
layout.addWidget(self.le)
self.btn1 = QPushButton("加载文本文件")
self.btn1.clicked.connect(self.getfiles)
layout.addWidget(self.btn1)
self.contents = QTextEdit()
layout.addWidget(self.contents)
self.setLayout(layout)
self.setWindowTitle("File Dialog 例子")
def getfile(self):
fname, _ = QFileDialog.getOpenFileName(self, 'Open file', 'c:\\', "Image files (*.jpg *.gif)")
self.le.setPixmap(QPixmap(fname))
def getfiles(self):
dlg = QFileDialog()
dlg.setFileMode(QFileDialog.AnyFile)
dlg.setFilter(QDir.Files)
if dlg.exec_():
filenames = dlg.selectedFiles()
f = open(filenames[0], 'r')
with f:
data = f.read()
self.contents.setText(data)
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = filedialogdemo()
ex.show()
sys.exit(app.exec_())
fname, _ = QFileDialog.getOpenFileName(self, ‘Open file’, ‘c:\’, “Image files (*.jpg .gif)")
fname:文件名
_:打开的文件类型
‘Open file’:打开窗口名,可以不写。设为""
‘c:\’:初始打开文件夹路径
Image files (.jpg *.gif)”:文件过滤,
All Files(*) 所有类型文件。
imgName, imgType = QFileDialog.getOpenFileName(self, "打开图片", "", "*.jpg;;*.png;;All Files(*)")
电气工程的计算机萌新,写博文不容易。如果你觉得本文对你有用,请点个赞支持下。谢谢。