当前位置: 首页 > news >正文

Qt基础操作槽函数

在 "dialog.cpp" 文件的构造函数中添加如下代码:

```cpp

inputBtn = new QPushButton;

inputBtn->setText(tr("标准输入对话框实例"));

添加布局管理:

mainLayout->addWidget(inputBtn, 3, 0);

最后添加事件关联:

// 创建控件的对象

// 布局设计

connect(inputBtn, SIGNAL(clicked()), this, SLOT(showinputDlg()));

// 事件关联

```

其中,槽函数showinputDlg的实现代码如下:

```cpp

void Dialog::showinputDlg()

{

    inputDlg = new InputDlg(this);

    inputDlg->show();

}

```

标准字符串输入对话框通过QInputDialog类的静态函数getText()完成,getText()函数形式如下:

```cpp

QString getText(

    QWidget* parent,

    const QString& title,

    const QString& label,

    QLineEdit::EchoMode mode = QLineEdit::Normal,

    const QString& text = QString(),

    bool* ok = nullptr,

    Qt::WindowFlags flags = Qt::WindowFlags()

);

```

其中,参数说明如下:

- parent:标准输入对话框的父窗口

- title:标准输入对话框的标题名

- label:标准输入对话框的标签提示

- mode:指定标准输入对话框中QLineEdit控件的输入模式

- text:标准字符串输入对话框弹出时QLineEdit控件中默认出现的文字

- ok:指示标准输入对话框的哪个按钮被触发,若为true,则表示用户单击了"OK"(确定)按钮;若为false,则表示用户单击了"Cancle"(取消)按钮。

- flags:指明标准输入对话框的窗体标识

接着上述的程序,完成"inputdlg.cpp"文件中的槽函数ChangeName的实现。具体代码如下:

```cpp

void InputDlg::ChangeName()

{

    bool ok;

    QString text = QInputDialog::getText(this, tr("标准字符串输入对话框"),

                                         tr("请输入姓名:"), QLineEdit::Normal, nameLabel2->text(), &ok);

    if (ok && !text.isEmpty())

        nameLabel2->setText(text);

在"inputdlg.cpp"文件的开始部分添加头文件:

#include <QInputDialog>

标准条目选择对话框是通过QInputDialog类的静态函数getItem()来完成的,getItem()函数形式如下:

```cpp

QString getItem(

    QWidget* parent,

    const QString& title,

    const QString& label,

    const QStringList& items,

    int current = 0,

    bool editable = true,

    bool* ok = nullptr,

    Qt::WindowFlags flags = Qt::WindowFlags()

);

其中,参数说明如下:

- parent:标准输入对话框的父窗口

- title:标准输入对话框的标题名

- label:标准输入对话框的标签提示

- items:指定标准输入对话框中QComboBox控件显示的可选条目为一个QStringList对象。

- current:标准条目选择对话框弹出时QComboBox控件中默认显示的条目序号。

- editable:指定QComboBox控件中显示的文字是否可编辑

- ok:指示标准输入对话框的哪个按钮被触发,若ok为true,则表示用户单击了"OK"(确定)按钮;若ok为false,则表示用户单击了"Cancle"(取消)按钮。

- flags:指明标准输入对话框的窗体标识

同上,接着上述的程序,完成"inputdlg.cpp"文件中的槽函数ChangeSex()的实现。具体代码如下:

```cpp

void InputDlg::ChangeSex()

{

    QStringList sexItems;

    sexItems << tr("男") << tr("女");

    bool ok;

    QString sexItem = QInputDialog::getItem(this, tr("标准条目选择对话框"),

                                             tr("请选择性别:"), sexItems, 0, false, &ok);

    if (ok && !sexItem.isEmpty())

        sexLabel2->setText(sexItem);

}

```

再次运行程序,单击"修改性别"按钮后出现对话框,可以在该对话框内选择性别,如图4.5所示。

标准整型输入对话框是通过QInputDialog类的静态函数getInt()来完成的,getInt()函数形式如下:

```cpp

int getInt(

    QWidget* parent,

    const QString& title,

    const QString& label,

    int value = 0,

    int minValue = -2147483647,

    int maxValue = 2147483647,

    int step = 1,

    bool* ok = nullptr,

    Qt::WindowFlags flags = Qt::WindowFlags()

);

```

其中,参数说明如下:

- parent:标准输入对话框的父窗口

- title:标准输入对话框的标题名

- label:标准输入对话框的标签提示

- value:标准整型输入对话框弹出时QSpinBox控件中默认显示的值

- minValue:标准整型输入对话框中QSpinBox控件允许输入的最小值

- maxValue:标准整型输入对话框中QSpinBox控件允许输入的最大值

- step:标准整型输入对话框中QSpinBox控件的步长

- ok:指示标准输入对话框的哪个按钮被触发,若ok为true,则表示用户单击了"OK"(确定)按钮;若ok为false,则表示用户单击了"Cancle"(取消)按钮。

- flags:指明标准输入对话框的窗体标识

接着上述的程序,完成"inputdlg.cpp"文件中的槽函数ChangeAge()的实现。具体代码如下:

void InputDlg::ChangeAge()

{

    bool ok;

    int age = QInputDialog::getInt(this, tr("标准整型输入对话框"),

                                   tr("请输入年龄:"), ageLabel2->text().toInt(), 0, 100, 1, &ok);

    if (ok)

        ageLabel2->setText(QString::number(age));

}

```

再次运行程序,单击"修改年龄"按钮后出现对话框,可以在该对话框内输入年龄,如图4.5所示。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • docker挂载宿主机文件run命令启动报错
  • 3D技术如何赋能产品个性化定制?
  • Linux配置静态IP详细步骤及联网问题,以及更改主机名问题
  • SpringBoot2:web开发常用功能实现及原理解析-上传与下载
  • Activiti7《第二式:破剑式》——工作流中的以柔克刚
  • Win32 Wmi获取设备信息
  • VMware Workstation Player虚拟机Ubuntu启用Windows共享目录
  • 代码随想录八股训练营第四十天| C++
  • Leetcode Hot 100刷题记录 -Day14(矩阵置0)
  • Nacos未授权访问
  • 大工程师插件下载 官方地址
  • 【数据结构】十大经典排序算法总结与分析
  • Vue3.0组合式API:computed计算属性、watch监听器、watchEffect高级监听器
  • C++ 常用设计模式
  • 有源滤波器UAF42
  • 【附node操作实例】redis简明入门系列—字符串类型
  • Android开源项目规范总结
  • Apache Zeppelin在Apache Trafodion上的可视化
  • interface和setter,getter
  • opencv python Meanshift 和 Camshift
  • 反思总结然后整装待发
  • 极限编程 (Extreme Programming) - 发布计划 (Release Planning)
  • 扫描识别控件Dynamic Web TWAIN v12.2发布,改进SSL证书
  • 体验javascript之美-第五课 匿名函数自执行和闭包是一回事儿吗?
  • 通过git安装npm私有模块
  • 为视图添加丝滑的水波纹
  • 阿里云ACE认证之理解CDN技术
  • 国内开源镜像站点
  • ​探讨元宇宙和VR虚拟现实之间的区别​
  • #多叉树深度遍历_结合深度学习的视频编码方法--帧内预测
  • ( )的作用是将计算机中的信息传送给用户,计算机应用基础 吉大15春学期《计算机应用基础》在线作业二及答案...
  • (70min)字节暑假实习二面(已挂)
  • (C++哈希表01)
  • (JS基础)String 类型
  • (k8s中)docker netty OOM问题记录
  • (Matalb回归预测)PSO-BP粒子群算法优化BP神经网络的多维回归预测
  • (Qt) 默认QtWidget应用包含什么?
  • (ZT)北大教授朱青生给学生的一封信:大学,更是一个科学的保证
  • (八)Docker网络跨主机通讯vxlan和vlan
  • (分类)KNN算法- 参数调优
  • (力扣记录)235. 二叉搜索树的最近公共祖先
  • (论文阅读23/100)Hierarchical Convolutional Features for Visual Tracking
  • (南京观海微电子)——示波器使用介绍
  • (十一)手动添加用户和文件的特殊权限
  • (四)Android布局类型(线性布局LinearLayout)
  • (转)Linux下编译安装log4cxx
  • (最简单,详细,直接上手)uniapp/vue中英文多语言切换
  • .NET 使用配置文件
  • .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary)
  • .NET上SQLite的连接
  • .NET设计模式(11):组合模式(Composite Pattern)
  • .net中的Queue和Stack
  • @autowired注解作用_Spring Boot进阶教程——注解大全(建议收藏!)
  • [ C++ ] STL---仿函数与priority_queue
  • [20150707]外部表与rowid.txt