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

【Qt】 编辑框 | 按钮 的 初步了解

文章目录

  • 1. 编辑框
    • 图形化方式
    • 纯代码方式
  • 2. 按钮
    • 图形化方式

1. 编辑框

这里以实现 hello world 为例
即 使用 编辑框 完成 Hello World

图形化方式


单行编辑框 QLineEdit
多行编辑框 QTextEdit


点击 widget.ui 并打开 调用 Qt designer 这个图形化工具 完成窗口界面的编辑


Input Widgets找到 Line Edit


Line Edit 拖拽 到 右侧的框中


在空白处 输入 hello world


也可以通过右侧的属性 编辑区进行修改
text 表示 编辑框中的文本


若在text 对应的编辑框中进行修改 则 对应的白色框中内容也会被修改


同时 点击运行后 生成的文本框 也是可以编辑的


纯代码方式

在 widget.cpp文件中 先将头文件 #include 加上
再new 一个对象 edit


this指向的父对象 是 widget 对象 (与前面QLabel用法类似)


运行程序后 发现当前文本框 同样是可以编辑的

2. 按钮

这里以实现 hello world 为例
即 使用 按钮 完成 Hello World


图形化方式

Buttons 中 存在 一个 Push Button
Push Button 表示 普通按钮


Push Button 拖拽到 右侧框中 并输入 hello world


运行后 生成文本框 发现框中的 hello world 按钮 可以点击
但是发现点击按钮 并没有反应
就要引入 Qt中的 信号槽 机制 (简单演示使用方式 后续会详细介绍)
本质为 给按钮的点击操作 关联上一个处理函数 即当用户点击的时候 会执行这个处理函数


Qt designer 中 创建 一个 控件( push Button) 时 就会给 该控件分配一个objectName 的属性
本这个属性的值 要求在界面上是唯一的 (不能和别人重复)

qmake 在预处理 .ui文件时 就会根据 这里的 objectName 生成对应的 C++代码
C++代码中该 PushButton 对象的变量名字 就是这里的 objectName


给按钮添加 点击处理操作
connect QObject 这个类 提供的静态函数
connect 函数 的作用为 连接信号
第一个参数 表示 信号是谁发的 ui->pushButton 就可以访问到 form file (ui 文件) 中创建的控件pushButton
第二个参数 为 函数指针 &QPushButton::clicked 表示 点击按钮时 会触发这样的信号
第三个参数 那个对象的槽函数 this 指向父对象 即 widget对象的槽函数


connect 函数的 第四个参数 函数指针 指定具体处理的函数 &Widget::hanleClick (自己写的)
若当前按钮为 hello world 则切换为 hello qt
若当前按钮为 hello qt 则切换为 hello world


当点击 ui->pushButton 时 会自动触发 &QPushButton::clicked 信号 由 widget对象处理信号
具体按照 &Widget::hanleClick(自己写的) 处理信号


当运行程序时 按钮为 hello world 当点击按钮后 就会变成 hello qt


相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • potplayer播放m2ts格式,截图
  • [python][代码]定义了一个用于AES加密和解密的工具类
  • 快速批量替换图片名称为指定名称(附代码)
  • 我是如何克服编程学习中的挫折感的
  • uniapp在线下载安装包更新app
  • 有哪些适合中小企业的六西格玛培训课程?
  • 规范化JavaBean
  • poi-tl循环放图片+文字说明
  • dm 到 dm 的 HS 同步部署
  • 入门request请求库使用
  • 5.1、生成树协议stp
  • 【ubuntu24.04】docker pull 配置
  • leetcode_62. 不同路径 + 63. 不同路径 II
  • Python青少年简明教程:数据类型和操作符
  • 微信小程序免费《短视频去水印》
  • @angular/forms 源码解析之双向绑定
  • 《用数据讲故事》作者Cole N. Knaflic:消除一切无效的图表
  • javascript数组去重/查找/插入/删除
  • markdown编辑器简评
  • mysql 数据库四种事务隔离级别
  • WePY 在小程序性能调优上做出的探究
  • 构造函数(constructor)与原型链(prototype)关系
  • 可能是历史上最全的CC0版权可以免费商用的图片网站
  • 扑朔迷离的属性和特性【彻底弄清】
  • 如何正确配置 Ubuntu 14.04 服务器?
  • 用quicker-worker.js轻松跑一个大数据遍历
  • #HarmonyOS:软件安装window和mac预览Hello World
  • #NOIP 2014# day.1 T2 联合权值
  • #Z2294. 打印树的直径
  • (Redis使用系列) Springboot 整合Redisson 实现分布式锁 七
  • (二)延时任务篇——通过redis的key监听,实现延迟任务实战
  • (二十五)admin-boot项目之集成消息队列Rabbitmq
  • (分布式缓存)Redis分片集群
  • (附源码)python旅游推荐系统 毕业设计 250623
  • (论文阅读40-45)图像描述1
  • (十五)devops持续集成开发——jenkins流水线构建策略配置及触发器的使用
  • (四十一)大数据实战——spark的yarn模式生产环境部署
  • (一)C语言之入门:使用Visual Studio Community 2022运行hello world
  • ***php进行支付宝开发中return_url和notify_url的区别分析
  • .Net 4.0并行库实用性演练
  • .net core 6 使用注解自动注入实例,无需构造注入 autowrite4net
  • .NET 反射 Reflect
  • .Net(C#)常用转换byte转uint32、byte转float等
  • .net实现客户区延伸至至非客户区
  • @我的前任是个极品 微博分析
  • [2018/11/18] Java数据结构(2) 简单排序 冒泡排序 选择排序 插入排序
  • [4.9福建四校联考]
  • [AHOI2009]中国象棋 DP,递推,组合数
  • [Android] Binder 里的 Service 和 Interface 分别是什么
  • [C][数据结构][树]详细讲解
  • [C++]多态
  • [CareerCup] 14.5 Object Reflection 对象反射
  • [CISCN2021 Quals]upload(PNG-IDAT块嵌入马)
  • [CSS]盒子模型
  • [Docker]六.Docker自动部署nodejs以及golang项目