QT——其他方式实现HelloWrold

server/2024/10/18 23:26:58/

QT——其他方式实现HelloWrold

  • 使用输入框实现
    • 使用代码实现
  • 通过按钮实现
    • 信号槽
    • 代码方式实现

我们之前对QT实现HelloWorld有了一些基本的了解,用了一些简单的方法实现了HelloWorld,如果对QT还不怎么了解的,可以点击这里:

https://blog.csdn.net/qq_67693066/category_12625974.html

我们今天继续来看用其他方式来实现HelloWorld:

使用输入框实现

我们新建项目,然后进入ui界面:
在这里插入图片描述
往下滑,找到这个:
在这里插入图片描述
拖到界面上:
在这里插入图片描述我们可以往上面输入文字:
在这里插入图片描述
这个时候运行我们的程序,我们的文字就可以显示了:
在这里插入图片描述

并且我们可以修改我们的文字:
在这里插入图片描述

使用代码实现

我们也可以不用ui来实现,我们可以使用纯代码来实现:
QLineEdit就是单行文本框,我们可以使用QLine来实现:
切换到widget.cpp中,导入头文件:
在这里插入图片描述设置文字:
在这里插入图片描述在这里插入图片描述

通过按钮实现

我们也可以通过按钮来实现:
进入ui文件,找到按钮那一栏:
在这里插入图片描述
像以前一样,拖上去:
在这里插入图片描述修改上面的文字就行了:
在这里插入图片描述运行程序:
在这里插入图片描述

我们可以点击这个按钮,但是看不出有什么变化。如果要实现这样的功能,就要涉及到信号槽的概念。这里我们简单了解一下:

信号槽

信号槽是Qt框架中的一种通信机制,它类似于观察者模式。在Qt中,当某个事件发生时,如按钮被点击,会发出一个信号(signal)。如果有对象对这个信号感兴趣,可以使用connect()函数将信号与自己的一个函数(称为槽,slot)连接起来。这样,当信号发出时,被连接的槽函数会自动被回调。

我们可以使用一下,我们回到widget.cpp写下这一行代码:
在这里插入图片描述

在这里插入图片描述
我们把代码补充完整:
在这里插入图片描述

这里我们的handleClick还没有写,所以会报错,我们先整体看看这个代码的含义:
在这里插入图片描述我们补充完handleClick的实现,首先在widget.h中声明:
在这里插入图片描述之后在widget.cpp中实现:
在这里插入图片描述
我们再次运行程序:
在这里插入图片描述点击按钮之后:
在这里插入图片描述但是之后再点,就不会变了,我们可以稍微调整一下:

void Widget::handleClick()
{//点击按钮时,切换文本if(ui->pushButton->text() == QString("Hello World!!!")){ui->pushButton->setText("hello C++");}else{ui->pushButton->setText("Hello World!!!");}}

再次运行就可以了:
在这里插入图片描述
在这里插入图片描述再次点击:
在这里插入图片描述

代码方式实现

我们也可以只用代码方式来实现:
首先我们可以在widget.h中添加一个私有的QPushButton成员变量:
在这里插入图片描述
然后在widget.cpp中初始化:
在这里插入图片描述

handleClick大体的逻辑没有变:
在这里插入图片描述

void Widget::handleClick()
{//点击按钮时,切换文本//if(ui->pushButton->text() == QString("Hello World!!!"))//{//      ui->pushButton->setText("hello C++");// }//else//{//      ui->pushButton->setText("Hello World!!!");// }if(myButton->text() == QString("Hello World!!!")){myButton->setText("hello C++");}else{myButton->setText("Hello World!!!");}}

两种方法大体上没有什么差别,但是一些细节还是要注意:
在这里插入图片描述


http://www.ppmy.cn/server/21081.html

相关文章

合约X—314协议系统开发

随着区块链技术的不断发展,越来越多的协议被提出和应用,其中X314协议就是其中之一。该协议旨在通过去中心化、安全性和可扩展性等方面,为区块链应用提供更好的支持。本文将从多个角度对X314协议进行深度解析,探讨其优势和不足&…

PHP 错误 Unparenthesized `a ? b : c ? d : e` is not supported

最近在一个新的服务器上测试一些老代码的时候得到了类似上面的错误: [Thu Apr 25 07:37:34.139768 2024] [php:error] [pid 691410] [client 192.168.1.229:57183] PHP Fatal error: Unparenthesized a ? b : c ? d : e is not supported. Use either (a ? b : …

Kafka 3.x.x 入门到精通(07)——Java应用场景——SpringBoot集成

Kafka 3.x.x 入门到精通(07)——Java应用场景——SpringBoot集成 4. Java应用场景——SpringBoot集成4.1 创建SpringBoot项目4.1.1 创建SpringBoot项目4.1.2 修改pom.xml文件4.1.3 在resources中增加application.yml文件 4.2 编写功能代码4.2.1 创建配置…

【金融数据接口】baostock数据python使用教程

目录 (1)官网接口文档 (2)包安装 (3)使用方法 (4)常用函数说明 1.query_all_stock:证券代码 2.query_history_k_data_plus:k线数据 3.query_trade_dates:交易日历 (

【小迪安全2023】第57天:服务攻防-应用协议RsyncSSHRDPFTP漏洞批扫口令猜解

🍬 博主介绍👨‍🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~ ✨主攻领域:【渗透领域】【应急响应】 【Java、PHP】 【VulnHub靶场复现】【面试分析】 🎉点赞➕评论➕收…

AWS SES发送邮件如何正确配置?操作指南?

AWS SES发送邮件有哪些限制?AWS SES发信的注意事项? AWS SES作为亚马逊云服务提供的一项高效、可靠的电子邮件发送服务,受到了众多企业的青睐。然而,如何正确配置AWS SES发送邮件。AokSend将详细解析AWS SES发送邮件的配置过程&a…

Matplotlib是什么?

一、Matplotlib是什么? Matplotlib是一个Python语言的2D绘图库,它非常广泛地用于数据的可视化。以下是一些主要特点: 多功能性:它允许用户创建各种静态、动态或交互式的图表,如线图、散点图、直方图等。跨平台性&…

Rust语言之简单涉猎

官方文档 简介 Rust 是一种静态类型语言。静态类型语言是指在编译时对变量和表达式进行类型检查,以确保类型的正确性。在 Rust 中,每个变量都需要在声明时指定其类型(也支持隐式声明,根据值判断),并且在编译时会进行类型检查&am…