- 博客(19)
- 收藏
- 关注
原创 Qt新工程编译时没有ui_xxx.h头文件的问题
因为太久没有新起一个Qt工程,最近用CMakeLists.txt新开发一个Qt工程时使用设计师界面类,但是编译时始终找不到ui_xxx.h,还以为是什么目录结构的问题,结果是在CMakeLists.txt中少写了。这三句,导致编译时不会自动生成对应的ui.h,低级问题,记录一下。
2024-03-28 09:47:01
1081
1
原创 windows下命令行使用cmake初始化工程可能出现的问题
于是再通过cmake-gui来进行CMAKE_C_COMPILER和CMAKE_CXX_COMPILER的配置。环境:windows10,cmake 3.16.2,gcc 7.3.0,g++ 7.3.0。5.此时配置即可成功(不成功的话找出矛盾点,修改一下),可点击generate。配置好source目录和binary目录后,点击configure。6.可以回到命令行执行脚本,此时可以编译成功,并执行后续逻辑。这样得出来的Makefile的格式不对,并且内容也有问题。1.清空build目录。
2023-10-12 11:49:13
359
1
原创 自用vscode配置
1.GitLens:能够自动展示blame信息,能在修改部分区分颜色显示(有遇到本地仓库是软链接导致颜色区分失效的问题,在用vscode打开目录的时候需要注意)格式化文档:ctrl shift i。格式化选定内容:ctrl i。
2023-09-27 13:42:01
168
1
原创 qt窗口大小无法动态调整且右上角没有最大化按钮的问题
qt程序不会自适应用户显示器的分辨率和大小,可能导致在大多数电脑上可以放下的布局,在某些电脑上就是放不下,在qt的ui文件内尝试将主界面缩小也做不到,然后通过逐个删除控件的方法找出是历史添加的弹簧占了大半个位置并且无法缩小,重新调整布局,改成下图的样子后,可以实现动态缩放大小。问题:qt程序在发版后,有用户反映在某些电脑上没有最大化按钮,并且调整大小只能拖大,无法缩小。
2023-09-14 09:18:01
1042
1
原创 MAC下编译C++代码时ld: symbol(s) not found for architecture x86_64
记录一下这个错误,我这边报这个错的原因是因为系统路径下和其他路径下有同名的库,但是他们的版本不一样,且都在项目的寻找范围内,所以在编译的最后就会报这个错,解决方案就是删掉其中一个...
2022-05-26 14:13:39
1046
2
原创 Qt项目在windows任务栏窗口合并
在项目中,Qt的主窗口(a.exe)通过QProcess开启了一个子进程(也是自己写的 b.exe),这样就会导致在下方的任务栏中,任务窗口是分开的,但是因为b.exe是a.exe的工具窗口,所以还是希望能合并到一起,在网上找了好久,找到个windows的API:SetCurrentProcessExplicitAppUserModelID,不过在使用的时候无论包了什么头文件和库,这个API都调用不了,于是只能想其他办法。我所用的方法是将b.exe的main函数的内容转移到a.exe的main函数中,在a
2022-01-18 18:34:33
1338
原创 qt程序捕捉linux信号
项目的qt程序想要再linux下ctrl+C时正常退出,需要对相应的SIGINT信号进行捕捉,然后去做后续操作,网上看了一圈弄到最后都会报未定义的引用,然后在qt的issue中看到了解决办法:MyDaemon.h:#include "myProject.h"class MyDaemon : public QObject{ Q_OBJECTpublic: MyDaemon(QObject *parent = nullptr); // Unix signal handler
2022-01-05 18:32:02
1848
原创 Qt信号与槽会被阻塞的问题
最新在开发的时候发现这么一个情况把自定义信号connect到一个槽函数,而在槽函数内部执行的时候用了一个eventloop阻塞当前代码执行,这样的结果就是在emit了自定义的信号后就被槽函数的调用阻塞住了,不会再往下执行,如下:signals: void signal_one();connect(this, SIGNAL(signal_one()), this, SLOT(funcB()));void funcA() { emit signal_one(); std::cout <&l
2021-12-02 18:46:34
5597
原创 记录cmake编译莫名失败的问题
同一段代码在本机编译和在服务器端编译,本机没问题,服务端报以上错误,查了好久之后才找到问题,服务端的cmake版本过高,导致在cmake …的时候就无法找到适配的编译器,导致编译失败,虽然没有试验过cmake的版本和gcc之间有什么必然联系,不过在降了cmake版本后就编译通过了...
2021-09-18 17:59:52
1657
原创 解决Qt程序打包到其他电脑上的TLS Initialize Failed错误
在开发Qt时经常会用到https协议,而使用https时都需要使用openssl,然后就经常会有这种情况:最可气的是在自己电脑上没有这个问题,但是打包到其他电脑上时就会概率出现这个问题。在网上搜了一堆结果都是说的Qt5.12以下版本缺少libeay32.dll和ssleay32.dll或者Qt5.12以上版本缺少libcrypto-1_1-x64.dll和libssl-1_1-x64.dll两个库,但是无一例外的在打包放到没有环境的裸机上时仍然会报这个错。(本人用的Qt是5.13版本)期间甚至以为q
2021-05-19 14:02:19
557
1
原创 Qt调用另一个类的ui界面以及解决the class contaning “Ui::Widget“ could not be found的方法
调用另一个类的ui:类A调用类B的ui(B必须为设计师界面类),需构造一个B类对象,A获取该对象的指针后,在A.cpp中#include "ui_B.h"(该头文件是编译时自动生成的)后即可通过B的指针调用B的ui:B->ui->pushButton作者在调用时,有出现过B的ui无法转到槽的情况,并且qt弹窗:the class contaning “Ui::Widget” could not be found inxxx.cppxxx.cppxxx.cppPlease verif
2020-10-20 15:19:05
3813
7
原创 有关自己用到的cmakelist的操作
做项目的时候经常需要cmakelist来做一些事情,用本文章来记录自己用过的操作,省的来来回回的找获取git commit号中的tag来作为打包的版本 execute_process( COMMAND git describe --abbrev=8 --tags WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} OUTPUT_VARIABLE GIT_CODE_VERSION OUTPUT_STRIP_TRAI
2020-09-01 10:48:12
233
原创 Qt读取中文文件的乱码问题(不使用textcode)
本人是使用的cmakelist来编译的qt工程,在cmakelist中添加上:string(APPEND CMAKE_CXX_FLAGS " -fexec-charset=GBK")如果是.pro文件编译的工程也只需添加类似于:CMAKE_CXX_FLAGS += -fexec-charset=GBK之类的代码吧以上操作修改了整个工程的编码格式代码部分:QFile file("text.txt")file.open(QIODevice::ReadOnly | QIODevice::Text);
2020-08-12 11:55:36
365
原创 有关qt的大小写敏感操作
遇到一种就在此文章上继续添加:1. QComboBox#include <QComboBox>#include <QCompleter>QCompleter sensitive;sensitive.setCaseSensitivity(Qt::CaseSensitive);//Qt::CaseSensitive 大小写敏感 //Qt::CaseInsensitive 大小写不敏感(QComboBox默认)QComboBox::setCompleter(&s
2020-07-23 17:07:53
3244
原创 Qt通过http连接企业微信群机器人发送消息
用到的头文件:#include <QNetworkRequest>#include <QNetworkReply>#include <QNetworkAccessManager>#include <QJsonObject>代码实现:void httpConnectWeChatRobot(QString url, QString msg) //url为群机器人的webhook,msg为要发的信息{ if(msg.isEmpty())
2020-06-30 09:40:58
879
原创 运行CMAKE生成exe文件时附带cmd窗口的解决办法
估计该方法只对使用cmake编译qt程序的部分人员有帮助。只需要在cmakelists.txt中添加set(CMAKE_CXX_FLAGS "-mwindows")或者在cmake时指定编译参数cmake -DCMAKE_CXX_FLAGS="-mwindows"即可如果用的是c而不是c++,就只需把CXX改为C...
2020-04-30 14:37:45
2864
2
原创 Qt程序中获取Qt的版本号信息
Qt程序中获取Qt的版本号信息Qt中有相应的宏和全局函数可以直接获取版本号QT_VERSIONQT_VERSION_STRconst char *qVersion()至于其他的信息应该也可以在QtGlobal中找到...
2020-04-30 11:49:29
5491
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人