QT学习(二)——按钮相关接口,对象树概念

4 篇文章 3 订阅
订阅专栏

2.1 按钮相关接口

QPushButton 继承于 QAbstractButton 继承于 QWidget 继承于 QObject

(1)创建按钮:QPushButton

记得要添加头文件:#include <QPushButton> // 包含按钮头文件
在这里插入图片描述

(2)设置按钮大小:resize( )

如果没有设置大小,会采用默认值:
在这里插入图片描述

(3)显示按钮:show( )

只有调用了该函数,才会显示按钮:
在这里插入图片描述

(4)设置父亲:setParent( )

如果没有设置父亲,则按钮的图标和软件图标是分离的,如下所示:
在这里插入图片描述
设置 this 为父亲,表示按钮是附着在该软件界面之上的
(注意:show()函数一定是在设置父亲之后调用的):
在这里插入图片描述
结果为:
在这里插入图片描述

(5)设置文本:setText( )

给按钮设置一个文本
(注意:show( )函数也是要在setText( )之后,此后show()函数都是在按钮设置完成再调用的,之后就不赘述了):
在这里插入图片描述
在这里插入图片描述

(6)更改按钮字体:setFont( )

在更改按钮字体之前要先创建好好字体对象:
在这里插入图片描述
在这里插入图片描述

(7)设置样式表属性:setStyleSheet( )

QT也支持CSS格式(我也不太懂这个),具体如下示例:
在这里插入图片描述
常规状态下:按钮呈现红色;
鼠标悬浮在按钮上:按钮呈现绿色;
鼠标按下按钮:按钮变成黄色。
在这里插入图片描述

(8)改变按钮位置:move( )

以窗口左上角为坐标原点,x = 80, y = 120
在这里插入图片描述

在这里插入图片描述

(9)QPushButton的有参构造函数

也可以在创建按钮时,就同时设置好名字和父亲:
在这里插入图片描述
在这里插入图片描述

2.2 QT对象树

QT中的类的继承关系,有一定程度上简化了对象释放操作。由QT的QObject类派生出来的类无需手动释放内存 。程序结束时 QT会自动检测对象树对象 释放对象前先释放子对象,从而一层一层的最终释放最上层父对象。
在这里插入图片描述
问题:为什么Qt使用new来创建一个控件,但是却没有使用delete来进行释放?

当设置了setParent( )后,只要父亲被释放,其所有子类也会被自动释放。

例如:这里自己创立了一个Student类,该类继承了Widget,可以使用setParent( )函数,设置了本窗口为父亲。当关闭本窗口时,该学生会被自动释放

Student.h
在这里插入图片描述

Student.cpp
在这里插入图片描述
Widget.cpp
在这里插入图片描述
运行结果,当关闭软件窗口时,出现了:
在这里插入图片描述
我这里并没有单独的去 delete stu;

完整示例代码:
Widget.cpp

#include "Widget.h"
#include <QPushButton> // 包含按钮头文件
#include "Student.h"

// 构造函数实现
Widget::Widget(QWidget *parent)
    : QWidget(parent) // 初始化列表
{
    // 设置窗口标题
    this->setWindowTitle("hello QT");

    // 设置窗口大小:宽400,高800
    this->resize(400, 800);

    // 固定窗口大小:宽150,200 (此时不能拖拽了放大缩小窗口了)
    this->setFixedSize(400, 200);

    //-------------------------------- 按钮 ------------------------//

    // 创建按钮
    QPushButton* btn = new QPushButton;
//    btn->resize(20, 10); // 设置按钮大小
    btn->setParent(this); // 设置父亲
    btn->setText("开始游戏"); // 设置文本
    QFont font("华文行楷", 20, 10, 1); // 创建字体对象(字体, 大小,加粗,倾斜(1或0))
    btn->setFont(font); // 设置字体
    btn->show(); // 显示
    btn->move(80, 120); // 改变按钮位置 x = 80, y = 120

    QPushButton* newBtn = new QPushButton("系统按钮", this);
    newBtn->move(200, 0);
    newBtn->show();


//    Student* stu = new Student;
//    stu->setParent(this); // 设置父亲为本窗口 当本窗口被释放时,也会释放孩子



    // 了解(支持css)background——背景颜色;hover——鼠标悬浮;pressed——鼠标按下
    btn->setStyleSheet("QPushButton{background-color:red;}\
                        QPushButton:hover{background-color:green;}\
                        QPushButton:pressed{background-color:yellow;}");

}

// 析构函数实现
Widget::~Widget()
{
}
Qt实现弹出窗口点击其他位置窗口消失(附完整源码)
希望我的博客,能帮上你解决学习中工作中所遇到的问题
07-23 412
Qt实现弹出窗口点击其他位置窗口消失(附完整源码)
QT 函数(全)
Fire_For_Code
09-15 8845
/*****************Qt显示中文(主要在main函数实现)***************************/  #include    // 编码头文件  QTextCodec::setCodecForCStrings(QTextCodec::codecForName("gb18030")); // 窗口里面可以接收或写中文文字  // 这个和上面那个是等级的 QTex
支持Qt接口
E.W的博客
11-30 1949
    通常,PyQt5不支持定义从多个Qt类继承的类。例外情况是从Qt定义为接口的类继承时,例如QTextObjectInterface。 Qt接口是一个抽象类,只包含纯虚方法,并且用作(通常)一个QObject子类的mixin 。它通常用于定义插件必须实现的接口。 请注意,Q_INTERFACES为了使用接口类,PyQt5不需要等效的Qt 宏。 textobject.pyPyQt5中包...
QT笔记- 应用程序插件(API接口编写和插件设计)
qq_43058397的博客
02-28 5028
本文是关于实现应用程序插件功能的一个示例,包含两个项目,一个是应用程序项目,一个是插件设计项目。
QT通过接口实现通信
GuoGuoABC
11-05 823
实现功能,在第一个窗体A上新建个Label,及一个按钮,点击窗体上上的按钮,打开B窗口,再在B窗口新建一个LineEdit编辑框,当B窗口编辑框中办理入文字的时候,改变窗体A上Label的文字,第一个Labele通过信号与槽实现,第个通过接口实现。代码如下:定义接口类
Qt——GradeManage
03-11
Qt——GradeManage】是一个基于Qt开发的项目,主要目标是实现一个成绩管理系统。Qt是一个跨平台的应用程序开发框架,广泛应用于桌面、移动以及嵌入式设备。它使用C++编程语言,提供丰富的图形用户界面(GUI)工具...
QT.rar_QT学习资料
09-19
1. **QT基本概念**:首先,QT的核心是其对象模型,所有的类都是继承自QObject,理解这个基础非常重要。此外,QObjects之间可以通过信号和槽进行通信,这是QT事件驱动编程的关键。 2. **QT环境搭建**:学习QT前,...
基于QT的数据结构课设——图书管理系统.zip
09-01
综上所述,基于QT的数据结构课设——图书管理系统是一个综合性的学习项目,涵盖了C++编程、QT框架应用、数据结构的实战运用以及数据库管理等多个重要知识点。通过参与此类项目,学生可以提升自己的编程技能,增强...
基于 Qt 的机械臂操作系统 —— 串口通信测试系统.zip
最新发布
09-23
【标题】"基于 Qt 的机械臂操作系统 —— 串口通信测试系统" 是一个计算机类毕业设计项目,它利用 Qt 框架构建了一个用于控制机械臂的用户界面,并集成了串口通信功能来实现与硬件设备的交互。Qt 是一个跨平台的应用...
串口通讯———QT4
09-28
6. **界面设计**:QT4的QtDesigner工具可以用来设计GUI界面,如添加按钮、文本框等控件,用于用户交互,显示串口状态和收发的数据。 在提供的"mycom"文件中,可能包含了实现上述功能的源代码示例。初学者可以通过...
Qt 插件接口
04-12
插件是一种遵循一定规范的应用程序接口编写出来的程序。该代码为Qt 插件接口代码。
qt导出activex接口
12-15
通过qt导出activex的接口文档。文档中显示activex的qt调用方式。
常见的Qt类及其所使用的设计模式
xcksj888的博客
08-21 642
观察者模式(Observer Pattern):定义了对象之间的一对多依赖,当一个对象状态发生变化时,其所有依赖的对象都会收到通知并自动更新。- 抽象工厂模式(Abstract Factory Pattern):提供一个接口,用于创建一系列相关或依赖对象的家族,而不需要指定具体的类。- 建造者模式(Builder Pattern):将对象的构建过程与其表示分离,以便相同的构建过程可以创建不同的表示。- 代理模式(Proxy Pattern):为另一个对象提供一个替代品或占位符,以控制对该对象的访问。
设计Qt风格的C++API
weixin_34199335的博客
11-07 196
原文地址:http://doc.qt.digia.com/qq/qq13-apis.html 在奇趣(Trolltech),为了改进Qt的开发体验,我们做了大量的研究。这篇文章里,我打算分享一些我们的发现,以及一些我们在设计Qt4时用到的原则,并且展示如何把这些原则应用到你的代码里。 优秀API的六个特性 便利陷阱 布尔参数陷阱 静态多态 命名的艺术 指针还是引用? 案例分析:QP...
QT中基本控件的接口
weixin_44317873的博客
09-30 414
1,新建按钮 QPushButton *btn = new QPushButton; 2,设置父窗口 btn->setParent(this); 3,显示文本 btn->setText("aaa"); 4,移动 btn->move(); 5,窗口大小 resize(宽高); 6,设置固定大小 setFixedsize(宽高); 7,当你设置好了父类为this的时候就不用担心回收了 ...
QT动态连接库的编写
TxyITxs的博客
08-05 779
1.QT动态链接库的编写流程 1.1 首先在Qt Creator中创建一个动态连接库Matrix,添加类名,生成一个类(matrix.h和matrix.cpp)和一个matrix_global.h的文件,在matrix_global.h中可看到使用的导出宏,为MATRIXSHARED_EXPORT。如果只想导出一个函数接口,可以把类的声明和定义删除,然后进行导出函数的编写即可。 1.2 使用导出宏的地方,需要包含matrix_global.h头文件,就可以导出自己需要的函数,类等; 1.3 需要指定生的.d
Qt】数据库用户接口
C/C++软件工程师、嵌入式软件工程师、物联网研发工程师、C/C++讲师、物联网讲师、嵌入式讲师---欢迎大家一起交流(私信添加博主微信)
03-25 1148
00. 目录 文章目录00. 目录01. 概述02. 开发环境03. QSqlQueryModel类04. QSqlTableModel类05. QSqlRelationalTableModel类06. QSqlRelationalDelegate类07. 附录 01. 概述 用户接口层主要包括Qt SQL模块中的QSqlQueryModel、QSqlTableModel、QSqlRelationalTableModel。用户接口层的类实现了将数据库中的数据链接到窗口部件上,是使用模型/视图框架实现的,是更
QT---按钮相关接口对象
qq_44423388的博客
04-11 455
QT按钮相关接口对象 按钮位于QPushButton类中,而QPushButton 继承于 QAbstractButton 继承于QWidget 继承于QObject 构造函数 auto b = new QPushButton;无参构造 auto b1 = new QPushButton(文本,父亲);带参构造 (按钮的构造函数还有3种,就不在这里一一列举,有需要的话,大家可以在帮助手册里面看) 接口 resize 重置大小 setFixedSize 设置固定大小 move 设置位置 setPare
[QT_027]Qt学习按钮类控件(QPushButton、QToolButton、QRadioButton、QCheckBox、QCommandLinkButton)
kongcheng253的博客
01-24 5697
Qt学习按钮类控件(QPushButton、QToolButton、QRadioButton、QCheckBox、QCommandLinkButton)
Qt对象模型与信号槽概念解析
本教程主要探讨了Qt框架中的核心概念——对象模型和信号槽机制,这是理解Qt编程的关键。首先,讲解了QObject类,它是Qt库中大多数类的基类,包括所有的部件(widgets)。QObject类不仅负责事件处理,还提供了信号和...

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • C++回顾(一)——从C到C++ 6079
  • 用g++编译cpp文件 5792
  • Matlab入门-01命令行操作 5649
  • Libevent学习 3231
  • ROS学习(三)了解ROS节点 3078

分类专栏

  • 机器人学 6篇
  • 操作系统 5篇
  • 刷题 8篇
  • 笔试面试
  • libevent 1篇
  • Linux 6篇
  • 项目
  • QT学习 4篇
  • MySQL 1篇
  • opencv学习 3篇
  • MATLAB 10篇
  • C++学习 40篇
  • ROS 9篇
  • 笔记
  • slam学习 1篇

最新评论

  • 机器人工具箱学习(一)

    木头人的学习生活之旅: 【机器人工具箱-01-坐标变换-哔哩哔哩】 https://b23.tv/KPYaEPb

  • 王道《操作系统》学习(二)—— 进程管理(二)

    木头人的学习生活之旅: 其实我也没有学懂😂

  • 王道《操作系统》学习(二)—— 进程管理(二)

    QT和C++爱好者: 太深奥,看不懂

  • Libevent学习

    天才小熊猫_: 博主写得很好,很详细,是不是可以加一下bufferevent_enable()函数的介绍说明

  • 机器人与matlab—Robotics Toolbox—01空间位姿描述

    --馨香之气--: R4 = 1.0000 -0.0070 0.0035 0.0070 1.0000 0.0000 -0.0035 0.0000 1.0000 请问我的R4为啥是这个结果

大家在看

  • 6个隐藏极深的Windows实用小技巧,让你的电脑更好用 156
  • 入门C语言Day16——switch 语句 292
  • 数据清洗系统设计
  • 【Linux多线程】死锁、同步、条件变量
  • [C++]友元

最新文章

  • 机器人工具箱学习(三)
  • 机器人工具箱学习(二)
  • 机器人工具箱学习(一)
2024年3篇
2023年51篇
2022年7篇
2021年30篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

PHP网站源码龙华外贸网站设计深圳阿里店铺运营南联网站改版布吉SEO按天计费石岩设计公司网站惠州百度标王民治百搜词包西乡百度网站优化排名南联网站推广系统福田网站设计福田网站优化软件福永建站荷坳网站改版坑梓外贸网站制作松岗如何制作网站松岗百度网站优化排名塘坑企业网站设计西乡标王吉祥网站优化观澜设计网站福永网站优化排名光明营销网站福永SEO按天计费深圳百姓网标王龙岗模板网站建设同乐网站开发光明关键词按天扣费坑梓高端网站设计龙华优化惠州建站歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

PHP网站源码 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化