Qt/C++开发经验小技巧11

发布时间:2024-12-22 16:33

参与小型游戏开发团队,提升项目协作经验 #生活乐趣# #游戏乐趣# #游戏开发#

获取类的属性

const QMetaObject *metaobject = object->metaObject(); int count = metaobject->propertyCount(); for (int i = 0; i < count; ++i) { QMetaProperty metaproperty = metaobject->property(i); const char *name = metaproperty.name(); QVariant value = object->property(name); qDebug() << name << value; } 12345678

Qt内置图标封装在QStyle中,大概七十多个图标,可以直接拿来用。
QStyle::SP_TitleBarMenuButton

根据操作系统位数判断加载

win32 { contains(DEFINES, WIN64) { DESTDIR = $${PWD}/../../bin64 } else { DESTDIR = $${PWD}/../../bin32 } } 1234

Qt5增强了很多安全性验证,如果出现setGeometry: Unable to set geometry,请将该控件的可见移到加入布局之后。

可以将控件A添加到布局,然后控件B设置该布局,这种灵活性大大提高了控件的组合度,比如可以在文本框左侧右侧增加一个搜索按钮,按钮设置图标即可。

QPushButton *btn = new QPushButton; btn->resize(30, ui->lineEdit->height()); QHBoxLayout *layout = new QHBoxLayout(ui->lineEdit); layout->setMargin(0); layout->addStretch(); layout->addWidget(btn); 123456

对QLCDNumber控件设置样式,需要将QLCDNumber的segmentstyle设置为flat。

巧妙的使用findChildren可以查找该控件下的所有子控件。findChild为查找单个。

//查找指定类名objectName的控件 QList<QWidget *> widgets = parentWidget.findChildren<QWidget *>("widgetname"); //查找所有QPushButton QList<QPushButton *> allPButtons = parentWidget.findChildren<QPushButton *>(); //查找一级子控件,不然会一直遍历所有子控件 QList<QPushButton *> childButtons = parentWidget.findChildren<QPushButton *>(QString(), Qt::FindDirectChildrenOnly); 123456 巧妙的使用inherits判断是否属于某种类。

QTimer *timer = new QTimer; // QTimer inherits QObject timer->inherits("QTimer"); // returns true timer->inherits("QObject"); // returns true timer->inherits("QAbstractButton"); // returns false 1234

使用弱属性机制,可以存储临时的值用于传递判断。可以通过widget->dynamicPropertyNames()列出所有弱属性名称,然后通过widget->property(“name”)取出对应的弱属性的值。

在开发时, 无论是出于维护的便捷性, 还是节省内存资源的考虑, 都应该有一个 qss 文件来存放所有的样式表, 而不应该将 setStyleSheet 写的到处都是。如果是初学阶段或者测试阶段可以直接UI上右键设置样式表,正式项目还是建议统一到一个qss样式表文件比较好,统一管理。

公众号:Qt实战,各种开源作品、经验整理、项目实战技巧,专注Qt/C++软件开发,视频监控、物联网、工业控制、嵌入式软件、国产化系统应用软件开发。

公众号:Qt入门和进阶,专门介绍Qt/C++相关知识点学习,帮助Qt开发者更好的深入学习Qt。多位Qt元婴期大神,一步步带你从入门到进阶,走上财务自由之路。

官方店:https://shop114595942.taobao.com//

Qt开发经验开源主页(持续更新):

https://gitee.com/feiyangqingyun/qtkaifajingyanhttps://github.com/feiyangqingyun/qtkaifajingyan

网址:Qt/C++开发经验小技巧11 https://www.yuejiaxmz.com/news/view/540156

相关内容

qt个人日程安排处理事务
mini2440+阿里云+Qt/android 打造智能音箱
Qt应用开发(基础篇)——拆分器窗口 QSplitter QSplitterHandle
qt deleterLater
QT 操作记录,待实践
基于QT的智能家居实现:打造您的智能生活
QT拆分器的使用及随窗口改变大小
11种生鲜选购技巧【专家经验分享】
Qt智能家居系统:打造智能化、高效、舒适的居家生活
Qt下使用HID通信

随便看看