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!!!");
        }

}

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

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-25 10:22:03       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-25 10:22:03       106 阅读
  3. 在Django里面运行非项目文件

    2024-04-25 10:22:03       87 阅读
  4. Python语言-面向对象

    2024-04-25 10:22:03       96 阅读

热门阅读

  1. 桐乡上元——UI设计

    2024-04-25 10:22:03       35 阅读
  2. Oracle 中的函数

    2024-04-25 10:22:03       39 阅读
  3. 【.Net8教程】(二)原始字符串字面量

    2024-04-25 10:22:03       36 阅读
  4. 深度学习pytorch小实验

    2024-04-25 10:22:03       34 阅读
  5. 前端面试真题

    2024-04-25 10:22:03       36 阅读
  6. 41. 【Android教程】Android 手势处理

    2024-04-25 10:22:03       33 阅读
  7. golang调用阿里通义千问的接口

    2024-04-25 10:22:03       30 阅读
  8. 程序员缓解工作压力的小窍门

    2024-04-25 10:22:03       32 阅读
  9. HTML&CSS

    HTML&CSS

    2024-04-25 10:22:03      40 阅读
  10. 【c/c++】cpp对c的增强 delete 和 delete []的区别

    2024-04-25 10:22:03       32 阅读
  11. Edge的使用心得与深度探索

    2024-04-25 10:22:03       37 阅读