【Qt】编辑框/按钮控件---实现HelloWorld

1.编辑框QLineEdit

编辑框:单行编辑框QLineEdit 多行编辑框QTextEdit

1.图形化方式使用QLineEdit

  • 拖拽控件

可以看到text属性设置为Hello World

  • 运行

可以在文本框输入数据。

2.代码方式

2.按钮PushButton

2.1 图形化方式

信号槽机制

本质为给点击操作,关联一个处理函数。

当点击事件触发时,自动调用该按钮关联的点击事件处理函数。

1.控件唯一性:objectName属性

创建控件时,会给每个控件添加一个objectName属性,标志每个控件的唯一性。

2.控件信号与方法关联建立:connect()

使用信号槽,建立控件上信号与处理方法的关联关系。

HandelClick

重点:

获取控件文本(QString类型): ui->pushButton->text();

设置控件显示文本:ui->pushButton->setText("Hello world");

cpp 复制代码
void Widget::HandelClick()
{
    if(ui->pushButton->text()==QString("Hello world"))
    {
        ui->pushButton->setText("你好!!");
    }
    else
    {
      ui->pushButton->setText("Hello world");
    }

}

验证:objectName属性是控件变量名

来到build目录,找到ui_wideget文件,是根据ui文件生成的代码。

根据ui文件,生成Ui_Widget类,有两个QPushButton,objectName属性就是控件对象的变量名。

Widget类成员:Ui::widget*,类型的生成

再生成一个类,Widget,继承Ui_Widget。放在Ui的命名空间中。

widget.h中,Widget类有个Ui::Widget对象指针的成员。

构造初始化列表,new对象来初始化成员Ui::Widget* ui。

所以我们可以通过ui->变量名 的方式获取控件指针。

2.2代码方式

1.widget.h添加成员 -》QPushButton *mybutton;

2.widget.cpp 构造函数new pushbutton,初始化成员mybutton。

connect设置点击回调

cpp 复制代码
#include "widget.h"
#include "ui_widget.h"
#include<QPushButton>

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    mybutton=new QPushButton(this);
    mybutton->setText("helloworld");
    connect(mybutton,&QPushButton::clicked,this,&Widget::HandelClick);
}

Widget::~Widget()
{
    delete ui;
}

void Widget::HandelClick()
{
    if(mybutton->text()==QString("helloworld"))
    {
        mybutton->setText("hello");
    }
    else
    {
        mybutton->setText("helloworld");
    }
}

3.对比两种方式

创建button组件对象的类不一样。

图形化方式,由Ui::widget内部定义button成员对象。widget借助,newUi::Widget对象时,自动创建button对象。

代码方式,在构造函数中,需要用户直接new button,并添加button对象指针成员来管理button。

相关推荐
库玛西31 分钟前
现代 C++ 智能指针全景指南:从 RAII 思想到工业级实践
c语言·开发语言·c++·笔记·面试
liulilittle1 小时前
无锁并发容器的设计与实现原理
开发语言·c++·set·map·并发·无锁·lock-free
朋克洛德的码农1 小时前
Go并发-sync包四剑客:Mutex、RWMutex、WaitGroup、Once-从入门到原理
开发语言·后端·golang
淼澄研学2 小时前
Kimi API黑产倒卖技术解析与Python合规接入指南
开发语言·网络·python
冻柠檬飞冰走茶2 小时前
PTA基础编程题目集 7-35有理数均值(C++语言实现)
开发语言·数据结构·c++·算法·均值算法
wangchen_03 小时前
C++正则表达式
开发语言·c++·正则表达式
何以解忧,唯有..3 小时前
Python 元组(tuple)详解:使用、遍历与排序
开发语言·python
KANGBboy3 小时前
Python eval安全隐患
开发语言·python
IT爱学堂3 小时前
java版数据结构和算法+AI算法和技能学习指南
java·开发语言
淼澄研学4 小时前
Python结合大模型挖掘搜题长尾关键词实操指南
开发语言·python