当前位置: 首页 > news >正文

QT开发(4)--各种方式实现HelloWorld

目录

1. 编辑框实现

2. 按钮实现


前面已经写过通过标签实现的了,所以这里就不写了,通过这两个例子,其他的也是同理

1. 编辑框实现

 编辑框分为单行编辑框(QLineEdit)双行编辑框(QTextEdit),HelloWorld不是很长的文本,所以我们这里使用单行编辑框。

 像之前一样拖拽过来即可:

在右下角的QLineEdit中可以进行属性编辑

代码实现:

#include "widget.h"
#include "ui_widget.h"
#include <QLineEdit>
Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    QLineEdit* edit = new QLineEdit(this);
    edit->setText("hello world");
}

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

和前边标签实现是差不多的,所以QT的一些代码实现都是有迹可循的,只需要了解几个控件的使用,大部分都是差不多的。 

2. 按钮实现

按钮的好处就是可以点击,点击之后应该就会有效果,那么这里就涉及到了信号槽,信号槽的本质就是给按钮的点击操作关联上一个处理函数,当用户点击的时候,就会执行这个处理函数。 后面会有专门讲这个的博客。

使用示例:

#include "widget.h"
#include "ui_widget.h"

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    connect(ui->pushButton,&QPushButton::clicked,this,&Widget::handleClick);
}

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

void Widget::handleClick()
{
    // 当按钮被点击之后,酒吧按钮当中的文本进行切换
    if(ui->pushButton->text()==QString("Hello World"))
    {
       ui->pushButton->setText("hello QT");
    }
    else
    {
        ui->pushButton->setText("Hello World");
    }
}

 在ui_widget.h文件中自动生成的代码就会包含一个pushButton的成员变量,这个变量的名字,就是根据objectName的值来确定的。

pushButton是ObjectName,如果属性栏那里改掉了,那么代码也要对应改变,不然ui找不到的

就是下面这张图的原理:

 代码实现:

 信号槽示例:

 对于纯代码版本,按钮对象需要自己new出来,为了保证其他函数中能够访问到这个变量,就需要把按钮对象设定为Widget类的成员变量,

而图形设置的按钮不需要自己new,对象的操作已经是被QT自动生成了,而且这个按钮对象,已经作为ui对象里的一个成员变量了,也无需作为Widget的成员。

http://www.dtcms.com/a/81765.html

相关文章:

  • centos 7 搭建FTP user-list用户列表
  • LeetCode算法题(Go语言实现)_07
  • ensp 公司组网拓扑图
  • 如何给商品一键换色?图生生AI,告别繁琐修图
  • html5炫酷3D立体文字效果实现详解
  • 基于PySide6的CATIA自动化工具开发实战——空几何体批量清理系统
  • GITLAB部署安装教程
  • Kubernetes Init 容器:实现 Nginx 和 PHP 对 MySQL 的依赖检查
  • 9-类、结构体、指针、引用
  • 挖矿病毒应急响应处置手册
  • 嵌入式Linux——Framebuffer应用编程
  • Milvus学习整理
  • 我在windows上创建一个空文件,这个文件在哪里存着?这个文件要不要占据磁盘空间大小?
  • JVM常见面试总结
  • PostgreSQL_数据下载并保存(psycopg2)
  • w265基于Spring Boot库存管理系统
  • Saga 模式实战 Demo
  • 人工智能:企业RAG方案
  • Java面试黄金宝典8
  • 算法1--两束求和
  • 【电源专题】锂电池保护IC/锂电池电压监测IC/锂电池电量计IC/锂电池充电控制IC常见封装一览表
  • MySQL连接较慢原因分析及解决措施
  • 基于Arm GNU Toolchain编译生成的.elf转hex/bin文件格式方法
  • 卷积神经网络 - 梯度和反向传播算法
  • 六十天前端强化训练之第二十五天之组件生命周期大师级详解(Vue3 Composition API 版)
  • 2020年全国职业院校技能大赛改革试点赛高职组“云计算”竞赛赛卷第二场次题目:容器云平台部署与运维
  • spring.datasource.filters = stat,wall配置解释
  • 深入解析 Java Stream API:从 List 到 Map 的优雅转换!!!
  • 计算机基础:编码03,根据十进制数,求其原码
  • 工业数据驱动智能维护的深度调研报告