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

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.kler.cn/a/597109.html

相关文章:

  • 《Git:基本命令使用》
  • FPGA 以太网通信(四)网络视频传输系统
  • 蓝桥备赛(24)算法篇【前缀和】
  • 《虚拟战场的对决》
  • VLAN:逻辑隔离冲突网络的详细讲解
  • 行业分析---小鹏汽车2024全年财报
  • (C语言)typedef 讲解
  • (UI自动化测试)第二篇:元素定位的方法_class定位
  • Spring6:10 数据校验-Validation
  • 从投机到可持续发展:ETHDenver 2025 的关键启示!
  • JVM垃圾回收笔记02-垃圾回收器
  • Linux 通过压缩包安装 MySQL 并设置远程连接教程
  • Java替换jar包中class文件
  • 当AI重构编程范式:Java 24的进化逻辑与技术深水区的战略突围
  • 【IROS 2025】CMU提出路径规划器PIPE:机器人探索效率提升14.6%,地图准确率提高9.3%!
  • dfs(二十五)22. 括号生成
  • 【Golang】defer与recover的组合使用
  • 防火墙带宽管理
  • 《Python实战进阶》No29: 自动化部署工具:Ansible 与 Fabric
  • 宝塔平替!轻量级开源 Linux 管理面板 mdserver-web