qt开发中遇到的问题整理五

Qt面试题整理 1、Qt信号槽机制的优势 (1)类型安全。需要关联的信号和槽的签名必须是等同的,即信号的参数类型和参数个数同接收该信号的槽的参数类型和参数个数相同。不过,一个槽的参数个数是可以少于信号的参数个数的,但缺少的参数必须是信号参数的最后一个或几个参数。如果信号和槽的签名不符,编译器就会报错。 (2)松散耦合。信号和槽机制减弱了Qt对象的耦合度。激发信号的Qt对象无需知道是哪个对象的哪个槽需要接收它发出的... 阅读详情

1.请问可以在Qthread里面 操作 ui控件吗? 
不可以。 文档原文: In GUI applications, the main thread is also called the GUI thread because it's the only thread that is allowed to perform GUI-related operations 
所以只能通过信号和槽机制进行传递


2.QT4增加了一个非常有用的类QSettings 
QSettings是qt4.0提供的一个读取配置文件的类,在windows平台,它提供了ini文件读些,注册表读写的功能。而且使用也非常简单。大家可以参照它的示例:$QTDIR\examples\tools\settingseditor

我就简单点随便介绍介绍它的使用吧
QSettings::Format有两种:
QSettings::NativeFormat在windows平台可以读写windows注册表.
QSettings::IniFormat可以读写ini格式的配置文件
在Unix/X11平台下这两个Format效果是一样的:(

1).读写注册表
//注意的就是路径名必须是"/"而不是"\\"等.否则不能读写,同时注意
//Format为QSettings::NativeFormat
QSettings *settings = new QSettings("HKEY_CURRENT_USER/", QSettings::NativeFormat);

//写HKEY_CURRENT_USER/regedit/test,设置test值为red
settings->setValue("regedit/test", "red");

//读 HKEY_CURRENT_USER/regedit/test,默认值是ddd
QString value = settings->value("regedit/test", "ddd").toString();

删除设置对应的是settings->remove( const QString & key )

2).读取ini配置文件
ini文件格式如下:
[Alpha]
Beta/Beta=1
Beta/Gamma=2
Beta/Delta=1111
Beta/Epsilon=5
Iota=7
Omicron=11

QSettings *settings = new QSettings(fileName, QSettings::IniFormat);

//写Beta/Beta
settings->setValue("Alpha/Beta/Beta", 68);

其他和读写注册表差不多,我就懒得写了
发觉QT4读写的这种配置,即可兼容windows下的ini文件,同时它的功能也比windows API所提供的功能强.



3.QTextEdit如何得到光标所在的行和列??

首先获取QTextEdit 的当前光标
const QTextCursor cursor = textEdit->textCursor();
然后
int ColNum = cursor.columnNumber();
int RowNum = cursor.blockCount();
这样就over了 


4.隐藏滚动条: 
一般有滚动条的控件都有setVerticalScrollBarPolicy和setHorizontalScrollBarPolicy函数, 
只要设置为Qt::ScrollBarAlwaysOff就可以隐藏滚动条了,默认是Qt::ScrollBarAsNeeded需要时才出现。 


5.用qt把数据写入Excel 中

用qt把数据写入Excel 中:
代码:
QString fileName = QFileDialog::getSaveFileName(this, tr("Save File"),
        "",
        tr("file ( *.CSV)"));
    if(fileName == "")
    {
        return;
    }
    QTextCodec *code;
    code = QTextCodec::codecForName("gb18030");

    std::string strbuffer = code->fromUnicode(fileName).data();
    FILE *fileWrite = fopen( strbuffer.c_str(),"w");
    QString strFemale = "Female Count";
    QString strMale = "Male Count";
    QString strPatientCount = "Patient Count";
    QString str ="\n";
    std::string strCountbuffer = code->fromUnicode(strFemale+","+strMale+","+strPatientCount+str+QString().setNum(femaleCount)+","+QString().setNum(maleCount)+","+QString().setNum(patientCount)).data();
    QFile file;
    file.open(fileWrite, QIODevice::WriteOnly);
    file.write(strCountbuffer.c_str(), qstrlen(strCountbuffer.c_str()));        
    file.close(); 


6.linux下写文件乱码: 
/* 往文本里写数据 */
    QFile file("backup_file.txt");
    if(file.open(QIODevice::ReadWrite))
    {
        QTextStream out(&file);
        //设置编码用的codec
        QTextCodec *codec = QTextCodec::codecForName("UTF-8");
        // 设置流的编码方式       
        out.setCodec(codec);
        for( int i=0; i < 30; i++)
        {
            out << QString::number(i, 10) << "姓名" << endl;
        }
    } 
解决方法:
        //设置编码用的codec
        //        QTextCodec *codec = QTextCodec::codecForName("UTF-8");
        // 设置流的编码方式       
        //        out.setCodec(codec);        

7.对话框去掉边框: 
QWidget::QWidget ( QWidget * parent = 0, Qt::WindowFlags f = 0 ) 我们主要是继承Qwidget类时设置WindowFlags ,设置成Qt::CustomizeWindowHint或Qt::FramelessWindowHint,也可以用函数setWindowFlags进行设置


8.设置控件透明度: 
setWindowOpacity可以设置控件透明度,0.0-1.0,0.0是完全透明,对于容器类控件,它的所有子部件也随之变透明


9.启动其他应用程序,比如打开浏览器,打开一个excel文件等: 
   openUrl函数可以打开不同类型的文件,程序,网址等,会启动系统默认打开工具进行打开, 
openUrl ( const QUrl & url ) ;而QUrl以网址的形式设置一个文件全路径,进行打开。 
如:QUrl url("http://www.example.com/List of holidays.xml"); 
    
    QUrl url; 
    url.setUrl("F:/test/abc.chm");


10. 不要在switch、while,for里使用qprocess: 
   qprocess是多进程处理的,可能持续时间长,也可能会出异常,所以不要使用。在其他地方使用时,最好在start之后进行等待一段时间,waitforfinish 
   

基于Qt常见的问题整理(一) 目的: 对于自己在Qt平台上进行开发,常见的问题进行整理并分析。如果能解决你的问题,那就好,如果对上述问题,还有其他方法,可以联系我,方便我能够对此问题进行整理,先说声谢谢啦。 1、error C4430: 缺少类型说明符 - 假定为 int 注意: C++ 不支持默认 int 参考这位大神网址:https://blog.youkuaiyun.com/xiaomingZeng/article/details/... 阅读详情

相关推荐

Qt 插件开发 plugin 超详细 有源码

Qt 插件化开发框架类似于前后端的微服务的场景,授权哪个微服务则前端可以使用哪个微服务,插件就行硬件插卡一样,可以被随时删除、插入和修改,所以结构很灵活,容易修改,方便软件的升级和维护;插件主要面向接口编程,无需访问.lib文件,热插拔、利于团队开发。即使在程序运行时.dll不存在,也可以正常启动,只是相应插件功能无法正常使用而已;动态库需要访问.lib文件,而且在程序运行时必须保证.lib存在,否则无法正常启动;

q610098308的专栏 6546

linux下qt运行时缺少依赖库问题

linux下报缺库的问题

weixin_42614907的博客 1433

QT开发问题整理

1.dialog 背景透明问题? windowOpacity值在0-1之间,1全不透。 最开始用styleSheet使用样式去处理,怎么都不透明。

无极的博客 292

【QT教程】QT6与C++17 QT与C++新特性

QT6与C++17的背景知识《QT6与C++17》书籍正文——QT6与C++17的背景知识QT6与C++17的背景知识概述1.1 QT6的背景QT是一个跨平台的C++图形用户界面应用程序框架,它被广泛应用于开发GUI应用程序,也可以用来开发非GUI程序,如控制台工具和服务器。QT被设计成能够在多种操作系统上运行,包括但不限于Windows、Mac OS X、Linux、iOS和Android。QT6是QT框架的第六个主要版本,于2020年发布。

QT性能优化QT原理源码QT界面美化 2887

QT——开发入门简介

1、你了解Qt吗? Qt是一种基于C++的跨平台图形用户界面应用程序开发框架。如何跨平台?上到服务器上位机,下到嵌入式GUI,上天入地无所不能。Qt最早是由1991年由Qt Company开发,但是到2008年,Qt Company科技被诺基亚公司收购,是的,就是拥有着我们很多情怀的诺基亚。但在2012年,Qt又被Digia收购。等到了2014年,跨平台集成开发环境Qt Creator 3.1....

数字世界 万物互联 10万+

树莓派通过TTL3.3转485 Modbus采集水表

所需道具 树莓派0,我用的是树莓派zero wh; 具有光电直读功能的有线水表,我用的是咸鱼淘的埃美柯LXSY-20E1; TTL3.3 转 485模块,带隔离的贵些; 5V转12V升压模块。 原理 树莓派有UART(GPIO14 Tx 和 GPIO15 Rx)串口通讯功能,电器特性是3.3V TTL,直读远传水表支持M-Bus/485通讯接口,我买的光电直读水表485要求12V供电(根据仪表厂家说明书)。TTL和485虽然都是串口通讯,但电器特性不一样,不能直接接!我已经烧掉一个树莓派...

xhydongda的博客 3443

linux下QT Creator常见错误及解决办法

最近因为在做一个关于linux下计算机取证的小项目,需要写一个图形界面,所以想到了用QT来写,选用了linux下的集成开发环境QT Creator5.5.1,但刚刚安装好,竟然连一个"hello world"的样例都跑不起来,现在通过查找资料将一些问题解决掉了,放在这里记录下来,已被后用和分享: 1、QApplication: No such file or directory (1)首...

weixin_30652491的博客 1028

别再死记硬背了!用Python可视化带你直观理解柯西收敛定理(附NumPy代码)

本文通过Python可视化技术,结合NumPy和Matplotlib,直观展示柯西收敛定理的动态过程。文章提供了完整的代码实现,帮助读者从抽象数学定义过渡到具象理解,特别适合数学学习者和Python开发者。通过热力图和交互式参数探索,读者可以清晰观察数列收敛特性,提升数学分析的学习效率。

weixin_28465009的博客 185

Linux + qt 调用动态链接库的问题

在使用Linux + qt 调用动态链接库时,add library 时 提示 this .so does not exist 我直接调用DLL的build下的是可以的,但如果复制过来的话,使用时则就会出现上面的 问题 可以将build下的so 及相关的都拷贝出来,或者 建立软连接 ...

u012719076的博客 1008

什么是plm系统?-数字化转型网

当今世界,产品研发能力是企业在激烈的市场竞争中保持战略优势的核心竞争力之一。如何有效地缩短产品研发周期、改善产品服务的设计迭代流程、有效降低产品的研发成本,也是企业面临的主要问题之一。PLM(Product Lifecycle Management,产品生命周期管理)在优化产品研发的全管理流程、增强企业产品的市场竞争力方面具有关键的作用。

cxo17757154043的博客 883

从零构建C++ Gerber解析器:以PCB缺陷检测为目标的实战指南

本文是一份面向PCB缺陷检测项目的实战指南,详细介绍了如何从零开始使用C++构建高性能的Gerber文件解析器。文章深入剖析了Gerber RS-274X格式,并提供了完整的开发环境搭建、核心数据结构设计、解析步骤实现以及为缺陷检测优化的具体方案,旨在帮助开发者获得对PCB制造数据的深度控制与极致性能。

weixin_29291185的博客 184

qt开发中遇到的问题整理

1.请问可以在Qthread里面 操作 ui控件吗?  不可以。 文档原文: In GUI applications, the main thread is also called the GUI thread because it's the only thread that is allowed to perform GUI-related operations  所以只能通过信号和槽机制

lpp1989的专栏 6052

从零到一:用AXI DataMover在Zynq MPSoC上实现高效DMA传输(附Vitis HLS驱动示例)

本文详细介绍了如何在Xilinx Zynq UltraScale+ MPSoC平台上使用AXI DataMover实现高效的DMA数据传输。通过解析AXI DataMover架构、Vivado工程配置、Vitis HLS驱动开发及性能优化技巧,帮助开发者快速构建高性能数据传输通道,并提供了可直接复用的代码示例。

weixin_42520796的博客 425

QT5 蓝牙开发文档翻译整理

QT5 蓝牙开发文档翻译整理 【下载地址】QT5蓝牙开发文档翻译整理分享 本项目旨在为广大的QT开发者提供一份珍贵的学习资源——QT5蓝牙开发的详细中文翻译文档。随着物联网和移动应用的发展,蓝牙技术在设备间的通讯中扮演着愈发重要的角色。QT作为一款强大的跨平台应用程序开发框架,其蓝牙模块使得开发人员能够便捷地实现在不同平...

gitblog_06613的博客 342

LVGL core group焦点分组管理(lv_group.c)

lv_group_t是用于焦点管理的,将需要获取焦点的对像加入到同一个分组内,再将其通过挂到指定的事件驱动中,就可以控制焦点了。而被加入的对象又可以通过焦点状态事件和事件来控制对象的焦点逻辑了。创建好的分组通过接口挂事件驱动中,这样就可以指定一个自定义的焦点分组了。;) {if(!} }友情提示:无论是接口还是都是单例的,即被设置后前一个被设置的值就失效了;此方案可以保证焦点的唯一 性,但也一定要记住要在适合的位置设置回来,以防丢失焦点。

Bigan(安)的博客 3907

Sigrity OptimizePI IC Device Power Pin Inductance Analysis模式如何计算IC电源管脚电感操作指导

Sigrity OptimizePI IC Device Power Pin Inductance Analysis模式可以计算电容到IC电源管脚的电感,用于评估电容位置对于IC电源管脚的效果,如何分析,以下图为例进行说明。Capacitors:选择层面,这里选择top layer(IC在top层),下方可以选择电容的size,这里选择All Size。IC devices,输入U*, A*, B*, Q*, P*,将所有这些字母开头的器件都识别为IC。模式如何计算IC电源管脚电感操作指导。

weixin_54787054的博客 409

【QT】QT快捷键整理

您可以根据个人习惯,在上述的“键盘”设置页面中,搜索任何操作并为其设置专属的快捷键。

艾莉丝努力练剑的博客,感谢大家一直以来的对艾莉丝的支持和鼓励,uu们如果对C/C++方向感兴趣的话,可以通过艾莉丝主页的微信名片加艾莉丝的好友,和努力练剑的艾莉丝一起加油! 959

YOLOv11涨点改进| Kimi团队 2026 |独家创新首发、注意力改进篇|爆火AttnRes残差自注意力模块,含多种创新改进,借助残差思想,缓解细节信息在传播过程中被稀释,促进YOLOv11涨点

🔥本文提出AttnRes残差自注意力模块,通过深度维度的注意力加权机制替代传统固定残差累加方式,使YOLOv11网络能自适应选择更有价值的历史层特征进行聚合。该方法缓解了浅层细节信息在深层传播过程中被稀释的问题,有效融合浅层纹理与深层语义特征,提升小目标、密集目标和复杂场景的检测能力。AttnRes还改善了深层网络的梯度分布与训练稳定性,增强模型收敛质量和泛化能力。实验表明,该模块能以较小计算开销显著提升YOLOv11的特征表达能力、检测精度和整体鲁棒性。文中详细介绍了模块结构、实现原理、优势特点

Ai缝合怪、助力小伙伴高效发论文 125

Qt 常用面试题整理(不定时整理)

QT 常用面试题整理

qq_28928005的博客 2万+

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Qt下开发ROS整理总结

两个半月攒了些Autoware和Apollo r3.0.0和一些opensource的标定&硬件同步代码,修改融合为一个所谓自动驾驶的功能包,在最后的UI集成时候,感觉没有这个必要,为了不白白浪费调研花费的时间,总结一下。 一、qt开发ros的开发环境搭建 二、几个简单DEMO流程注释 三、简单的Qt相关总结(yaml生成列表、RVIZ lib使用、去掉ROS 实现通信等) 四...

HamRadioDXer的QQ空间 436

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Qt pro文件整理归纳

刚刚开始接触qt的时候,从新建工程到项目完成,都没有打开过pro文件,随着时间以及项目复杂度的变化,发现pro文件的理解决定了一个项目的好坏和灵活程度。为了方便以后相关配置的查找,现在先将常用的一些配置信息进行归纳整理 配置 QT 这个是添加QT项目需要的模块的,若项目中要排除某个模块,也可用QT -=配置项。 TARGET 指定生成的目标文件的名称 TEMPLATE(模板变量) 这个配置项确定qmake为这个应用程序生成哪种makefile 。有下面五种形式可供选择: app 创建一个用于构建应用程序

学会改变的博客 807

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

基于QT开发的扫雷小游戏

近日把以前写的一个QT的扫雷小项目整理了一下,写下这篇博客,包含所有源代码分析,以及完整项目下载地址,希望能和大家一起分享学习。 扫雷的原理(玩法) 据我所知的扫雷只有一个最简单的规则,那就是每次点开的数字代表这个方块周围有几个雷,慢慢点开整块区域的时候就是按照这个规则,快速的排除是雷的方块,这个规则的实现也是代码中核心算法的实现,为了更好的判断这块地区是不是雷...

FlayHigherGT的博客 6766

整理的Qt相关博客及开源项目的链接(2026-09-01)

(因为我是保存在记事本,所以需要复制出来粘贴到浏览器地址栏去访问,后期更新了我会在标题栏修改日期) Qt5官方在线文档:https://doc.qt.io/qt-5/ Qt6官方在线文档:https://doc.qt.io/qt-6/ Qt官方下载链接:http://download.qt.io/archive/qt/ Qt官方下载链接:http://download.qt.io/new_archive/qt/ Qt君整理的下载地址:http://qthub.com/download/

龚建波 4478

Qt5开发及实例——第16章综合实例问题整理(一)

Qt5开发及实例——第16章综合实例问题整理(一) 由于工作需要,对《Qt5开发及实例》(第3版)进行了一定的学习。 但是,开发环境不是Qt5的Creater,而是VS2017+Qt5(以下称VQ)的综合开发环境,因此这里需要说明下。在使用VQ进行完成第16章的综合开发实例【汽车销售管理系统】时...

woguanshiyinye的博客 653
上一篇: 教你如何用Qt做透明的窗体,setMask,Qt,Opacity
下一篇: QT Graphics View 框架
Qicz
博客等级 码龄16年 56粉丝 122原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值