首页 > 其他分享 >20.PyQt5【基本组件】输入对话框-QInputDialog

20.PyQt5【基本组件】输入对话框-QInputDialog

时间:2023-01-16 10:56:46浏览次数:49  
标签:20 inputDialog self QInputDialog 对话框 组件 文本 输入

一、前言

这是一个预配置的对话框,带有一个文本字段和两个按钮,确定和取消。用户单击 Ok 按钮或按 Enter 后,父窗口收集文本框中的输入。

用户输入可以是数字、字符串或列表中的项目。还显示提示用户他应该做什么的标签。

二、学习目标

1.QInputDialog常用方法

2.QInputDialog常用信号

3.QInputDialog组件的应用

三、知识点

1.【QInputDialog常用方法】

方法 描述
getText() 用于键入文本的简单行编辑字段
getDouble() 可以输入浮点数的微调框
getInt() 为整数创建一个微调框
getItem() 用户可以从中选择项目的组合框
setWindowTitle() 设置窗体标题
setLabelText() 设置内容提示
setTextValue() 设置输入信息
textValue() 获取输入文本
setOkButtonText() 为OK按钮设置文本显示
setCancelButtonText() 为Cancel按钮设置文本显示

2.【QInputDialog常用信号】

QInputDialog组件一般不需要用到信号。

信号 描述
textValueChanged(text) 文本改变时触发信号
textValueSelected(text) 文本被选中时触发信号

3.【QInputDialog组件的应用】

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


class QmyWidget(QWidget):

    def __init__(self, parent=None):
        super().__init__(parent)  # 调用父类的构造函数,创建QWidget窗体
        self.setupUi()

    def setupUi(self):
        """页面初始化"""
        # 设置窗体大小及标题
        self.resize(500, 400)
        self.setWindowTitle("QInputDialog组件示例")
        # 创建布局
        self.layout = QVBoxLayout()
        # 创建两个按钮组件
        self.button1 = QPushButton("字符串输入框", self)
        self.button1.clicked.connect(self.get_text)  # 为button绑定消息对话框
        self.button2 = QPushButton("下拉列表输入框", self)
        self.button2.clicked.connect(self.get_item)  # 为button绑定消息对话框
        # 将组件添加到布局中
        self.layout.addWidget(self.button1)
        self.layout.addWidget(self.button2)
        # 为窗体添加布局
        self.setLayout(self.layout)

    def get_text(self):
        """获取输入对话框文本"""
        # QInputDialog组件定义
        inputDialog = QInputDialog(self)
        # QInputDialog组件设置
        inputDialog.setWindowTitle("标题")
        inputDialog.setLabelText("请输入文本:")
        inputDialog.setTextValue("这是默认值")
        inputDialog.setOkButtonText("确定")
        inputDialog.setCancelButtonText("取消")
        ok = inputDialog.exec()
        if ok and inputDialog.textValue():
            print("文本输入成功:{}".format(inputDialog.textValue()))
        
        # 方式二
        # text, ok = inputDialog.getText(self, '标题', '请输入文本:')  # 返回文本内容和按钮的点击项
        # if ok and text:
        #     print("文本输入成功:{}".format(text))

    def get_item(self):
        """获取输入对话框item"""
        items = ("C", "C++", "Java", "Python")
        item, ok = QInputDialog.getItem(self, "标题", "请输入语言:", items, 0, False)  # 返回文本内容和按钮的点击项
        if ok and item:
            print("item输入成功:{}".format(item))


if __name__ == '__main__':
    app = QApplication(sys.argv)
    myMain = QmyWidget()
    myMain.show()
    sys.exit(app.exec_())
  • 关键代码

            # QInputDialog组件定义
            inputDialog = QInputDialog(self)
            # QInputDialog组件设置
            inputDialog.setWindowTitle("标题")
            inputDialog.setLabelText("请输入文本:")
            inputDialog.setTextValue("这是默认值")
            inputDialog.setOkButtonText("确定")
            inputDialog.setCancelButtonText("取消")
            ok = inputDialog.exec()
            if ok and inputDialog.textValue():
                print("文本输入成功:{}".format(inputDialog.textValue()))
    

标签:20,inputDialog,self,QInputDialog,对话框,组件,文本,输入
From: https://www.cnblogs.com/ckxingchen/p/17054877.html

相关文章

  • 21.PyQt5【基本组件】文件对话框-QFileDialog
    一、前言QFileDialog小部件是一个文件选择器对话框。它使用户能够浏览文件系统并选择要打开或保存的文件。对话框通过静态函数或调用调用exec_()对话框对象上的函数。二......
  • 【2023-01-13】连岳摘抄
    23:59无论左转或右弯,无论东奔或西走,无论倦步多跚跚,或是前途多漫漫,总有一天要回头,回到熟悉的家门口。                     ......
  • 【2023-01-14】连岳摘抄
    23:59一个人应该有理想,甚至应该有幻想,但他千万不能抛开现实生活,去盲目追求实际上还不能得到的东西。尤其是对于刚踏入生活道路的年轻人来说,这应该是一个最重要的认识。......
  • P3524 [POI2011]IMP-Party 题解
    题目传送门更好的阅读体验前置芝士团设\(V\)为\(G\)子图,当\(V\)中任意两点都有边相连,则\(V\)为\(G\)的一个团。此图为本题样例最大团:\(\{1,3,4,5\}\)......
  • 2.PyQt5【窗口组件】对话框-Dialog
    一、前言QDialog类是对话框窗口的基类。对话框窗口是主要用于短期任务以及和用户进行简要通讯的顶级窗口。QDialog可以是模态对话框也可以是非模态对话框。QDialog支......
  • 【虹科新闻】虹科被评为“2022年广东省‘专精特新’中小企业”
    近日,广东省工业和信息化厅对2022年专精特新中小企业和2019年到期复核通过企业名单进行公示,虹科顺利被评为“2022年广东省‘专精特新’中小企业”。​图:广东省工业和信息化厅......
  • 2023.1.16[模板]BSGS/exBSGS
    2023.1.16[模板]BSGS/exBSGS全称BoyStepGirlStep给定一个质数p,以及一个整数a,一个整数b,现在要求你计算一个最小的非负整数l,满足\(a^x\equivb(modp)\)算法......
  • PA 2022 Drzewa rozpinające / AGC060F
    写一遍dyh的做法/kk。PA2022Drzewarozpinające根据Matrix-tree定理,我们要计算\((n-1)\times(n-1)\)的矩阵的\(\det\).设\(G_{i,j}=\gcd(a_i,a_j),D_{i,......
  • sc stream-rabbit笔记20230115
            ......
  • Luogu P4793 [AHOI2008] 矩形藏宝地
    链接难度:\(\texttt{省选/NOI-}\)有\(n\)个矩形,左下角为\((x1,y1)\),右上角为\((x2,y2)\),问被其他的矩形包含的矩形有多少个。数据范围:\(1\len\le200000,x1<x2,y1<y......