一文掌握PyQt5的五种基本对话框控件(内含代码哦!)

466 阅读3分钟

前言

PyQt5 中的对话框控件用于创建和管理各种类型的对话框,用于收集用户输入、显示信息、警告或执行其他交互任务。


下面来介绍一些对话框的使用!

QMessageBox

消息框,用于向用户显示信息、警告、错误等消息,并提供按钮供用户响应。 这里使用一个按钮,直接触发按钮事件,然后弹出消息框,进行选择。这里可以设置对话框的抬头为"Tips",以及对话的内容。

# 消息框
self.btn_message = QPushButton('打开消息框')
self.btn_message.clicked.connect(self.open_message)

def open_message(self):
    QMessageBox.information(self, "Tips", 'open the message?', QMessageBox.Yes | QMessageBox.No)

image.png

QColorDialog:

颜色选择对话框,允许用户从颜色选择器中选择颜色。 这里使用一个按钮,直接触发按钮事件,然后弹出颜色框,我们可以选择颜色,并将选择的颜色的名称进行显示。

# 颜色对话框
self.btn_color = QPushButton('打开颜色对话框')
self.btn_color.clicked.connect(self.open_color)

def open_color(self):
    color=QColorDialog.getColor()
    if color.isValid():
        self.text_bro.setText(color.name())

image.png

QFontDialog:

字体选择对话框,允许用户从系统中选择字体、字体样式和大小。 这里使用一个按钮,直接触发按钮事件,然后弹出文字选择框,并将选择的字体更改至我们的显示框中,显示框中的字体可以根据更改的样式而更改。

注意:这里是用样式表的形式进行了设置!

# 字体对话框
self.btn_word = QPushButton('打开字体对话框')
self.btn_word.clicked.connect(self.open_word)

def open_word(self):
    font,is_ok=QFontDialog.getFont()
    if is_ok:
        self.text_bro.setStyleSheet("font-family: font; font-size: 16px;")

image.png

QInputDialog:

输入对话框,用于获取用户的输入,如文本、数字等。 这里使用一个按钮,直接触发按钮事件,然后弹出输入框,并将我们输入的数字在界面显示。这里是设置了输入提示,可以输入数字。

# 输入对话框
self.btn_input = QPushButton('打开输入对话框')
self.btn_input.clicked.connect(self.open_input)

def open_input(self):
    num,is_ok=QInputDialog.getText(self,'输入:',"数字")
    if is_ok:
        self.text_bro.setText(num)

image.png

QFileDialog:

文件选择对话框,允许用户浏览文件系统并选择文件或目录。 这里使用一个按钮,直接触发按钮事件,然后弹出文件选择框,并将我们选择的文件夹的地址进行显示!

# 文件对话框
self.btn_file = QPushButton('打开文件对话框')
self.btn_file.clicked.connect(self.open_file)

def open_file(self):
    path=QFileDialog.getExistingDirectory(self,'打开文件夹','./')
    if path:
        self.text_bro.setText(path)

image.png

总体代码

class win_taking(QWidget):
    def __init__(self):
        super(win_taking,self).__init__()
        # 消息框
        self.btn_message = QPushButton('打开消息框')
        self.btn_message.clicked.connect(self.open_message)

        # 颜色对话框
        self.btn_color = QPushButton('打开颜色对话框')
        self.btn_color.clicked.connect(self.open_color)

        # 字体对话框
        self.btn_word = QPushButton('打开字体对话框')
        self.btn_word.clicked.connect(self.open_word)

        # 输入对话框
        self.btn_input = QPushButton('打开输入对话框')
        self.btn_input.clicked.connect(self.open_input)

        # 文件对话框
        self.btn_file = QPushButton('打开文件对话框')
        self.btn_file.clicked.connect(self.open_file)

        # 文本浏览框
        self.text_bro = QTextBrowser()

        #布局
        h1_layout = QHBoxLayout()
        h1_layout.addWidget(self.text_bro)

        h_layout=QHBoxLayout()
        h_layout.addWidget(self.btn_message)
        h_layout.addWidget(self.btn_color)
        h_layout.addWidget(self.btn_word)
        h_layout.addWidget(self.btn_input)
        h_layout.addWidget(self.btn_file)

        v_layout = QVBoxLayout()
        v_layout.addLayout(h_layout)
        v_layout.addLayout(h1_layout)
        self.setLayout(v_layout)
    def open_message(self):
        QMessageBox.information(self, "Tips", 'open the message?', QMessageBox.Yes | QMessageBox.No)

    def open_color(self):
        color=QColorDialog.getColor()
        if color.isValid():
            self.text_bro.setText(color.name())

    def open_word(self):
        font,is_ok=QFontDialog.getFont()
        if is_ok:
            self.text_bro.setStyleSheet("font-family: font; font-size: 16px;")

    def open_input(self):
        num,is_ok=QInputDialog.getText(self,'输入:',"数字")
        if is_ok:
            self.text_bro.setText(num)

    def open_file(self):
        path=QFileDialog.getExistingDirectory(self,'打开文件夹','./')
        if path:
            self.text_bro.setText(path)

image.png

这里的布局就不介绍了,通过按钮的形式,结合实际对话框的使用,将我们介绍的五种对话框都使用起来了!


总结

以上就将五种对话框控件进行使用介绍,大家可以根据自己的使用情况进行进一步的扩展!