QT/ C++
liumy_2013
这个作者很懒,什么都没留下…
展开
-
QSplitter设置比例setStretchFactor失效的问题
1.调用QSplitter->addWidget( ),传参必须是QWidget类型,不能是QWidget的派生类,比如QTabWidget,QPushButton等等。总结就是严格按照下面两点要求使用QSplitter就不会存在setStretchFactor失效的问题。2.如果其中有一个子窗口设置了layout,哪个其他子窗口必须也要设置layout。网上查了很多,比如设置子窗口SizePolicy,都不起作用。按上面的代码执行setStretchFactor是无效的。原创 2024-03-11 15:57:41 · 484 阅读 · 1 评论 -
qt安装教程之官网下载说明
qt5.12.0下载连接 https://download.qt.io/archive/qt/5.12/5.12.0/比如你不想装完整的qt,但是别的程序可能依赖某些qt的模块,那就下载对应的模块编译安装后可供其他程序使用。qt的安装方式有1.下载安装程序,离线安装,在线安装。1)submodules目录下是qt各个子模块的源码,什么情况下会用到呢?我的理解是windows下下载.zip,linux下下载.tar.xz。或者是你电脑中已经安装了qt但只是缺少某个模块,可以单独下载安装。原创 2023-11-03 16:54:21 · 458 阅读 · 0 评论 -
安装了qt的sdk但是没有qtcreator如何编译qt程序
此时不方便安装qtcreator,但是电脑中安装了qt的opensource,qmake也能正常使用.原创 2022-08-30 16:45:26 · 1052 阅读 · 2 评论 -
关于QProcess遇到过的问题与解决方法
2.用QProcess指针的时候注意。当你启动一个外部程序,而且该外部程序并没有结束的时候,你是不能再用这个QProcess去执行其他命令的。如果该外部程序此时不能结束,你想启动多个外部程序怎么办?那就多创建几个QProcess,可以用列表,向量等数据结构保存其指针以便后续调用。此时要注意是否要杀死QProcess启动的外部程序,根据自己的业务逻辑自行处理。后来发现代码中后面的参数不能代单引号,代码中因该是 pkill -f gedit 才行。3.主线程创建的QProcess不能在子线程中调用。...原创 2022-08-29 17:27:30 · 1946 阅读 · 2 评论 -
排查qss无效的小技巧
在一些大一点的工程项目中,往往会出现自己设在的QSS 无效的情况。QSS文件能正常读取。这时候你可以在自己界面类构造函数中调用this->setParent(NULL)即不设置父窗口,此时再编译执行,观察有可能你的qss样式就生效了。QSS失效原因可能很多,此处排除一种。...原创 2022-08-29 16:54:38 · 541 阅读 · 0 评论 -
qt控制台程序无法正常退出并回收资源
许多人创建qt控制台程序会遇到这种情况,关闭控制台的时候,自己写的子线程无法正常退出,无法进入自己创建的对象的析构函数,总之程序非正常退出.为解决这种问题我想了几种思路,实践证明最后一种思路可以达到要求,没有耐心的可以直接看最后一项解决方案:1.通过QTextStream监听用户输入, 当用户有输入则退出程序. QCoreApplication a MyClass c; QString str; QTextStream in(stdin);//获取数据 in>>str; QTim原创 2021-03-05 14:13:14 · 2353 阅读 · 0 评论 -
QMap被莫名其妙插入空值或其他乱码无意义的值
出现这种情况是因为你在其他地方使用了下标访问QMap, 如果该key不存在会自动为你插入一组值. 所以尽量避免下标访问,或者下标访问前确定该key是否存在QMap::find(key).原创 2021-02-25 11:07:33 · 518 阅读 · 0 评论 -
检测ip是否在线的程序
实现ping某个网段的所有ip比如ping 192.168.111网段所有ip.以下是核心代码,在子线程中ping完一个ip后将结果发送到主线程进行解析处理.可以优化为多个子线程同时ping加速处理.void QThreadPing::run(){m_pCmd = new QProcess(this);while(1){//exec();for(int i = 1; i < 255; ++i){QString strTmp = QString(“ping “) + m_strIp原创 2021-02-22 16:21:59 · 493 阅读 · 0 评论 -
qt自定义widget的qss样式不生效
自定义widget即子类化QWidget实现自己个性化功能。如果出现QSS失效情况,在构造函数中调用以下函数即可生效:setAttribute(Qt::WA_StyledBackground);原创 2020-05-19 17:58:55 · 1219 阅读 · 0 评论 -
qt使用自定义属性方法让子控件动态改变qss样式
用动态改变QLabel样式为例(分为QLabel选择状态和未选择状态):1.自定义类继承自QLabel, 用Q_PROPERTY宏注册一个名称为select属性。2.QSS文件中预先设置QLabel属性QLabel#label2[select="false"]{......}QLabel#label2[select="true"]{......}3.在代码中使用以下语句改变其状态://选择状态ui.label2->setProperty("select", true);原创 2020-05-17 20:09:59 · 1635 阅读 · 0 评论 -
qt使用setObjectName方法让子控件动态改变qss样式
1.在qss文件中给同一个控件设定不同名称和样式QLabel#select{......}QLabel#unselect{......}2.程序中根据业务逻辑改变同一个控件名称应用qss中不同样式如://当QLabel被选中时改变样式如下:ui->label->setObjectName("select");//当QLabel没有被选中时改变样式如下:ui->label->setObjectName("unselect");...原创 2020-05-14 18:54:19 · 6270 阅读 · 0 评论 -
Linux下代码文件.h .cpp放到windows vs2010编译失败的问题。
代码没有任何问题。我怀疑是文件编码问题。我的处理方法是:新建TXT文档,重命名为xxx.h或xxx.cpp,然后把代码复制到新建的文档中。用新建的文档替换以前的.h和.cpp文件。所有从linux拷贝到windows的.h和.cpp都按如此方法替换。然后再用vs2010编译,成功编译。各位如果有其他更好的方法欢迎留言。...原创 2020-05-14 18:27:22 · 289 阅读 · 0 评论