跳至正文
View Categories

< 1 min read

    主要内容 #

  1. QInputDialog介绍
  2. QColorDialog介绍

完成效果 #

完成本节课程,能学会在窗口应用程序上增加文本对话框和改变颜色的对话框。
效果如下:

收获 #

学习完本节内容,我们会知道如何创建QInputDialog对话框控件,并利用QColorDialog更改对话框颜色。

1.QInputDialog介绍 #

对话框是一个现代GUI应用不可或缺的一部分。对话是两个人之间的交流,对话框就是人与电脑之间的对话。对话框用来输入数据,修改数据,修改应用设置等等。
QInputDialog提供了一个简单方便的对话框,可以输入字符串,数字或列表。以下是QInputDialog的简单示例:

# 注意,以下包都要导入,后面内容会用到
from PyQt5.QtWidgets import QWidget, QLineEdit, QInputDialog,  QColorDialog, QApplication
import sys

class Example(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):  
        self.le = QLineEdit(self)  # 创建一个行文本框控件
        self.le.move(130, 22)  # 移动位置
        # QInputDialog.getText()方法从控件获得标准字符串输入,第一个参数输入父窗口,
        # 第二个参数输入对话框的标题名,第三个参数是对话框的标签提示
        # 返回值text是用户输入的字符串,okPressed是ok键的点击与否(True 或 False)
        text, okPressed = QInputDialog.getText(self, 'Input Dialog', 'Enter your name:')
        # 如果ok键点击了,则让行文本框显示用户输入的字符串
        if okPressed:
            self.le.setText(str(text))

        # 设置窗口的位置和大小,前两个参数表示离屏幕左上角的坐标,后两个参数表示窗口的大小
        self.setGeometry(300, 300, 500, 500)
        self.setWindowTitle('QInputDialog')  # 设置窗口的标题
        self.show()  # 显示窗口
  

app = QApplication(sys.argv)    # 创建应用程序
ex = Example()  # 创建窗口对象
sys.exit(app.exec_())   # 设置关闭窗口后结束进程

拓展练习:多运行几次上述程序,尝试每次输入不同的姓名,中英文均可。

2.QColorDialog介绍 #

QColorDialog提供颜色的选择。以下是QColorDialog的简单示例:

    col = QColorDialog.getColor()  # QColorDialog.getColor()方法创建颜色选择对话框,返回的col是用户选择的颜色
    # setStyleSheet()方法更改应用的显示风格,参数'QWidget {background-color:%s}'指定修改控件的背景颜色
    self.setStyleSheet('QWidget {background-color:%s}' %col.name())  # col.name 是颜色的十六进制值

将这部分代码,添加到第一节PyQt5代码框架中的initUI中,注意要放在最前面。
拓展练习:运行上述程序,将对话框改为红色。

小结 #

  • 学习了如何创建QInputDialog控件。
  • 学习了如何改变QInputDialog控件的颜色。
  • 习题 #

    1. 习题1:尝试修改QInputDialog的标签提示为‘Enter your favorite language’,然后输入语言名称。
    2. 习题2:多运行几次程序,尝试将对话框改为黄色、蓝色、黑色。