《QDebug 2023年4月》

news2024/11/26 10:03:33

一、Qt Widgets 问题交流

二、Qt Quick 问题交流

1.对 qml 基本类型 list 的编辑

在 Qt5 中,QML 的 list 类型只提供了 push 添加数据,或者重新赋值,没法 pop。到了 Qt6,实测可以对 list 调用 pop/shift 等操作。

Qt5 中可以先将 list 转为 js 的数组,编辑完后再重新赋值回去,以 ShapePath 为例:

import QtQuick 2.15
import QtQuick.Window 2.15
import QtQuick.Shapes 1.15
import QtQuick.Controls 2.15

Window {
    id: root
    width: 640
    height: 480
    visible: true
    title: qsTr("Test Qml list")

    Shape {
        id: shape
        anchors.fill: parent
        ShapePath {
            id: shape_path
            strokeColor: "black"
            strokeWidth: 6
            fillColor: "transparent"
            capStyle: ShapePath.RoundCap

            property int joinStyleIndex: 2
            joinStyle: ShapePath.RoundJoin

            startX: 30
            startY: 30
            pathElements: [
                PathLine { x: 30; y: 30
                    Component.onCompleted: {
                        console.log("init item")
                    }
                    Component.onDestruction: {
                        console.log("free item")
                    }
                },
                PathLine { x: 100; y: 30 },
                PathLine { x: 30; y: 100 },
                PathLine { x: 100; y: 100 }
            ]
        }
    }

    Button {
        anchors.centerIn: parent
        text: "pop"
        onClicked: {
            console.log("len =", shape_path.pathElements.length)
            if (shape_path.pathElements.length <= 2)
                return;
            // Qt6 版本
            //let item = shape_path.pathElements.shift()
            // Qt5 版本
            let path = Array.from(shape_path.pathElements)
            let item = path.shift()
            shape_path.pathElements = path
            // 不主动释放只会在结束时释放,主动调用 destroy 不会触发 Component.onDestruction
            item.destroy()
            shape_path.startX = shape_path.pathElements[0].x
            shape_path.startY = shape_path.pathElements[0].y
        }
    }
}

三、其他

1.在 Windows 上设置开机启动遇到的路径问题

如果是通过注册表的形式设置程序开机启动,如:

HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Run

那么程序的工作目录(working directory)就会在系统路径下,相当于命令行在别的目录启动一个程序。此时如果读写文件是相对于当前工作路径就可以能找不到文件,可以用 QCoreApplication::applicationDirPath() (即 exe 的相对路径)来拼接绝对路径,而不是直接 ./ 的形式,也可以设置:

QDir::setCurrent(QCoreApplication::applicationDirPath());

此外我们在程序中可能还要启动一些进程,可以将 exe 的目录设置为工作目录,而不是直接继承当前的环境,否则可能报错找不到依赖库或者 plugin。如果是 QProcess 的话,接口如下:

QProcess p;
p.setWorkingDirectory(QCoreApplication::applicationDirPath());

QProcess::startDetached(program, arguments, QCoreApplication::applicationDirPath());

2.Mac 上使用 QtCreator qmake 编译,报错提示 SDK 版本过高

参考:https://blog.csdn.net/qq_35664104/article/details/121480884

之前在 MacOS 10.14 上使用 Qt5.15 + XCode 正常,在 MacOS 12 上下载了对应版本的 XCode 后用 Qt5.15 qmake 编译就报错。

在 pro 中加上一些设置:

QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.15 // 使用对应版本SDK
CONFIG += sdk_no_version_check // 忽略版本检测

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/480146.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Liunx】进程的程序替换——自定义编写极简版shell

目录 进程程序替换[1~5]1.程序替换的接口&#xff08;加载器&#xff09;2.什么是程序替换&#xff1f;3.进程替换的原理4.引入多进程5.系列程序替换接口的详细解析&#xff08;重点&#xff01;&#xff09; 自定义编写一个极简版shell[6~8]6.完成命令行提示符7.获取输入的命令…

Docker 架构

Docker 架构 简介Docker daemon &#xff08;守护进程&#xff09;Docker client &#xff08;客户端&#xff09;Docker registries &#xff08;仓库&#xff09;Images &#xff08;镜像&#xff09;Containers &#xff08;容器&#xff09;The underlying technology &…

前缀和 技巧小记

前缀和 子数组的元素之和&#xff1a;一维前缀和子矩阵的元素之和&#xff1a;二维前缀和前缀和 哈希表&#xff1a;寻找和为 target 的子数组 子数组的元素之和&#xff1a;一维前缀和 前缀和适用于快速、频繁地计算一个索引区间内的元素之和。 int res 0; // 存储区间[…

链表:常见面试题-拷贝特殊链表

题目&#xff1a; 一种特殊的单链表节点类描述如下: class Node { int value; Node next; Node rand; Node(int val) {value val} } rand指针是单链表节点结构中新增的指针&#xff0c;rand可能指向链表中的任意一个节点&#xff08;包括自己&#xff09;&#xff0c;也可…

计算机电脑中了勒索病毒怎么办,Windows系统中了faust勒索病毒解密数据恢复

电脑的操作系统被恶意软件攻击已不再是新鲜的话题了。而攻击的恶意软件中有一种叫做faust勒索病毒&#xff0c;常常袭击Windows电脑系统。如果我们的电脑在使用Windows操作系统时感染了faust勒索软件&#xff0c;请不要慌张&#xff0c;我们可以咨询专业的数据恢复厂商&#xf…

深度学习技巧应用11-模型训练中稀疏化参数与稀疏损失函数的应用

大家好,我是微学AI,今天给大家介绍一下深度学习技巧应用11-模型训练中稀疏化参数与稀疏损失函数的应用,在训练神经网络的过程中,将稀疏损失加入到常规损失函数的作用主要是降低模型复杂性和提高模型泛化能力。通过引入稀疏性约束,优化算法会在减小常规损失的同时,尽量让参…

快速上手非关系型数据库Redis

一、Redis介绍 1.非关系型数据库&#xff0c;纯内存操作&#xff0c;key-value存储&#xff0c;性能很高&#xff0c;可持久化&#xff08;内存---->保存到硬盘上&#xff09; 2.缓存&#xff0c;计数器&#xff0c;验证码&#xff0c;geo地理位置信息&#xff0c;发布订阅…

【前端知识】Cookie, Session,Token和JWT的发展及区别(上)

【前端知识】Cookie, Session&#xff0c;Token和JWT的发展及区别&#xff08;上&#xff09; 1. 背景2. Cookie2.1 Cookie的定义2.2 Cookie的特点2.3 Cookie的一些重要属性✨2.3.1 Cookie的重要属性&#x1f387;2.3.2 Cookie的有效期&#xff0c;max-age和作用域&#xff0c;…

SQL注入(一)联合查询 报错注入

目录 1.sql注入漏洞是什么 2.联合查询&#xff1a; 2.1注入思想 2.2 了解information_schema 数据库及表 3.可替代information_schema的表 3.1 sys库中重要的表 4. 无列名注入 利用 join-using 注列名。 4. 报错注入 4.1 常用函数&#xff1a;updatexml、extractvalue…

Java 基础进阶篇(五)—— 接口详解

文章目录 一、接口概述二、接口的基本使用三、接口从 JDK 8 开始新增的方法四、接口的注意事项&#xff08;了解&#xff09;补充&#xff1a;接口与接口的关系 一、接口概述 规范的基本特征是约束和公开。 接口就是一种规范&#xff0c;其约束别人必须干什么事情。 所以&…

FileZilla读取目录列表失败(vsftpd被动模式passive mode部署不正确)

文章目录 现象问题原因解决方法临时解决&#xff08;将默认连接方式改成主动模式&#xff09;从根本解决&#xff08;正确部署vsftpd的被动模式&#xff09; 现象 用FileZilla快速连接vsftpd服务器时&#xff0c;提示读取目录列表失败 问题原因 是我vsftpd服务端的被动模式没…

Python每日一练(20230501)

目录 1. 对链表进行插入排序 &#x1f31f;&#x1f31f; 2. 平衡二叉树 &#x1f31f;&#x1f31f; 3. 找出素数对 ※ &#x1f31f; 每日一练刷题专栏 &#x1f31f; Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每日一练 专栏 1. 对链表进行…

Linux主机信息搜集

1、系统架构 打印系统信息 uname -a 文件 /etc/issue是一个文本文件&#xff0c;其中包含要在登录提示之前打印的消息或系统标识 cat /etc/issue /etc/lsb-release&#xff0c;/etc/redhat-release文件包含一个被解析以获取信息的描述行 cat /etc/*-release /proc/versi…

创作纪念日让 AI 与我共同记录下今天 — 【第五周年、1460天】

今天正是五一&#xff0c;收到一条消息&#xff1f; 五一还要我加班 &#x1f60f;&#xff1f; 喔&#xff0c;原来是 CSDN 给我发的消息呀&#xff01;我在 CSDN 不知不觉已经开启第五周年啦&#xff01; 目录 1.机缘2.收获3.日常4.我与 AI 的“合作”part Ipart II Super al…

java 多用户即时通信系统的实现 万字详解

目录 前言 一、拾枝杂谈 1.项目开发大体流程 : 2.多用户即时通信系统分析 : 1 需求分析 2 整体分析 二、用户登录 1.准备工作 : 2.客户端 : 1 菜单界面 2 登录验证 3 线程创建 4 线程管理 3.服务端 : 1 用户验证 2 线程创建 3 线程管理 4.登录测试 : 三、在线列表 1.…

探索深度学习世界:掌握PyTorch,成为AI领域的行家

探索深度学习世界&#xff1a;掌握PyTorch&#xff0c;成为AI领域的行家 PyTorch的背景介绍PyTorch的基本概念与特点PyTorch的基本应用张量和自动求导神经网络搭建训练和测试模型 模型的保存和加载模型保存&#xff1a;模型加载&#xff1a;模型使用&#xff1a; PyTorch与其他…

【KVM虚拟化】· 命令行KVM安装linux

目录 &#x1f341;基础本环境配置 &#x1f341;添加lvm卷 &#x1f341;qemu-img创建磁盘文件 &#x1f342;创建raw格式 &#x1f342;创建虚拟机 &#x1f342;转换格式为qcow2 &#x1f341;virt-install命令参数 &#x1f341;案例操作 &#x1f990;博客主页&#xff1a…

【C++】 小项目---宠物小屋的分析设计与开发实现

目录 需求 分析设计 动物类 笼子类 房子类 人类 小贴士 整体设计图 开发实现 动物类 笼子类 房子类 人类 小贴士 控制台主函数 需求 动物猫&#xff08;CCat&#xff09;、狗&#xff08;CDog&#xff09;、蛇&#xff08;CSnake&#xff09;&#xff0c;包含名字&…

对折纸张厚度超过珠峰

对折 0.1 毫米的纸张&#xff0c;循环对折&#xff0c;超过珠峰高度输出对折次数。 【学习的细节是欢悦的历程】 Python 官网&#xff1a;https://www.python.org/ Free&#xff1a;大咖免费“圣经”教程《 python 完全自学教程》&#xff0c;不仅仅是基础那么简单…… 地址&a…

【计算机网络】学习笔记:第六章 应用层【王道考研】

基于本人观看学习b站王道计算机网络课程所做的笔记&#xff0c;不作任何获利 仅进行交流分享 特此鸣谢王道考研 若有侵权请联系&#xff0c;立删 如果本篇笔记帮助到了你&#xff0c;还请点赞 关注 支持一下 ♡>&#x16966;<)!! 主页专栏有更多&#xff0c;如有疑问欢迎…