PyQt5 第四章 对话框(一)

对话框是现代GUI应用不可或缺的一部分,主要用来输入数据、修改数据、修改应用设置等等

4.1 文字输入框

QInputDialog提供了一个简单方便的对话框,可以输入字符串,数字或列表。

程序展示

本例中,创建一个按钮和一个输入框,点击按钮显示对话框,输入的文本会显示在输入框里

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLineEdit, QInputDialog, QPushButton

class Example(QWidget):

    def __init__(self):
        super().__init__()

        self.line = QLineEdit(self)
        self.initUI()

    def initUI(self):
        b = QPushButton("姓名", self)

        self.line.move(100, 0)

        b.clicked.connect(self.inputdialog)

        self.setGeometry(300, 300, 290, 150)
        self.setWindowTitle('Input dialog')
        self.show()

    def inputdialog(self):
        text, status = QInputDialog.getText(self, "input dialog", "请输入姓名")
        if status:
            self.line.setText(text)


if __name__ == '__main__':
    app = QApplication(sys.argv)
    e = Example()
    sys.exit(app.exec_())

程序预览:

PyQt5 第四章 对话框(一)_第1张图片

代码解释

显示一个输入框,第一个参数是输入框的标题,第二个参数是输入框的提示语。对话框返回输入内容和一个布尔值,如果点击的是OK按钮,布尔值为True

text, status = QInputDialog.getText(self, "input dialog", "请输入姓名")

把输入的字符串放到输入框里

if status:
    self.line.setText(text)

4.2 颜色选择框

QColorDialog提供了颜色选择框

程序展示

本例中,有一个按钮和一个QFrame,默认的背景颜色为黑色,我们可以使用QColorDialog改变背景颜色

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QColorDialog, QFrame
from PyQt5.QtGui import QColor

class Example(QWidget):

    def __init__(self):
        super().__init__()

        self.frame = QFrame(self)
        self.initUI()

    def initUI(self):
        b = QPushButton("color dialog", self)
        b.clicked.connect(self.colordialog)

        color = QColor(0, 0, 0)

        self.frame.setStyleSheet("QWidget { background-color: %s }" % color.name())
        self.frame.setGeometry(200, 50, 300, 300)

        self.setGeometry(300, 300, 600, 400)
        self.setWindowTitle('Color dialog')
        self.show()

    def colordialog(self):
        color = QColorDialog.getColor()

        if color.isValid():
            self.frame.setStyleSheet("QWidget { background-color: %s }" % color.name())


if __name__ == '__main__':
    app = QApplication(sys.argv)
    e = Example()
    sys.exit(app.exec_())

程序预览:

PyQt5 第四章 对话框(一)_第2张图片

代码解释

初始化QtGui.QFrame的背景颜色。

self.frame.setStyleSheet("QWidget { background-color: %s }" % color.name())

创建颜色对象,设置为黑色

color = QColor(0, 0, 0)

弹出一个颜色选择框

col = QColorDialog.getColor()

如果点击取消按钮,没有颜色值返回,如果点击OK按钮,就选择这个颜色

if col.isValid():
    self.frm.setStyleSheet("QWidget { background-color: %s }"
        % col.name())

下一篇 对话框(二)

你可能感兴趣的:(PyQt5,PyQt5)