qt 编程
文章平均质量分 63
qt 编程
hjjdebug
西方用26个字母表示世界,计算机用0,1两个数字表示世界,大道至简!
人类用6号元素碳来思考, 计算机用14号元素硅来演算,精妙绝伦!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
用systemd 来控制 qt 程序的启动, 停止 . 解决 qt.qpa.xcb: could not connect to display 问题
### 1. 先写一个QT 的测试程序 basic, ### 2. 再写这个程序的服务配置文件### 3. 测试: 启动服务失败:### 4. 状态查询### 5. 详细系统日志### 6. 错误原因: 环境变量不同所致!### 7. 命令行下复现问题.### 8. 错误到底是在什么地方出现的?### 9. 解决办法: 补足其所需要的环境变量.### 10. 最后的结果原创 2024-09-28 16:07:33 · 1561 阅读 · 1 评论 -
qtimer 测试研究
2. qtimer 默认是周期性timer, 时间到后会重新开始计时 若想使其成为一次性的, 可调用setSingleShot(true) 函数3. start(int msec) 当设置为0ms 时,会立即触发timeout, 不允许设负值(有警告输出),原创 2024-08-25 10:05:31 · 276 阅读 · 1 评论 -
QT中QProcess 的使用举例(完整代码)
目的: 用最简单的程序了解QT对象QProcess的使用原创 2024-02-03 12:19:10 · 1289 阅读 · 1 评论 -
QT中QThread, QTimer的使用(完整代码)
目的: 用最简单的程序1. 了解QT编程的框架2. 了解QThread 对象的使用3. 了解QTimer 对象的使用原创 2024-02-03 11:26:46 · 1131 阅读 · 2 评论 -
Qt5 信号与槽研究
QT5 信号与槽研究----------------------------------------一个主窗口给多个工作线程发信号,线程的槽函数是如何工作的?是并行的还是串行的?通过研究知道, 它是串行工作的. 而且纵然工作线程没有启动,它也可以工作.各个槽函数只是signal 依次调用各线程下的槽函数而以.signal-slot 机制跟线程没有关系,只跟对象有关系.下面贴上我的研究代码,里面还有其它thread 的相关知识.例如:线程是并行运行的,如何停止线程和重启线程等.可以参考注释.原创 2022-03-12 10:52:20 · 596 阅读 · 0 评论 -
源码编译debug版 Qt5.14.0
源码编译debug版 Qt5.14.01. 下载源码:https://download.qt.io/archive/qt/5.14/5.14.0/single/qt-everywhere-src-5.14.0.tar.xz522M 1.1. 解压缩: tax -xvf qt-everywhere-src-5.14.0.tar.xz 得到 qt-everywhere-src-5.14.0 目录, 来到这个目录进行配置和编译. 1.2. cd qt-everywhere-src-5原创 2022-07-08 14:28:09 · 1017 阅读 · 0 评论 -
运行错误: QObject: 无法创建子线程, 因为父线程位于不同的线程? 到底是什么鬼?
运行错误: QObject: 无法创建子线程, 因为父线程位于不同的线程? 到底是什么鬼?(Parent is QThread(0x7ffe4a5a1280), parent's thread is QThread(0x557f9e497e50), current thread is QThread(0x7ffe4a5a1280)父亲是QThread 0x7ffe4a5a1280, 父亲线程是QThread(0x557f9e497e50), 当前线程是QThread(0x7ffe4a5a1280) ?原创 2022-06-09 17:53:09 · 1319 阅读 · 0 评论 -
Qt ui 到底是什么?
写了很久QT 代码, 忽然对ui 到底是什么有了疑惑, 干脆认真研究一下ui 吧.用QtCreator 点几下鼠标生成一个标准的QMainWindow 框架程序. 先来看看主要程序$ cat mainwindow.cpp #include "mainwindow.h"#include "ui_mainwindow.h"MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainW原创 2022-04-30 10:14:33 · 3242 阅读 · 0 评论 -
Qt z-order 研究
Qt z-order 研究当用一个label 盖压另一个label 时, 遇到了一些问题, 就是达不到自己的期望操作.所以认真研究了一下z-order 序下面程序可以揭示qt z-order 是如何实现的? 背后的道理是什么?QtWidget 下有三个函数与z-order 相关,raise(),lower(),stackUnder(),看一下raise() 在assistant 文档中的描述(要学会用assistant,因为头文件中没写), 其它2个类似[slot] void QWid.原创 2022-04-10 16:42:03 · 2122 阅读 · 0 评论 -
qt5程序发布步骤
qt5程序发布步骤----------------------------------------1. 用ldd找直接依赖.2. 运行发布程序找全2级依赖,3级依赖等.编好了qt5程序multiview,发布的时候通过ldd找到程序的依赖库但是这样在新机器上运行仍然会出问题, 新机器没有qt环境.QT程序报错:qt.qpa.plugin: Could not find the Qt platform plugin “xcb” in “”启用qt插件debug模式export QT_DEBU原创 2022-03-06 17:04:18 · 542 阅读 · 0 评论 -
Qt5 线程的安全退出问题:
线程的安全退出问题:由于遇到了//QThread: Destroyed while thread is still running//已放弃所以认真的研究了一下这个问题,下面给出一个具体实验环境(qt5),即可说明问题.简单期间,直接上代码, 分三部分,header文件,cpp文件,pro文件, 重点在主窗口的析构,说明如何停止线程的运行.header 文件 cat *.h#ifndef _CLOCK_THREAD_H#define _CLOCK_THREAD_H#incl原创 2022-03-02 10:20:52 · 2209 阅读 · 0 评论 -
qt5.14.0 环境的搭建.
qt5.14.0 环境的搭建.这不是入门文章,也不是操作指导文章,只是自己的实际操作记录,对碰到相似问题的同学或有帮助, 对搞清真实安装到底都装了些什么或有帮助.************************************************************甲: x86-64环境的搭建************************************************************------------------------------第一步原创 2021-11-28 13:26:02 · 1480 阅读 · 0 评论 -
QT 的国际化支持操作要点.
----------------------------------------author: hjjdebugdate: Fri Aug 14 13:11:15 CST 2020----------------------------------------本篇文章帮助你理解如下几个问题:1. 翻译过程是如何进行的?2. 翻译的上下文是指的什么?3. 如何使用QT_TR_NOOP, QT_TRANSLATE_NOOP4. QObject::tr() 是如何工作的.5. lupdate 工原创 2020-08-14 13:35:03 · 1678 阅读 · 1 评论 -
白话讲解QT中, setSceneRect
白话讲解setSceneRectQGraphicsScene::setSceneRect ( qreal x, qreal y, qreal w, qreal h );w,h 是寬高值,无需解释.x,y 是左上角坐标,它是参考scene 坐标系的.讲清这个位置有点绕, 还是用白话说吧,能读懂需要一定基础. 首先有2个坐标系的概念场景坐标系,视口坐标系.问: setSceneRect(x,y,w,h), 其x,y 左上角坐标到底是什么意思? 哪个坐标系?答: 经研究, x,y左上角的数值是随.原创 2020-07-30 11:50:49 · 8659 阅读 · 6 评论 -
有条件的打印函数名称.
有条件的打印函数名称.1. 在qt中,打印函数名称可以用如下宏实现:#define PRINT_FUNC_NAME \qDebug()<<" in "<< __FUNCTION__这个宏,克服了在函数中输入不同的函数名称的烦恼!是的,我曾经依靠vim强大的编辑功能,去蛮力的在每个函数中来输入函数名称以达到要求,而现在有了这个宏,优雅多了.2. 如何有条件的打印, 例如当我定义了_DEBUG_INFO 时打印, 否则就不要打印.在#define 中嵌入#ifdef原创 2020-07-21 14:06:28 · 506 阅读 · 0 评论 -
文泉驿字体的使用:
文泉驿字体的使用:1. 安装文泉驿字体文件将字体文件直接拷贝到下面目录./usr/local/qt-4.8.6/lib/fonts我安装了文泉驿字体,先看看安装了哪些字体:# ls -l wenquanyi_*-rw-r--r-- 1 dbus dbus 1102155 Nov 6 2019 wenquanyi_120_50.qpf-rw-r--r-- 1 dbus dbus 715342 Nov 6 2019 wenquanyi_...原创 2020-06-30 14:54:07 · 1470 阅读 · 0 评论 -
QButtonGroup 实现QPushButton 互斥管理
/* QButtonGroup 实现QPushButton 互斥管理, 一个按钮按下,其它按钮会被自动弹起, 按下的按钮用背景标蓝表示* 功能简单,逻辑请看注释,直接上代码了.*/#include <QtGui>QString but_style=QString("\QPushButton:checked { /*按钮被选择时*/\ background-color:blue;\ }");int main(int argc, char *ar...原创 2020-06-30 11:11:05 · 1800 阅读 · 0 评论 -
QT 常用文件与目录操作
QT 常用文件与目录操作1. 删除一个目录及其下面的所有文件QString path = "/tmp/maps"QDir dir(path);dir.removeRecursively(); //qt4 不支持//用下述遍历方法QDir d(path); //path 不能为空,为空删出当前目录.小心!!d.setFilter(QDir::Files); //只删文件int i,count=d.count();for (i=0;i<count;i++)d.remove(d[i])原创 2020-06-10 13:43:36 · 568 阅读 · 0 评论 -
ubuntu18下qt4, qt5环境切换
ubuntu18下qt4, qt5环境切换我需要用qt4来开发, 因为我的arm环境是qt4的. 这样pc上装qt4 能保持与它最大的兼容性但我想学习qt5, 所以我安装了qt4, qt5.虽然我可以把代码写成qt4,qt5兼容的形式, 但是,有时候我还是需要切换一下qt4,qt5的编译环境假定qt4, qt5 都已经安装完毕,查看当前的环境hjj@hjj-Inspiron:~$ qm...原创 2020-02-20 10:48:02 · 1192 阅读 · 4 评论 -
linux qt程序向windows移植失败记.
linux qt程序向windows移植失败记.这是一个复杂的程序, 有源码,linux下可编译,想移植到windows 下运行失败原因不是因为是qt 程序,而是因为是linux 程序,因为牵扯到qt,也着实废了两天功夫.所以记录一下过程------------------------------------------------------------甲: windows 下qt...原创 2019-06-17 09:49:53 · 2312 阅读 · 0 评论 -
qt4-x11-4.8.5 全部的环境变量
罗列一下qt 使用的环境变量, 好在大部分不需要配置,否则真的累死掉了。看一种环境变量的用法: 如果环境变量为空,采用默认的设置。 if (qgetenv("QWS_MOUSE_PROTO").isEmpty()) { QWSServer::instance()->setDefaultMouse("None"); d_ptr->mouse =...原创 2015-10-16 16:18:01 · 2522 阅读 · 0 评论 -
Qt comboBox 绑定数据测试程序
cat testdlg.h#ifndef _TEST_DLG_H#define _TEST_DLG_H#include class QComboBox;class TestDlg : public QDialog{Q_OBJECTpublic: TestDlg(QWidget *parent=0);private slots: void slotComboChange原创 2015-10-10 16:13:12 · 4937 阅读 · 1 评论 -
qt 的一个bug
下面这个程序,不管你怎么狡辩, 我都认为是QT的bug.qt 版本为 Qt version 4.8.6$ cat test.cpp#include <QDebug>int main(){ QString str("test");// char *p = (char *)"hello"; char *p = str.toLatin1().data();...原创 2016-01-27 23:15:01 · 1180 阅读 · 0 评论 -
qt 杂项
1. qt 项目中添加debug 信息.在.pro 文件中添加如下语句:CONFIG += debug更简单的是生成pro文件时,用qmake -project CONFIG+=debug 一步完成也可以如下使用:qmake -project # project 配置中为加debug 选项qmake CONFIG+=debug # 生成带debug 的Makefile注意: CONFIG 要大写, debug要小写才管用, 这QT搞得!2. 窗口全屏显示 setWindowFlags(Qt::原创 2015-10-29 16:02:01 · 897 阅读 · 1 评论 -
QDataStream 用法
// QDataStream是数据流,相当于数据管道,屏蔽了数据转换过程。// 可以连接到一个设备上,这个设备可以是socket, file,或buffer// 数据的表达方式,实际上是大端序,即高位先来(高位在内存低地址).// 更符合人们的阅读方式。// QDataStream 支持QString 对象,丢弃了表达不太确切的buffer[xxxx]// 对象的长度是可以知原创 2015-11-24 12:27:57 · 19486 阅读 · 0 评论 -
qt QSharedMemory 用法
在linux 下使用Qt 的QSharedMemory, 碰到了不能创建共享内存的问题。sharemem.create 返回false. 经仔细研究,发现在linux 下, sharemem create 失败并不代表错误,它可能已经被创建了,所以不能再创建同名共享内存了。linux 共享内存,创建者进程退出时并不会释放共享内存,所以上述问题及易发生。而windows 在创建者原创 2015-11-20 13:23:03 · 5597 阅读 · 0 评论 -
qt 编程 hello-world
目的:消除qt 的神秘性,qt 就是一个支持qt库的c++ 程序。----------------------------------------qt 的控制台输出:----------------------------------------qt debugqDebug 就恰如printf, qDebug()就恰如stdout 对象,看下面例子。$ cat hello.原创 2015-08-04 11:16:02 · 667 阅读 · 0 评论 -
Qt 信号与槽研究:
Qt 信号与槽研究:author: hjjdebugdate: 2015年 08月 17日 星期一 09:36:31 CST----------------------------------------先看看简单的源码:----------------------------------------mainwindow.h, mainwindow.cpp#ifndef ...原创 2015-08-17 09:52:39 · 1556 阅读 · 0 评论 -
QMap 的增删改查
QMap 的增删改查,程序简单,就直接上代码了,附上运行结果。#include void showmap(QString str);QMap map;int main(int argc, char *argv[]){ (void) argc; (void)argv; QMap::iterator it;//增加 map.insert(1, 100); map.inse原创 2015-08-30 11:57:52 · 41167 阅读 · 0 评论 -
qt4.8.6 移植到 freescale (arm 平台)
----------------------------------------1. 准备arm 交叉编译工具链----------------------------------------我有 imx283 平台,选择其附带的 gcc-4.4.4-glibc-2.11.1-multilib-1.0_EasyARM-iMX283.tar.bz2 交叉编译工具链我把工具链解压到原创 2016-12-06 14:52:52 · 2985 阅读 · 1 评论 -
qt 下 utf8编码与gbk编码的相互转换(附实例)
/* * author: hjjdebug * date: 2017年 09月 01日 星期五 22:35:38 CST * 说明: * 有一个打印机,只支持gdk编码, 而我的程序是linux, utf8是本地编码. 我需要一个简单的utf8向gdk转换的程序. 网上大多不能直接使用, 下面附上自己整理和测试的代码. 花了我不少时间, QT 环境.代码解读: utf8 与 gdk ...原创 2017-09-01 22:45:03 · 18777 阅读 · 2 评论 -
qt 中文显示问题.(用printf 输出QString 内容)
$ cat main.cpp/** qt 中文显示问题.(用printf 输出QString 内容)* 当你一定要用printf查看字符编码转换时的测试程序* 环境: linux, 默认编码utf-8* 结论: qt 有一套处理编码的架构,我们用它的就可以了。* 例如,用qDebug()输出,不用printf 等* 如果一定要用printf, ...原创 2015-10-09 11:22:57 · 20921 阅读 · 0 评论 -
qt 多个字符串 序列化到文件注意事项。
当多个字符串 序列化到文件时,每个字符串尾要加endl来分隔.否则输入时会区分不了各个字符串。 见下例:#include #define CLIPFILE "clip.txt"QString commonStr[4]; //commonStr[0] 本测试程序未使用QString str[4]; //str[0] 本测试程序未使用int main()原创 2017-05-20 07:46:24 · 1363 阅读 · 0 评论 -
Qt 信号与槽研究2
一个信号对槽的调用: 会比直接函数调用耗费更多的时间/空间;但是,信号与槽实现了对象之间的松耦合. 使用灵活,方便。比较符合人的思维方式。这就是以易用性来换取时间或空间。下面实例讲解QT signal, slot, connect, emit 的含义。先上代码: 最简单代码,我不喜欢复杂的。两个类,一个A, 一个B, 声明两个对象,一个a,一个b. a 发信号调用b的槽原创 2016-05-30 12:16:24 · 553 阅读 · 0 评论 -
QTimer 的使用
QTimer *m_timer = new QTimer();m_timer->start();运行时出现QObject::startTimer: QTimer can only be used with threads started with QThread网上搜了一下,怎么写得一大堆都看不懂呢,自己追查吧。这是使用QTimer 不当报出的一个警告,到底那里使用不当呢?我...原创 2019-02-26 15:05:54 · 867 阅读 · 0 评论 -
嵌入式产品与Qt编程
甲:嵌入式产品设计考虑 1. 输出设备,显示屏,打印机,IO端口等. IO 端口可以通过操作文件描述符来控制. 用一个bit的信息可以控制IO的高低电平,也可以读入 打印机(串口打印机)可以通过操纵串行口来实现. 输出信息方式是文字. 显示屏是最主要的信息输出方式, 其向用户的展示信息的方式可以通过ascii, 文字,或者图形...原创 2019-05-14 15:26:21 · 1440 阅读 · 0 评论 -
QT 50种常用标准对象
常见的50 种 QT Object,下面按alpha排序, 有非默认构造的简单示例。它们的属性设置也有通用性。有不同的外观,有不同的属性行为.不同的用途.掌握他们是编程的基础. 可以参考>源代码QActionQActionGroupQCheckBoxQComboBoxQCursorQDateTimeQDateTimeEditQDialogQDialo原创 2015-08-20 10:59:08 · 1086 阅读 · 0 评论
分享