【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。

相关推荐
躺着听Jay2 分钟前
QT设置MySQL驱动
数据库·qt
chaodaibing12 分钟前
Python解析Excel入库如何做到行的拆分
开发语言·python·excel
dudly38 分钟前
Python类的力量:第五篇:魔法方法与协议——让类拥有Python的“超能力”
开发语言·python
ghost1431 小时前
C#学习第22天:网络编程
开发语言·学习·c#
zhengddzz1 小时前
从卡顿到丝滑:JavaScript性能优化实战秘籍
开发语言·javascript·性能优化
范纹杉想快点毕业1 小时前
以项目的方式学QT开发(三)——超详细讲解(120000多字详细讲解,涵盖qt大量知识)逐步更新!
c语言·开发语言·c++·qt·mysql·算法·命令模式
明月看潮生1 小时前
青少年编程与数学 02-019 Rust 编程基础 13课题、智能指针
开发语言·青少年编程·rust·编程与数学
攻城狮7号1 小时前
Python爬虫第21节- 基础图形验证码识别实战
开发语言·爬虫·python·图形验证码识别
敲代码的瓦龙1 小时前
STL?list!!!
c语言·开发语言·数据结构·c++·windows·list