欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

pyqt5讲解4:QDialog,QMessageBox,QInputDialog,QFontDialog,QFileDialog

程序员文章站 2022-04-08 09:04:30
QDialog...

框QDialog

方法 描述
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_())
pyqt5讲解4:QDialog,QMessageBox,QInputDialog,QFontDialog,QFileDialogpyqt5讲解4:QDialog,QMessageBox,QInputDialog,QFontDialog,QFileDialog

弹出信息框QMessageBox

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_())
pyqt5讲解4:QDialog,QMessageBox,QInputDialog,QFontDialog,QFileDialogpyqt5讲解4:QDialog,QMessageBox,QInputDialog,QFontDialog,QFileDialog

输入框QInputDialog

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, ‘窗口名’, ‘提升信息:’)
初始界面
pyqt5讲解4:QDialog,QMessageBox,QInputDialog,QFontDialog,QFileDialog
点击左边按钮,弹出对话框界面
pyqt5讲解4:QDialog,QMessageBox,QInputDialog,QFontDialog,QFileDialog
pyqt5讲解4:QDialog,QMessageBox,QInputDialog,QFontDialog,QFileDialog
pyqt5讲解4:QDialog,QMessageBox,QInputDialog,QFontDialog,QFileDialog
在对话框里输入内容,点击OK,就会显示在页面上。
pyqt5讲解4:QDialog,QMessageBox,QInputDialog,QFontDialog,QFileDialog

字体框QFontDialog

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_())
pyqt5讲解4:QDialog,QMessageBox,QInputDialog,QFontDialog,QFileDialogpyqt5讲解4:QDialog,QMessageBox,QInputDialog,QFontDialog,QFileDialog

文件框QFileDialog

选取文件夹 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(*)")
pyqt5讲解4:QDialog,QMessageBox,QInputDialog,QFontDialog,QFileDialogpyqt5讲解4:QDialog,QMessageBox,QInputDialog,QFontDialog,QFileDialogpyqt5讲解4:QDialog,QMessageBox,QInputDialog,QFontDialog,QFileDialog

电气工程的计算机萌新,写博文不容易。如果你觉得本文对你有用,请点个赞支持下。谢谢。

pyqt5讲解4:QDialog,QMessageBox,QInputDialog,QFontDialog,QFileDialog

本文地址:https://blog.csdn.net/kobeyu652453/article/details/107462896