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

Qt遇到常见问题记录

1.Qt版本选择

Qt4.8.7是Qt4的终结版本,是Qt4系列版本中最稳定最经典的

(很多嵌入式板子还是用Qt4.8),其实该版本是和Qt5.5差不多时间发布的。

参考链接

Qt 5.5 Released

Qt5.6.3最最后支持xp系统的长期支持版本,Qt5.7.0是最后支持xp系统的非长期支持版本。

Qt5.12.3是最后提供mysql数据库插件的版本,往后的版本需要自行编译对应的mysql数据库插件,官方安装包不再提供。

Qt5.12.5是最后样式表性能最高的版本,经过酷码大佬查阅代码发现此后版本的样式表源码中为了修复一个bug做了循环嵌套设置,导致性能急剧下降,界面越多性能暴降10倍以上。

Qt5.14.2是最后提供二进制安装包的版本,后面的版本都需要在线安装。

Qt5.15系列是最后支持win7的版本,Qt6系列版本需要更改源码编译才能支持,这对于小白来说难于上青天。

如上,因用户使用Win7,并开发机属于离线工作模式,故选择5.14.2(含)之前版本作为IDE开发工具,性能方面,考虑5.12.5

2. Qt QButtonGroup addButton添加后规律

如果默认不指定id,则默认id从 -2 开始计数,依次递减

可通过-(id+2)转为0-base的下标进行访问

3. Qt Connect接lamda实现

通常使用不挂接slot的lamda方式,可以忽略SIGNAL、SLOT及形参的使用,达到高内聚的要求。如:

connect( button_circle, &QPushButton::toggled, this, [=](bool checked)
{
// todo
});

但是当遇到存在多个同名信号,如QButtonGroup的buttonClicked信号,

void buttonClicked(QAbstractButton *);
void buttonClicked(int);

则需要进行类型转换

connect(group, static_cast<void(QButtonGroup::*)(int)>(&QButtonGroup::buttonClicked), this, [=](int id)
{
});

4. QWidget的QSS背景色设置失效

试图重用某一块UI界面,通常做法会从QWidget派生出一个子类,将这部分局部功能进行封装。引入全局QSS,或直接构造时setStyleSheet,直接使用QWidget,正常。

一旦派生子类,则出现背景色设置失效的情况。

原因:Qt官方解释:Qt Style Sheets Reference | Qt Widgets 5.15.15

Supports only the background, background-clip and background-origin properties.

If you subclass from QWidget, you need to provide a paintEvent for your custom QWidget as below:

void CustomWidget::paintEvent(QPaintEvent *)
{QStyleOption opt;opt.init(this);QPainter p(this);style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
}

The above code is a no-operation if there is no stylesheet set.

解决方法:

方法1: 听话,重载paintEvent

方法2: 内叠一个QWidget,用它设置背景色

方法3: 改祖,从QFrame派生

方法4: setAttribute(Qt::WA_StyledBackground)

相关文章:

Qt遇到常见问题记录

1.Qt版本选择 Qt4.8.7是Qt4的终结版本&#xff0c;是Qt4系列版本中最稳定最经典的 &#xff08;很多嵌入式板子还是用Qt4.8&#xff09;&#xff0c;其实该版本是和Qt5.5差不多时间发布的。 参考链接 Qt 5.5 Released Qt5.6.3最最后支持xp系统的长期支持版本&#xff0c;Q…...

pm2在Windows环境中的使用

pm2 进程管理工具可以Windows操作系统上运行&#xff0c;当一台Windows电脑上需要运行多个进程时&#xff0c;或者运维时需要运行多个进程以提供服务时。可以使用pm2&#xff0c;而不再是使用脚本。 1. 使用PM2管理进程 1.1. 启动PM2项目 1.1.1. 直接启动项目 参数说明&…...

使用百度翻译API或腾讯翻译API做一个小翻译工具

前言 书到用时方恨少&#xff0c;只能临时抱佛脚。英文pdf看不懂&#xff0c;压根看不懂。正好有百度翻译API和腾讯翻译API&#xff0c;就利用两个API自己写一个简单的翻译工具&#xff0c;充分利用资源&#xff0c;用的也放心。 前期准备 关键肯定是两大厂的翻译API&#x…...

Flutter笔记:桌面应用 窗口定制库 bitsdojo_window

Flutter笔记 桌面应用窗口管理库 bitsdojo_window 作者&#xff1a;李俊才 &#xff08;jcLee95&#xff09;&#xff1a;https://blog.csdn.net/qq_28550263 邮箱 &#xff1a;291148484163.com 本文地址&#xff1a;https://blog.csdn.net/qq_28550263/article/details/13446…...

iOS_折叠展开 FoldTextView

1. 显示效果 Test1&#xff1a;直接使用&#xff1a; Test2&#xff1a;在 cell 里使用&#xff1a; 2. 使用 2.1 直接使用 // 1.1 init view private lazy var mooFoldTextView: MOOFoldTextView {let view MOOFoldTextView(frame: .zero)view.backgroundColor .cyanvie…...

java使用 TCP 的 Socket API 实现客户端服务器通信

一&#xff1a;什么是 Socket(套接字) Socket 套接字是由系统提供于网络通信的技术, 是基于 TCP/IP 协议的网络通信的基本操作&#xff0c;要进行网络通信, 需要有一个 socket 对象, 一个 socket 对象对应着一个 socket 文件, 这个文件在 网卡上而不是硬盘上, 所以有了 sokcet…...

conda从4.12升级到最新版23.9 自动升级失败 手动升级方法

最新版conda有多线程下载&#xff0c;还做了一些其它易用性改动&#xff0c;所以决定从很老的4.12版本升级到最新版。因为版本差别过大&#xff0c;使用自带的conda update conda已经不起作用了。 手动升级最先想到的是把老环境全部导出为yaml文件&#xff0c;在新环境里全部重…...

WPF下实现拖动任意地方都可以拖动窗口

首先在xaml中添加事件 <Window PreviewMouseLeftButtonDown"Window_PreviewMouseLeftButtonDown"PreviewMouseMove"Window_PreviewMouseMove"PreviewMouseLeftButtonUp"Window_PreviewMouseLeftButtonUp"/>然后脚本输入 Point _pressedP…...

Swin Transformer

Swin Transformer 简介 下采样的层级设计&#xff0c;能够逐渐增大感受野。采用window进行注意力计算&#xff0c;极大降低了内存消耗&#xff0c;避免了整张图像尺寸大小的qkv矩阵滑窗操作包括不重叠的 local window&#xff0c;和重叠的 cross-window。不重叠的local window…...

【csapp lab】lab2_bomblab

文章目录 前言实验内容phase_1phase_2phase_3phase_4phase_5phase_6secret_phase 前言 刚做了csapp lab2&#xff0c;记录一下。 我这里用的的系统环境是Ubuntu22.04&#xff0c;是64位系统&#xff0c;与用32位系统可能有所差异。 实验共包括七个阶段&#xff0c;每个阶段考…...

开发者分享 | Ascend C算子开发及单算子调用

本文分享自《AscendC算子开发及单算子调用》&#xff0c;作者&#xff1a;goldpancake。 笔者在阅读Ascend C官方文档的过程中发现&#xff0c;对于初学者来说&#xff0c;尤其是第一次接触异构编程思想的初学者&#xff0c;有部分内容是无需特别关注的&#xff0c;例如算子工…...

如何在 Linux 上部署 RabbitMQ

如何在 Linux 上部署 RabbitMQ 文章目录 如何在 Linux 上部署 RabbitMQ安装 Erlang从预构建的二进制包安装从源代码编译 Erlang RabbitMQ 的安装使用 RabbitMQ Assistant 连接 RabbitMQ Assistant 是一款优秀的RabbitMQ 可视化管理工具&#xff0c;提供丰富的管理功能。下载地址…...

解决更换NodeJs版本后npm -v返回空白

一、问题描述 win11电脑上输入cmd进入控制台&#xff0c;输入 node --version 有正常返回安装的nodejs的版本号 再输入 npm -v 返回空白。正常情况应该是要返回版本号。 二、问题背景 最近准备学习vue&#xff0c;在不久前已经安装了NodeJs和python。运行了好几个开源项…...

【ES常用查询】基于ElasticsearchRestTemplate及NativeSearchQuery的查询

包含当前es所有的查询&#xff0c; 需要什么代码直接照搬&#xff0c;改个参数就行&#xff01; 用的好请务必给我点赞&#xff01;&#xff01;&#xff01;感谢爱你们&#xff01;&#xff01;&#xff01; &#xff08;周末更 筒&#xff09; 为啥写这篇文章呢&#xff…...

全志XR806基于http的无线ota功能实验

XR806不仅硬件功能多&#xff0c;XR806也提供了功能极其丰富的SDK&#xff0c;几天体验下来非常容易上手。常见的功能几乎都有相应的cmd或demo实现&#xff0c;HAL也做得非常全面&#xff0c;非常适合快速开发。这一点超级好评&#xff01;本文章要实现的无线OTA也基于该SDK。 …...

2023年11月15号期中测验选择题(Java)

本篇续接《2023年11月15号期中测验判断题&#xff08;Java&#xff09;》->传送门 2-1 以下程序运行结果是 public class Test extends Father{private String name"test";public static void main(String[] args){Test test new Test();System.out.println(tes…...

C# static关键字详解

在C#中&#xff0c;static关键字有许多重要的用途。以下是关于如何使用static关键字的一些详细信息&#xff1a; 静态类&#xff08;Static Classes&#xff09;&#xff1a;静态类是不能实例化的类&#xff0c;它的所有成员都是静态的。静态类常常用作工具类或帮助类&#xff…...

开发一款回合制游戏,需要注意什么?

随着游戏行业的蓬勃发展&#xff0c;回合制游戏因其深度的策略性和令人着迷的游戏机制而受到玩家们的热烈欢迎。如果你计划投身回合制游戏的开发领域&#xff0c;本文将为你提供一份详细的指南&#xff0c;从游戏设计到发布&#xff0c;助你成功打造一款引人入胜的游戏。 1. 游…...

java的包装类

目录 1. 包装类 1.1 基本数据类型和对应的包装类 1.2 装箱和拆箱 1.3 自动装箱和自动拆箱 1. 包装类 在Java中&#xff0c;由于基本类型不是继承自Object&#xff0c;为了在泛型代码中可以支持基本类型&#xff0c;Java给每个基本类型都对应了 一个包装类型。 若想了解…...

【数据结构(一)】线性结构和非线性结构

文章目录 线性结构和非线性结构1. 线性结构2. 非线性结构 线性结构和非线性结构 数据结构包括&#xff1a;线性结构和非线性结构。 1. 线性结构 线性结构作为最常用的数据结构&#xff0c;其特点是数据元素之间存在一对一的线性关系。线性结构有两种不同的存储结构&#xff…...

Win11终极IPX协议兼容方案:IPXWrapper完整配置与优化指南

Win11终极IPX协议兼容方案&#xff1a;IPXWrapper完整配置与优化指南 【免费下载链接】ipxwrapper 项目地址: https://gitcode.com/gh_mirrors/ip/ipxwrapper 在现代Windows 11系统上重温《星际争霸》、《魔兽争霸》、《暗黑破坏神2》等经典游戏时&#xff0c;你是否遇…...

别再死记硬背了!用PyTorch图解U-Net中的卷积、反卷积与Skip Connection

从张量视角拆解U-Net&#xff1a;PyTorch实战中的维度魔术与跳跃连接 当你第一次看到U-Net的对称结构图时&#xff0c;是否曾被那些上下翻飞的箭头和不断变化的数字搞得晕头转向&#xff1f;作为医学图像分割领域的标杆架构&#xff0c;U-Net的核心秘密其实藏在三个关键操作里…...

Qwen3.5-9B效果展示:中文新闻事件抽取+时间线生成+关联人物图谱

Qwen3.5-9B效果展示&#xff1a;中文新闻事件抽取时间线生成关联人物图谱 1. 模型核心能力概览 Qwen3.5-9B是一款拥有90亿参数的开源大语言模型&#xff0c;在中文处理和多模态理解方面展现出卓越能力。这个模型特别适合处理复杂的文本分析任务&#xff0c;能够从海量信息中提…...

ViPER4Windows终极修复指南:让Windows音效神器重获新生

ViPER4Windows终极修复指南&#xff1a;让Windows音效神器重获新生 【免费下载链接】ViPER4Windows-Patcher Patches for fix ViPER4Windows issues on Windows-10/11. 项目地址: https://gitcode.com/gh_mirrors/vi/ViPER4Windows-Patcher 你是否曾为ViPER4Windows在Wi…...

从零到一:基于SkyWalking构建微服务可观测性实践

1. 为什么微服务需要可观测性&#xff1f; 记得去年我们团队把一个单体应用拆分成五个微服务后&#xff0c;突然发现线上问题排查变得异常困难。有一次用户反馈订单支付超时&#xff0c;我们花了整整两天时间才定位到是风控服务调用了第三方接口导致的性能瓶颈。这种经历让我深…...

DWA算法参数互相影响揭秘:为什么调大直线速度后你的机器人不会转弯了?

DWA算法参数互相影响揭秘&#xff1a;为什么调大直线速度后你的机器人不会转弯了&#xff1f; 在移动机器人导航领域&#xff0c;DWA&#xff08;Dynamic Window Approach&#xff09;算法因其高效性和实用性被广泛应用。然而&#xff0c;许多开发者在调整参数时都会遇到一个典…...

G-Helper:轻量级华硕硬件控制的性能优化解决方案

G-Helper&#xff1a;轻量级华硕硬件控制的性能优化解决方案 【免费下载链接】g-helper Lightweight, open-source control tool for ASUS laptops and ROG Ally. Manage performance modes, fans, GPU, battery, and RGB lighting across Zephyrus, Flow, TUF, Strix, Scar, a…...

技术债务管理:如何与产品经理就“还债”达成共识?

在追求快速迭代和功能交付的软件开发浪潮中&#xff0c;技术债务如同潜伏在系统深处的“慢性病”&#xff0c;悄然累积&#xff0c;最终可能引发系统脆弱、交付迟滞、团队士气低落等一系列并发症。对于软件测试从业者而言&#xff0c;技术债务带来的影响尤为直接&#xff1a;测…...

5分钟完成Axure RP中文汉化:小白也能轻松上手的终极教程

5分钟完成Axure RP中文汉化&#xff1a;小白也能轻松上手的终极教程 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包。支持 Axure 11、10、9。不定期更新。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn 还在为Axure…...

批量为视频文件添加内嵌封面:两种模式的适用场景与配置

记录一下使用【批量添加MP4封面工具】的实践经验&#xff0c;重点讲两种封面模式的选择和配置。背景视频文件&#xff08;MP4、MKV等&#xff09;支持在文件内部嵌入封面图片&#xff08;attached_pic&#xff09;。嵌入后&#xff0c;在文件管理器的缩略图视图中会显示指定的封…...