《QDebug 2024年3月》

2024-03-31 14:52
文章标签 2024 qdebug

本文主要是介绍《QDebug 2024年3月》,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、Qt Widgets 问题交流

1.

二、Qt Quick 问题交流

1.Qt5 ApplicationWindow 不能使用父组件 Window 的 transientParent 属性

ApplicationWindow 使用 transientParent 报错:

"ApplicationWindow.transientParent" is not available due to component versioning.

这个属性是 C++ 类 QWindow 定义的,而且比较特殊,用的 Q_PRIVATE_PROPERTY,版本也较高是 13

Q_PRIVATE_PROPERTY(QWindow::d_func(), QWindow* transientParent MEMBER transientParent WRITE setTransientParent NOTIFY transientParentChanged REVISION 13)

Qt Controls 引入的版本较低(尖括号里的版本号):

qmlRegisterRevision<QQuickWindow, 2>(uri, 2, 0);
qmlRegisterRevision<QWindow, 3>(uri, 2, 0);
qmlRegisterRevision<QQuickWindowQmlImpl, 3>(uri, 2, 2);

本来想在 main 函数重新注册成高版本,不过会报错,那还是改源码重新编译吧:

qmlRegisterRevision<QWindow, 15>("QtQuick.Controls", 2, 0);

plugin cannot be loaded for module "QtQuick.Controls": Namespace 'QtQuick.Controls' has already been used for type registration 

2.QML 中动态创建的对象没变量引用可能会被 gc 释放

比如 Qt.createComponent() +  createObject() 创建的对象;或者 C++ 创建但是 ObjectOwnership 是 JavaScriptOwnership 的对象,都需要注意。

3.ColorAnimation 不能调用 start 开始变色,RotationAnimation 却可以执行

ColorAnimation 的示例只有 ColorAnimation on color {} 和 Transition 两种,从组件名字上看 ColorAnimation 就是对 attach 的对象变色,其实只有 RotationAnimation 有默认属性,ColorAnimation 是没有的:

QQuickColorAnimation::QQuickColorAnimation(QObject *parent)
: QQuickPropertyAnimation(parent)
{Q_D(QQuickPropertyAnimation);d->interpolatorType = QMetaType::QColor;d->defaultToInterpolatorType = true;d->interpolator = QVariantAnimationPrivate::getInterpolator(d->interpolatorType);
}QQuickRotationAnimation::QQuickRotationAnimation(QObject *parent)
: QQuickPropertyAnimation(*(new QQuickRotationAnimationPrivate), parent)
{Q_D(QQuickRotationAnimation);d->interpolatorType = QMetaType::QReal;d->interpolator = QVariantAnimationPrivate::getInterpolator(d->interpolatorType);d->defaultProperties = QLatin1String("rotation,angle");
}

所以你调用 start 他也不知道干啥,需要设置 property 为 color:

    Rectangle {id: rectwidth: 200height: 200color: "red"ColorAnimation {id: anitarget: rectproperty: "color"from: "white"to: "black"duration: 200}MouseArea {anchors.fill: parentonClicked: ani.start()}}
4.图片缩放 

没找到合适的图来体现不同设置的区别,暂略

        // 默认缩放,有像素锯齿,相当于 QImage 的 FastTransformationImage {width: 400height: 250source: "qrc:/img.png"fillMode: Image.PreserveAspectFit}// smooth 和多重采样的效果差不多,比较模糊Image {width: 400height: 250source: "qrc:/img.png"smooth: truefillMode: Image.PreserveAspectFit}// 和 QImage 的 SmoothTransformation 差不多,略有不同Image {width: 400height: 250source: "qrc:/img.png"sourceSize: Qt.size(width, height)fillMode: Image.PreserveAspectFit}

三、其他

1.搜索代码中的中文字符串

程序做翻译的时候需要找出里面的中文字符进行处理,比如 Qt 框架加上 tr 等。

先百度中文的正则范围:[\u4e00-\u9fa5],再在两边加上双引号或者单引号组成最终的正则。

在 VSCode 中需要勾选正则表达式搜索:

".*[\u4e00-\u9fa5]+.*"

Qt Creator 也支持正则搜索:

但是会提示不支持 \U 等:

我们可以替换 Unicode 编码为对应的中文进行搜索:

".*[一-龥]+.*"

如果只搜索不带 tr 的字符串,就搜双引号前不是 r 字母的字符串:

[^r]\(".*[\u4e00-\u9fa5]+.*" 

注意 QML 可以单引号字符串,所以最好统一风格,搜索起来简单点。还有就是编码的时候规范一点,别到处写一堆空格,比如 tr(空格或者换行+"字符串内容"+空格或者换行) 。

2.QMake 中 $$ 拼接宏的时候,如果是没定义的,不会报错

如 pro 中这样写:

DESTDIR = $$PWD/bin/$$ABCD

其中 ABCD 未定义,但是不会报错,而是在 bin 目录下生成了 exe

这篇关于《QDebug 2024年3月》的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/864595

相关文章

Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)

《Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)》:本文主要介绍Python基于火山引擎豆包大模型搭建QQ机器人详细的相关资料,包括开通模型、配置APIKEY鉴权和SD... 目录豆包大模型概述开通模型付费安装 SDK 环境配置 API KEY 鉴权Ark 模型接口Prompt

2024年流动式起重机司机证模拟考试题库及流动式起重机司机理论考试试题

题库来源:安全生产模拟考试一点通公众号小程序 2024年流动式起重机司机证模拟考试题库及流动式起重机司机理论考试试题是由安全生产模拟考试一点通提供,流动式起重机司机证模拟考试题库是根据流动式起重机司机最新版教材,流动式起重机司机大纲整理而成(含2024年流动式起重机司机证模拟考试题库及流动式起重机司机理论考试试题参考答案和部分工种参考解析),掌握本资料和学校方法,考试容易。流动式起重机司机考试技

【专题】2024飞行汽车技术全景报告合集PDF分享(附原数据表)

原文链接: https://tecdat.cn/?p=37628 6月16日,小鹏汇天旅航者X2在北京大兴国际机场临空经济区完成首飞,这也是小鹏汇天的产品在京津冀地区进行的首次飞行。小鹏汇天方面还表示,公司准备量产,并计划今年四季度开启预售小鹏汇天分体式飞行汽车,探索分体式飞行汽车城际通勤。阅读原文,获取专题报告合集全文,解锁文末271份飞行汽车相关行业研究报告。 据悉,业内人士对飞行汽车行业

高效录音转文字:2024年四大工具精选!

在快节奏的工作生活中,能够快速将录音转换成文字是一项非常实用的能力。特别是在需要记录会议纪要、讲座内容或者是采访素材的时候,一款优秀的在线录音转文字工具能派上大用场。以下推荐几个好用的录音转文字工具! 365在线转文字 直达链接:https://www.pdf365.cn/ 365在线转文字是一款提供在线录音转文字服务的工具,它以其高效、便捷的特点受到用户的青睐。用户无需下载安装任何软件,只

2024网安周今日开幕,亚信安全亮相30城

2024年国家网络安全宣传周今天在广州拉开帷幕。今年网安周继续以“网络安全为人民,网络安全靠人民”为主题。2024年国家网络安全宣传周涵盖了1场开幕式、1场高峰论坛、5个重要活动、15场分论坛/座谈会/闭门会、6个主题日活动和网络安全“六进”活动。亚信安全出席2024年国家网络安全宣传周开幕式和主论坛,并将通过线下宣讲、创意科普、成果展示等多种形式,让广大民众看得懂、记得住安全知识,同时还

2024/9/8 c++ smart

1.通过自己编写的class来实现unique_ptr指针的功能 #include <iostream> using namespace std; template<class T> class unique_ptr { public:         //无参构造函数         unique_ptr();         //有参构造函数         unique_ptr(

论文翻译:arxiv-2024 Benchmark Data Contamination of Large Language Models: A Survey

Benchmark Data Contamination of Large Language Models: A Survey https://arxiv.org/abs/2406.04244 大规模语言模型的基准数据污染:一项综述 文章目录 大规模语言模型的基准数据污染:一项综述摘要1 引言 摘要 大规模语言模型(LLMs),如GPT-4、Claude-3和Gemini的快

免费也能高质量!2024年免费录屏软件深度对比评测

我公司因为客户覆盖面广的原因经常会开远程会议,有时候说的内容比较广需要引用多份的数据,我记录起来有一定难度,所以一般都用录屏工具来记录会议内容。这次我们来一起探索有什么免费录屏工具可以提高我们的工作效率吧。 1.福晰录屏大师 链接直达:https://www.foxitsoftware.cn/REC/  录屏软件录屏功能就是本职,这款录屏工具在录屏模式上提供了多种选项,可以选择屏幕录制、窗口

论文翻译:ICLR-2024 PROVING TEST SET CONTAMINATION IN BLACK BOX LANGUAGE MODELS

PROVING TEST SET CONTAMINATION IN BLACK BOX LANGUAGE MODELS https://openreview.net/forum?id=KS8mIvetg2 验证测试集污染在黑盒语言模型中 文章目录 验证测试集污染在黑盒语言模型中摘要1 引言 摘要 大型语言模型是在大量互联网数据上训练的,这引发了人们的担忧和猜测,即它们可能已

轻松录制每一刻:探索2024年免费高清录屏应用

你不会还在用一些社交工具来录屏吧?现在的市面上有不少免费录屏的软件了。别看如软件是免费的,它的功能比起社交工具的录屏功能来说全面的多。这次我就分享几款我用过的录屏工具。 1.福晰录屏大师 链接直达:https://www.foxitsoftware.cn/REC/  这个软件的操作方式非常简单,打开软件之后从界面设计就能看出来这个软件操作的便捷性。界面的设计简单明了基本一打眼你就会轻松驾驭啦