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

相关推荐
聚名网9 分钟前
域名net,com,cn有区别吗?有哪些不同呢?
服务器·开发语言·php
牛油果子哥q12 分钟前
STL set与map底层精讲,红黑树适配原理、有序去重特性、迭代器遍历、API实战与面试核心考点全解
开发语言·数据结构·c++·面试
foundbug99914 分钟前
直流电机 PID 速度控制 MATLAB 仿真程序
开发语言·matlab
古德new38 分钟前
鸿蒙PC迁移:Photoflare Qt 图片编辑器鸿蒙PC适配全记录
qt·编辑器·harmonyos
Tian_Hang1 小时前
C++原型模式(Protype)
开发语言·c++·算法
天天讯通1 小时前
OKCC 呼叫中心安全性能全解析:技术防护与管理措施指南
大数据·开发语言·网络·人工智能·安全·语音识别
xufengzhu2 小时前
第三方 Python 库 redis-py + hiredis 的使用
开发语言·redis·python
jingling5552 小时前
go | 环境安装和快速入门
开发语言·后端·golang
yuan199972 小时前
欧拉梁静力与屈曲计算的 MATLAB 实现(有限差分法 + 解析解)
开发语言·算法·matlab
llxxyy卢2 小时前
polar夏季赛部分题目
开发语言·python