Qt&Pyside
文章平均质量分 61
C++/Python Qt框架
十秒耿直拆包选手
这个作者很懒,什么都没留下…
展开
-
C++ 位运算
任何信息在计算机中都是采用二进制表示的,数据在计算机中是以补码形式存储的,位运算就是直接对整数在内存中的二进制位进行运算。由于位运算直接对内存数据进行操作,不需要转换成十进制,因此处理速度非常快。原创 2024-02-10 22:24:24 · 1221 阅读 · 0 评论 -
解析十六进制雷达数据格式:解析雷达FSPEC数据
【代码】解析十六进制雷达数据格式:解析雷达FSPEC数据。原创 2024-02-10 12:56:34 · 449 阅读 · 0 评论 -
解析十六进制雷达数据格式:解析雷达数据长度。
雷达数据长度使用4个字符(2个字节)标识,在这里是“0120”,转换为十进制数为288。原创 2024-02-09 20:56:58 · 424 阅读 · 0 评论 -
解析十六进制雷达数据格式:解析雷达数据类型。
雷达数据使用2个字符(1个字节)标识,在这里是“3e”,转换为十进制数为62。原创 2024-02-09 19:59:06 · 415 阅读 · 0 评论 -
C++:QString与string互相转换
string是C++标准库提供的类。原创 2024-01-21 15:27:34 · 370 阅读 · 0 评论 -
C++随机数生成:std标准库和Qt自带方法
是C++中的一个随机数函数,它生成一个范围在0到RAND_MAX之间的伪随机整数。原创 2024-01-13 09:45:06 · 449 阅读 · 0 评论 -
C++设计模式:单例模式(饿汉式、懒汉式)
由于在定义静态变量的时候实例化单例类,因此在类加载的时候就已经创建了单例对象,可确保单例对象的唯一性。原创 2023-12-25 23:05:48 · 883 阅读 · 0 评论 -
Qt窗体、控件常用属性设置
QDesktopWidget 提供了详细的位置信息,其能够自动返回窗口在用户窗口的位置和应用程序窗口的位置Qt5开始,QDesktopWidget官方不建议使用,改为QScreen。Qt 6.0 及之后版本,QDesktopWidget 已从QtWidgets 模块中被彻底移除。如果是多屏幕,其每个屏幕的是不一样的,起始坐标不同,第一个屏幕的起始坐标是(0, 0),第二个屏幕的起始坐标是(1920, 0)。原创 2023-12-19 12:20:52 · 445 阅读 · 0 评论 -
error: C2039: “qt_metacast“: 不是 “***“ 的成员
error C2039: "qt_metacast": 不是 "radartrack::Base_track_data" 的成员最近在使用Qt开发,自定义的数据类在继承数据抽象类和QObject类时总是报“qt_metacast 不是不是 "radartrack::Base_track_data" 的成员”。原创 2023-12-18 20:03:57 · 563 阅读 · 0 评论 -
Qt QStandardItemModel用法(超级详细)
本实例的主窗口从 QMainWindow 继承而来,中间的 TableView 和 PlainTextEdit 组件采用水平分割条布局。在 Action 编辑器中创建如图 2 所示的一些 Action,并由 Action 创建主工具栏上的按钮,下方的状态栏设置了几个 QLabel 组件,显示当前文件名称、当前单元格行号、列号,以及相应内容。图 2 实例中创建的 Action#define FixedColumnCount 6 //文件固定 6 列//当前文件//当前单元格行列号。转载 2023-12-17 23:42:16 · 1346 阅读 · 0 评论 -
Qt对excel操作
Qt库中自带对excel操作的模块QAxObject,QAxObject是Qt提供给程序员从代码中访问Office的对象类,其本质上是一个面向微软操作系统的COM接口。QAxObject将所有Office的工作簿、表格、文档等都作为其子对象,程序员通过调用。()方法执行各对象上的具体操作。()这个统一的方法来获取各个子对象的实例,再用。原创 2023-12-08 19:24:01 · 332 阅读 · 1 评论 -
Qt:设置部件大小 sizeHint、minimumSizeHint、sizePolicy、stretch factor
在Qt Desiner中拖一个Spacer出来,设置Spacer的sizeHint的宽度为200,但是界面上的Spacer的宽度没有达到200。这四个数字代表了四个部件的宽度比例为1:1:1:1,我们可以修改部件之间的比例关系,选中比例值,将值改为:“2,1,1,1”,这时,第一个部件就是其他三个部件的2倍宽度。sizeHint属性保存了部件的建议大小,对于不同的部件,默认拥有不同的sizeHint;如果将它更改为Fixed,这样界面上的Spacer马上变宽了,现在它的实际高度才是sizeHint的高度。转载 2023-11-21 18:19:05 · 573 阅读 · 0 评论 -
Qt开发岗位必备《Qt类图专业技术宝典》
Qt Test是Qt中提供单元测试框架和模拟鼠标和键盘事件的功能的模块。它提供了一系列的类和功能,使开发者能够轻松地进行网络编程,包括网络请求、服务器和客户端的实现、数据传输等。它提供了一组类和函数,使开发者能够方便地读取和写入XML文档,并进行XML数据的处理和操作。需要注意的是,在Windows平台上,QtOpenGL模块还支持与Direct3D的集成,即可以使用Qt的API与Direct3D进行交互和渲染。Qt Multimedia是Qt中用于处理多媒体内容的模块,包括音频和视频的播放、录制和处理。转载 2023-11-19 15:12:27 · 94 阅读 · 0 评论 -
Qt学习:QWaitCondition说明和使用
在主线程中,调用 Send(&packet) 发送后,假如通信线程立即收到回包,在主线程还来不及调用 wait() 的时候,已经先 wakeAll() 了,显然这次唤醒是无效的,但主线程继续调用 wait(),然后一直阻塞在那里,因为该回的包已经回了。由此可见,通过 mutex 把有严格时序要求的代码保护起来,同时把 wakeAll() 也用同一个 mutex 保护起来,这样能保证:一定先有 wait() ,再有 wakeAll(),不管什么情况,都能保证这种先后关系,而不至于摆乌龙。原创 2023-11-03 16:21:01 · 610 阅读 · 0 评论 -
QT 线程之QSemaphore(深入理解)
QSemaphore也可以被用来使线程的执行顺序化,和的方法相似。信号量和互斥量的不同在于,信号量可以在同一时间被多于一个的线程访问。在博文中通常将QSemaphore具体使用定义为 生产者/消费者 模式,作者觉得这样子定义可以将的更详细、明白,理解也更容易理解一些。本文详解QSemaphore 线程同步过程中,有两个栗子在这里给大家举一下,看完本文更深入的了解生产者/消费者。文章项目结构:栗子 一、 QSemaphore 线程同步 生产者/消费者调用实现初始化全局变量实现生产者线程。原创 2023-10-28 10:36:04 · 223 阅读 · 0 评论 -
Qtcreator console 中文 乱码
开发环境:windows11 x64 位。原创 2023-10-14 21:24:15 · 203 阅读 · 0 评论 -
Qt 读写数据流文件(转 CppGuiProgrammingWithQt4)
update 20140525:添加线程处理,在读取大文件时优化,防止 app 出现 application 假死状态。update 20140525:添加线程处理,在写入大文件时优化,防止 app 出现 application 假死状态。原创 2023-10-12 22:33:57 · 389 阅读 · 0 评论 -
Qt 体系 Model/View 中 role 理解
在 Qt 的 Model/View 体系中,经常需要用不同的 role 来不同的数据类型。在学习这里时我也有过疑惑为什么在 setData 方法中要用 EditRole 来保存修改的数据,而在 data 方法中要用 DisplayRole 来显示数据,同样的数据对应不同的 role?后来才知道自己钻了牛角尖,role 在 Model/View 体系中对应不同的 “功能卡”,当你要显示某些数据时,对应的功能卡应当是 DisplayRole;当你要存储某些数据时,应使用 EditRole 功能卡。原创 2023-10-05 08:42:51 · 129 阅读 · 0 评论 -
Qt model/view 理解 2
这是我对 Qt 的 model/view 内容理解的第二篇 blog,在第一篇文章中,介绍 QTableView 和 QAbstractTableModel,实现显示了对数据源的显示,但是显示的格式和修改的模式都是按照 View 控件的自显示方式。b)设置在生成的修改控件中显示的内容。在 TrackModel 类中的 setData 方法应当注意,data 的值应从 value 得出而不是通过 model 的 data 得出,model 得出的数据是原来保存的,而不是用户修改的。Track h 文件。原创 2023-10-05 08:42:11 · 301 阅读 · 0 评论 -
Qt model/view 理解01
在 Qt 中对数据处理主要有两种方式:1)直接对包含数据的的数据项 item 进行操作,这种方法简单、易操作,现实方式单一的缺点,特别是对于大数据或在不同位置重复出现的数据必须依次对其进行操作,如果现实方式改变,则在改动程序过程中还需对数据进行重新编码操作,费工费资源。2)采用 model/view 模型,将数据 -- 模型 -- 视图三者串起来,通过约定的接口保证数据的正确显示和显示方式的多样性,当需要重新调整显示时,只需修改视图,保证接口不变,即可以新 view 显示数据。原创 2023-10-04 20:56:13 · 238 阅读 · 0 评论 -
Qt 中的多线程技术
QMutex 就是提供互斥操作的基本类,它可以让 A 线程访问某个全局变量时加上锁,那么在 A 线程没有执行完的情况下,B 线程是无法访问这个变量的,直至 A 线程处理完后进行解锁操作。线程切换的开销要小很多,这是因为每个进程都有属于自己的一个完整虚拟地址空间,而线程隶属于某一个进程,与进程内的其他线程一起共享这片地址空间,基本上就可以利用进程所拥有的资源而无需调用新的资源,故对它的调度所付出的开销就会小很多。如上文所述,与进程不同的是,多个线程共享同一个进程的地址空间,切换的前后会保存上下文环境。转载 2023-10-03 22:48:11 · 219 阅读 · 0 评论 -
Qt 核心剖析: moc(转)
这下了解了:正是对 Q_OBJECT 宏的展开,使我们的 Test 类拥有了这些多出来的属性和函数。这个函数返回 QMetaObject 元对象类的实例,通过它,你就获得了 Qt 类的反射的能力:获取本对象的类型之类,而这一切,都不需要 C++ 编译器的 RTTI 支持。也就是说,如果 A 继承了 QObject 并且定义了 Q_OBJECT,B 继承了 A 但没有定义 Q_OBJECT,C 继承了 B,则 C 的 QMetaObject::className () 函数将返回 A,而不是本身的名字。转载 2023-09-27 07:52:02 · 133 阅读 · 0 评论 -
Qt获取屏幕(桌面)的大小或分辨率
Qt提供QDesktopWidget和QScreen两个类获取屏幕大小。Qt5开始,QDesktopWidget官方不建议使用,改为QScreen。Qt 6.0 及之后版本,QDesktopWidget 已从QtWidgets 模块中被彻底移除。原创 2023-09-27 07:47:28 · 1497 阅读 · 0 评论 -
QFrame类学习笔记
成员函数原型描述构造函数析构函数获取QFrame的框架大小设置QFrame的框架大小获取阴影样式,设置阴影样式,获取框架的形状设置框架的形状获取框架的形状和阴影样式设置框架的形状和阴影样式获取框架线的宽度设置框架线的宽度获取框架中线的宽度设置框架中线的宽度。原创 2023-09-26 23:23:59 · 185 阅读 · 0 评论 -
将 Qt Designer 的 ui 文件转换为 PySide2 使用的.py 文件
20201206 修订:在 Pyside2 的 5.15.2 版本中,从 ui 生成 py 文件过程,命令从 “uic” 变为 “pyside2-uic”Qt Designer 设计的 ui 文件,就是一个 xml 文件,通过 pyside-uic 可以转换成标准的.py 文件。通过 QtDesigner 创建的 ui 如图:我们切入正题:1:首先要保证将 pyside2-uic.exe 加到环境变量 Path 中。根据我的 Python,PySide2 安装路径。原创 2023-09-08 15:10:52 · 931 阅读 · 0 评论 -
下载安装包,安装 PySide2 到 windows 系统
20201206 修订:修改 PyCharm 中工具的配置描述。原创 2023-09-08 15:06:27 · 893 阅读 · 0 评论 -
CMake+CLion+Qt配置
在这里我下载MSVC的工具包,并没有下载Visual Studio。原创 2023-09-08 13:44:36 · 571 阅读 · 0 评论 -
QtCreator 代码自动补全、提示设置及自动补全变慢解决方案
我们在使用 QtCreator 编程时,希望 IDE 能够自动进行代码提示,补全,便于程序员使用。在这里我把自己的设置和使用心得与大家分享,希望能够对你有所帮助,如有不对,希望能够指出,帮助我进步。把复选框对号去掉,重启 ide 后即可。目前 “Qt 6.2.1 (MSVC 2019, 64 bit)” 测试可用。最主要是最后一行标红,这个是进行代码提示的阈值设置,我这里设置的当输入 2 个字符时进行代码提示。在 帮助 -> 关于插件 ->C++ 选项卡中,取消 ClangCodeMode。原创 2023-08-16 13:06:08 · 2556 阅读 · 1 评论 -
QtCreator 配置 MSVC 编译工具
在官网下载的 Qt 都是配置 mingw,没法使用 webenginewidgets,只有使用 msvc 编译的 Qt,才带有 web 控件。原理都是下载 Visual Studio 安装,使用其中的 msvc 工具,如果只下载 msvc 而不必下载使用 VS 其它工具,则会节省很多资源。原创 2023-08-16 08:32:03 · 516 阅读 · 2 评论 -
Qt多线程编程之QThreadPool 和 QRunnable使用
在一个应用程序中,我们需要多次使用线程,也就意味着,我们需要多次创建并销毁线程。而创建并销毁线程的过程势必会消耗内存。而在日常开发中,内存资源是及其宝贵的,所以线程池QThreadPool就建议用来管理多个线程的并发执行。在程序逻辑中经常会碰到需要处理大批量任务的情况,比如密集的网络请求,日志分析、加载工程中多个子工程、保存工程等等。一般会创建一个队列,用一个或者多个线程去消费这个队列,一般也要处理队列的加锁和解锁的问题。QThreadPool 类管理 QRunnable /QThread 的集合。转载 2023-08-12 09:29:26 · 198 阅读 · 0 评论 -
Qt学习:迁移到子线程的变量应用处置
在写 Qt 过程中,目前会遇到大量数据处理,数据量 200W 以上,如果将处理数据操作在主线程中进行,会导致 UI 界面冻结,影响用户体验,所以将处理数据的过程迁移到子线程中是良好的处理手段,一般处理数据的对象都会定义为指针类型。在处理延后子线程数据时,要考虑创建的指针对象存在的线程,如果在主线程,说明没有启动子线程,直接 delete 即可,如果不在主线程中,则不用手动处理,调用子线程方法,系统会自动处理。如果将对象迁移到子线程的步骤延后,就会有创建指针,迁移到子线程,创建指针,未迁移到子线程两种情况。原创 2023-08-07 17:10:32 · 113 阅读 · 0 评论 -
Qt学习:Qt 进程和线程之四,线程实际应用
为了让程序尽快响应用户操作,在开发应用程序时经常会使用到线程。大多数情况下,多线程耗时操作会与 UI 进行交互,比如:显示进度、加载等待。。。让用户明确知道目前的状态,并对结果有一个直观的预期,甚至有趣巧妙的设计,能让用户爱上等待,把等待看成一件很美好的事。原创 2023-08-07 16:55:30 · 732 阅读 · 0 评论 -
Qt中qmake、构建、运行、清理的区别
Qt 中默认的执行顺序:qmake--- 编译 --- 运行。原创 2023-08-07 16:44:35 · 774 阅读 · 0 评论 -
Threads and QObjects
QObejct 可以在多线程中调用,通过信号可以调用在其它线程中的槽函数,而且可以传递事件给其它线程中的对象。这使得每个线程都有自己的事件循环成为可能。QThread 派生于 QObject。QThread 会发射信号通知线程启动或终止执行任务,并且也会提供槽函数使用。原创 2023-08-07 16:41:38 · 65 阅读 · 0 评论 -
Qt多线程编程之敲开QThread类的大门
在阅读本文之前,你需要了解进程和线程相关的知识,详情参考《Qt 中的多线程技术在很多文章中,人们倾向于把 QThread 当成线程的实体,区区创建一个 QThread 类对象就被认为是开了一个新线程。当然这种讨巧的看法似乎能快速的让我们入门,但是只要深入多线程编程领域后就会发现这种看法越来越站不住脚,甚至编写的代码脱离我们的控制,代码越写越复杂。最典型的问题就是“明明把耗时操作代码放入了新线程,可实际仍在旧线程中运行”。转载 2023-08-04 17:23:19 · 70 阅读 · 0 评论 -
Qt QThread的moveToThread方法使用
从 Qt4.4 版本之后,因为 QThread 的 run 方法创建新线程这样实现与 Qt 设计的理念不符,Qt 主推使用 moveToThread 方法来创建新线程。2:操纵 Worker 类对象的 Controller 类。1:要放入新线程的 Worker 类。原创 2023-08-04 16:39:15 · 1189 阅读 · 0 评论 -
Clion 搭建Qt projects
CLion无法直接引入由qmake创建的项目,但是可以打开从qmake转换成cmake的Qt项目。qmake是Qt自有的构建系统,从Qt4版本开始,Qt系统开始支持CMake进行构建。这种设定方式既可以通过在CMake的设置对话框中传入“-D”或者在find_package命令之前通过set命令设置。在add_executable()命令列出你的“.cpp”文件、“.ui”文件和“.qrc”文件。当find_package命令运行成功后,接下来给CMake配置Qt的安装配置。原创 2023-11-05 19:54:07 · 349 阅读 · 0 评论 -
Qt 中的强制类型转换:qvariant_cast ,qobject_cast
在 C++ 开发中经常要进行数据类型的强制转换。刚开始学习的时候,直接对基本数据类型强制类型转换,如 float fnum = 3.14;随着 C++ 标准的发展,又提供了 dynamic_cast、const_cast 、static_cast、reinterpret_cast 等高级安全的强制转换方法。dynamic_cast: 通常在基类和派生类之间转换时使用,run-time cast。const_cast: 主要针对 const 和 volatile 的转换。转载 2023-06-18 23:55:41 · 728 阅读 · 0 评论 -
QtCreator屏蔽指定警告:如C4819等
QtCreator 频繁报出warning: C4819: 该文件包含不能在当前代码页(936)中表示的字符。在工程文件.pro里面添加,然后clear项目重新编译即可。在工程文件.pro里面添加。预编译代码到公共头文件里面。方法二:(屏蔽所有警告)格式以防止数据丢失。方法一:(屏蔽此警告)原创 2023-06-20 17:57:53 · 486 阅读 · 0 评论 -
QtCreator 编译时提示 warning C4819 的解决办法
QtCreator 保存文件默认是 utf-8 格式的,但是不带 BOM。我们可以修改一下设置,让它每次保存是都保留 BOM。这个警告我们可以忽略,但是编译大一点的项目时经常会提示几十个这样的警告,其实将我们的代码保存为 utf-8 带 BOM 格式的文件就可以了。warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失。QtCreator 编译时提示 warning C4819 的解决办法。原创 2023-06-19 22:36:38 · 425 阅读 · 0 评论