PyQt5 第四章 对话框(一)

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

零基础入门玩转 PyQt5》 邀请码: LWskm3AS

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_())

程序预览:

在这里插入图片描述

代码解释

显示一个输入框,第一个参数是输入框的标题,第二个参数是输入框的提示语。对话框返回输入内容和一个布尔值,如果点击的是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_())

程序预览:

在这里插入图片描述

代码解释

初始化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())

目录   下一篇 对话框(二)

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PyQt5中,弹出对话框是一种常见的交互方式。根据引用和引用的内容,有三种最常用的弹出窗口类型:输入框、消息提示框和文件夹对话框。其中,QInputDialog是用于弹出输入对话框的类,可以通过调用getInt()函数获取整数输入。示例代码如下: ```python from PyQt5.QtWidgets import QApplication, QWidget, QInputDialog import sys class MyWindow(QWidget): def __init__(self): super().__init__() self.setWindowTitle('PyQt5 弹出窗口') self.resize(400, 300) h1 = QHBoxLayout(self) btn = QPushButton('弹出窗口') btn.clicked.connect(self.showInputDialog) h1.addWidget(btn) def showInputDialog(self): value, ok = QInputDialog.getInt(self, "输入框标题", "这是提示信息\n\n请输入整数:", 37, -10000, 10000, 2) if ok: print(f"输入的整数为:{value}") else: print("取消输入") if __name__ == "__main__": app = QApplication(sys.argv) win = MyWindow() win.show() sys.exit(app.exec_()) ``` 以上代码展示了一个窗口,其中有一个按钮,当点击按钮时,会弹出一个输入对话框,要求用户输入一个整数。输入对话框的标题是"输入框标题",提示信息是"这是提示信息\n\n请输入整数:"。输入的整数会被打印出来。若用户点击取消按钮,则会打印"取消输入"。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [PyQt5弹出窗口--QInputDialog, QMessageBox, QFileDialog](https://blog.csdn.net/weixin_50113231/article/details/124102931)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* [Pyqt5 6种弹出对话框结合信号与槽使用](https://blog.csdn.net/maidu_xbd/article/details/85696510)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值