当前位置: 首页 > 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的成员。

相关文章:

  • 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--两束求和
  • “仓促、有限”,美英公布贸易协议框架,两国分别获得了什么?
  • 普雷沃斯特当选新一任天主教罗马教皇
  • 迪拜金融市场CEO:2024年市场表现出色,超八成新投资者来自海外
  • 体坛联播|双杀阿森纳,巴黎晋级欧冠决赛对阵国际米兰
  • 纪念|“补白大王”郑逸梅,从藏扇看其眼光品味
  • 五一多城楼市火热:北京新房网签量同比翻倍,上海热门楼盘认购接连触发积分