自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(55)
  • 资源 (1)
  • 收藏
  • 关注

原创 windows创建服务:更新服务信息乱码问题(ChangeServiceConfig)

因为小项目需要创建windows服务,安装微软官方示例一切都挺顺利,代码运行后发现配置的信息在系统里显示乱码。打开注册表发现的确是乱码。这就排除软件读取得问题,而是调用ChangeServiceConfig系统函数写入时就发生了乱码。让我在网上查找了一下午,都没有结果。主要是我是按照官方的示例创建的呀,既然是官方示例,出现bug的可能就极小。没法,静下心来看官方文档吧。功夫不负有心人,终于让我发现了问题。记录一下错误过程:出现问题的地方是windows的很多函数都会用宏预先处理调用函数。

2023-10-12 00:12:21 820

原创 Qt 设置软件的版本信息:QMake、CMake工程

当然Qt工程其实使用的windows平台下面的RC文件,那么我们也可以直接建立一个rc文件,在该文件中设置相关的软件信息。大部分的程序在运行之后都会提供一个关于的按钮,通过点击该按钮并弹出一个关于界面,则可以查看相关的程序信息。或者可以在主界面的右下角显示出当前软件的版本信息。对于大型的集成系统来说,可以通过一个统一的配置文件来读取软件的配置信息,该配置文件必须由集成系统提供,各个子模块软件提供信息。如果用户需要设置更多的信息,则需要自己去实现,可以将所有的版本信息放置于一个version.h的头文件中。

2023-10-05 12:23:57 2489

原创 windows10下Qt环境OpenCV配置【CMake环境】

一。工程创建我是用的是环境。工程配置要比简单不少,但道理是一样的,这里也不再描述。、OpenCV安装。我们进入官网的下载页面,选择我们需要的版本,我这里选择编译好的安装包。我安装在D盘:我们进入目录:我们进入这个目录里是我们需要的库路径,我们需要添加进系统变量中。下面是我添加的信息:配置好后,我们重启系统,以使配置的系统变量开始工作。到这里的配置就全部做好了。剩下的就是在开发中填写基本连接信息。到此就全部配置完了我们不需要再做其他工作。下的替我们做了更多的工作在上图中和使用的变量都是。

2022-10-22 22:28:45 2189 1

原创 QtConcurrent使用成员函数:QT5&QT6(老写法报错)的区别

QtConcurrent::run()还接受指向成员函数的指针。第一个参数必须是const引用或指向类实例的指针。在调用const成员函数时,传递const引用是有用的;传递指针对于调用修改实例的非const成员函数很有用。刚开始没仔细看文档,按老写法一直报错,网上找来找去没什么结果。最后在官网论坛发现留言里的提示,再去看了文档才发现问题。这个问题网上资料挺少提到。希望碰到的朋友能够搜索到这个提示。

2022-10-22 00:33:51 3477 5

原创 QGraphicsView自定义游标【解决修改光标样式不起作用】

我们想实现的功能是, 当光标悬浮时处于箭头状态,按下鼠标左键再显示成手形样式。如下图我们想要的效果。在默认实现中设置了鼠标样式,并且每次事件都会覆盖我们设置的样式。事件,让默认先覆盖,而后我们再设置样式,覆盖默认设置。游标(光标)的样式默认是。,这样才能真正改变视觉上的鼠标形状。覆盖我们的设置,我们必须重新实现。类中,对于更新视图内容应该用。方法,在方法内先传递。

2022-10-20 01:03:09 2210 2

原创 ThinkPHP数据表大小写问题:连接oracle数据库出错

一个老项目一直在运行,前几天手痒,维护时更新了thinkphp的ORM组件。当时运行一切正常,今天客户反馈不能自动同步主数据库了。ThinkPHP数据表大小写问题:连接oracle数据库出错。General error: 942 OCIStmtExecute: ORA-00942:这个错误一般是数据库表名错误。

2022-10-19 00:40:51 388

翻译 Glib中Gobject的创建:阅读Vte源码的基础知识

Version2.72AuthorsLicenseWebsiteSource, 亦称 Glib 对象系统,是一个程序库,它可以帮助我们使用 C 语言编写面向对象程序;它提供了一个通用的动态类型系统( GType )、一个基本类型的实现集(如整型、枚举等)、一个基本对象类型 - Gobject 、一个信号系统以及一个可扩展的参数 / 变量体系。GObject 告诉我们,使用 C 语言编写程序时,可以运用面向对象这种编程思想。

2022-10-08 23:39:31 1790

原创 析构函数为什么要定义为虚函数?

C++标准中规定:执行子类构造函数之前一定会执行父类的构造函数;同理,执行子类的析构函数后,一定会执行父类的析构函数。当指针指向的永远是最后的子类时,我们进行销毁时,都会按照前面的析构顺序全部析构。C++标准中允许我们使用基类指针指向、引用子类对象。这时候我们一旦销毁指针,就会遗漏子类对象的析构函数。所以我们就利用虚函数对析构函数声明。因为虚函数在子类覆盖基类时修改了基类一直维护的虚拟函数表。一旦基类开始析构,首先调用的就是被覆盖的析构函数,而这时的析构函数是子类覆盖基类后的析构函数。

2022-09-22 18:22:29 1743

原创 Qt内部的d指针和q指针:Q_DECLARE_PRIVATE是干嘛的

Qt内部的d指针和q指针是保证模块间的二进制兼容。也就是如果我们使用插件式开发项目,调用静态/动态库时,保证库的开发版本变化,仍然可以正常调用工作的技术,我们称之为二进制兼容。

2022-09-21 23:52:50 3195 3

原创 QT中什么时候使用智能指针:智能指针解决了什么

从使用的层面来讲,智能指针其实是对裸指针(普通指针)的类封装,这使得智能指针实质是一个对象,使用感觉就像一个指针。利用RAII(资源获取即初始化)技术来实现智能指针的特性。使用智能指针的目的,最主要的任务就是解决内存泄漏的问题。通过智能指针来执行垃圾回收的任务。智能指针的这种能力赋予了C++语言本身进行内存垃圾清理的实现。通俗的讲,智能指针就是帮你做了你忘记delete操作的工作。

2022-09-18 16:36:17 4109

翻译 QT:使用元对象编译器 (moc):Using the Meta-Object Compiler (moc)

该工具读取C++头文件。如果找到一个或多个包含 Q_OBJECT 宏的类声明,它将生成一个包含这些类的元对象代码的C++源文件。除其他事项外,信号和槽机制、运行时类型信息和动态属性系统都需要元目标代码。

2022-09-17 00:37:37 1419

翻译 The Meta-Object System:元对象系统

Qt 的元对象系统为对象间通信、运行时类型信息和动态属性系统提供了信号和槽机制。

2022-09-16 16:37:53 266

原创 QT_BEGIN_NAMESPACE

QT_BEGIN_NAMESPACE是QT系统自己使用的命名空间。也就是说以更快捷的方式定义QT自己的命名空间。关于命名空间可以参考C++的命名空间。这其实是指的同一种技术。当然我们也可以用相同方式定义一套宏。比如:MY_Begin_NAMESPACE等等。

2022-09-15 01:26:19 5461

原创 QT Model/View 编程:MVC模型视图编程:实例实现(二)

本篇继上一篇QT官方文档的QT Model/View 编程,实现了上一篇中全部的实例。这些样例并不能代表QT的MVC编程全貌。旨在更清晰的阐述上一篇教程的内容。所以这两篇内容并不能真正的教会我们怎样利用QT的MVC编程去实现真实的开发项目,只是让我们了解学习了应该怎样去开始工作。这两篇内容最大的用处是教会我们怎样理解QT中MVC编程模式,QT给了我们什么工具。具体的开发需要我们参考QT给我们的具体实现工具类。

2022-09-14 05:21:57 2040

翻译 QT Model/View 编程:MVC模型视图编程(一)

Qt包含一组项视图类,这些类使用模型/视图体系结构来管理数据和数据呈现给用户的方式之间的关系。该体系结构引入的功能分离为开发人员提供了更大的灵活性来定制项的表示,并提供了一个标准模型接口,以允许在现有项视图中使用各种数据源。在本文中,我们简要介绍了模型/视图范式,概述了所涉及的概念,并描述了项目视图系统的体系结构。解释了体系结构中的每个组件,并给出了示例,说明如何使用提供的类。

2022-09-05 03:33:35 2241

翻译 QT Container Classes——QT中的容器

Qt 库提供了一组基于C++标准模板的通用容器类。这些类可用于存储指定类型的项,可以实例化为具体的数据类型。C++的标准模板库(STL)中定义了一系列容器,并对应有若干容器类和操作容器用到的迭代器。QT中的容器,相比于STL中的容器,Qt中的容器具有STL的各种功能,更加轻巧、安全和便于使用,而且进行了速度和存储优化,另外,它们还​是线程安全的​,可以作为只读容器被多个线程访问。这些容器类比 STL 容器更轻、更安全、更易于使用。

2022-09-04 18:28:41 1969

原创 代理软件自动替换 QT 下载网址为清华源

下载加速需要使用清华源 QT 地址,以加速下载速度

2022-08-08 22:14:43 965

原创 pip更新最新版本

pip更新命令:python-mpipinstall--upgradepippython -m:-m 库内模块以脚本得方式运行。

2021-09-01 11:04:12 548

原创 vscode python 第三方库自动补全 第三方库的智能提示

VS Code python设置第三方包的智能感知因为使用Pyside6框架写Python程序,而QT自己的Qt Creator 在使用方面确实不如VScode轻便,故而使用VScode写Pyside6程序。但是VScode对于python第三方库(特别是通过pip安装的第三方库)在智能感知提示方面,老是找不到库文件。 经过一番全网搜索,发现都无法彻底解决问题。最终在快要崩溃时发现是VScode自动安装的Pylance插件惹的祸,之前听说过这个货N多毛病,今

2021-08-14 02:11:27 22547 15

原创 pip更新升级和删除包

pip检测更新命令:pip list –outdatedpip升级包命令:pip install --upgrade packagenamepip卸载包命令:pip uninstall packagenamepip更新方法1、直接更新(1)以管理员身份运行cmd命令(2)命令行中输入:python -m pip install --upgrade pip更新成功。2、直接更新失败,可能原因是新版本已存在,但是当前用的是旧版本,可尝

2021-08-08 11:25:04 769

翻译 Qt样式表参考:Qt Style Sheets

Qt样式表支持各种属性、伪状态和子控件,使得定制小部件的外观成为可能。可设置样式的小部件列表下表列出了可以使用样式表自定义的Qt小部件:

2021-06-19 21:49:20 1278

翻译 PySide6设置Widgets应用程序的样式:StyleSheet

Qt小部件应用程序根据平台使用默认主题。在某些情况下,系统范围的配置会修改Qt主题,应用程序的显示方式也会有所不同。但是,您可以管理自己的小部件并为每个组件提供自定义样式。作为示例,请查看以下简单片段:...

2021-06-17 23:05:32 7260 1

原创 PySide6使用树小部件显示数据

如果要显示树中排列的数据,请使用QTreeWidget。请注意,使用QTreeWidget并不是在树中显示信息的唯一路径。也可以创建数据模型并使用QTreeView显示它,但这不在本教程的范围内。

2021-06-17 22:06:03 2973 2

原创 PySide6使用表格小部件显示数据

如果您想显示排列在表中的数据,可以使用QTableWidget来显示,而不需要处理太多配置。请注意,使用QTableWidget并不是在表中显示信息的唯一路径。也可以创建数据模型并使用QTableView显示它,但这不在本教程的范围内。...

2021-06-17 21:42:36 7045 1

原创 PySide6创建对话框应用程序

本教程演示如何使用一些基本的小部件构建一个简单的对话框。这样做的目的是让用户在QLineEdit中提供自己的名字,点击QPushButton,对话框就会向他们致意。

2021-06-13 22:50:59 2146

原创 PySide6使用简单按钮

Qt对小部件样式和主题的支持使您的应用程序能够适应本机桌面环境。在本教程中,我们将向您展示如何使用Qt for Python处理信号和插槽。Signals和slot是一个Qt特性,它允许图形小部件与其他图形小部件或python代码通信。我们的应用程序创建了一个按钮,记录点击的按钮,你好!每次单击python控制台时都会显示一条消息。...

2021-06-13 21:05:42 4087 3

原创 第一个PySide6程序:HelloWold

与任何其他编程框架一样,一切从传统的"HelloWold"程序开始。以下是PySide6中"你好世界"应用程序的一个简单的示例:

2021-06-09 23:27:56 767

原创 QTabWidget的tabbar右侧背景色设置:QTabWidget背景色设置无效

在设置qss样式的过程中发现,QTabWidget的tabbar右侧空白区域的颜色总是无法设置,也就是tabbar的背景色。tab有自己的背景,容纳tab的区域,如下图标记所示:经查找资料,各种关键词搜索发现,这片区域是QTabWidget的背景区域,按正常套路可以通过stylesheet中的background属性控制,我尝试设置background却发现并不起作用。因为QTabWidget是继承于QWidget的,而在stylesheet文档中有这么一段话:【此图片信息来自lilong(D

2021-01-06 19:26:15 4468 1

原创 QT窗体禁止拖动缩放:使用setFixedSize方法

QT窗体禁止拖动缩放:使用setFixedSize方法需求:我想实现窗体在正常状态(Qt::WindowNoState)边框不能通过鼠标拖动改变窗体大小,不影响窗体的正常最大化和还原状态(1024*768)(屏幕的初始大小是可使用屏幕的大小)。实现:在构造方法里获取可以使用的最大屏幕尺寸。MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow){.

2021-01-03 21:20:18 14980

翻译 QT多线程:前章QThread Class官方文档

QT多线程前章QThread Class官方文档QThread类提供了一种独立于平台的方法来管理线程。 Header【头包含文件】: #include <QThread> qmake【QT项目文件qmake声明】: QT += core Inherits【类继承】: QObject Public Types【公有类型】enum Priority{ IdlePriority, LowestPriori...

2020-11-16 22:19:23 673

原创 设计模式之单例模式:QT C++ 11 实现与分析

需求与动机本文参考了朱宇清的文章。根据自己的理解增加了自己需要记下的知识点。在多线程中的原子操作做了补充。保证一个类仅有一个实例,并提供一个该实例的全局访问点。 ——《设计模式》GoF我们在构建软件系统时,常常需要保证资源的节约与效率。所以我们就必须设计一种特殊的类,保证它们在系统中只存在一个实例,或是延展为可控制实例数量的类。才能确保它们的逻辑正确性、以及良好的效率。逻...

2020-07-09 15:11:06 699

原创 (二)C++11 原生标准多线程:开始多线程

就像第一篇中分析的那样,多线程的概念还是很容易理解的。可进入实践,一切就没那么简单了。里面会有很多坑,一不小心就会出现不容易发现的错误。就如同第一篇末尾我实践的时候遇到的几个问题,及最后《C++ Concurrency in Action》提到的那个案例。第一篇中我遇到的问题是对C++自己的语法解析和thread库接口声明不了解。而回归到线程本身的主题上,生命周期对于多线程至关重要。如果我们忽...

2020-03-26 11:44:38 481

原创 (一)C++11 原生标准多线程:认识多线程

之所以称之为C++11原生标准多线程,因为在C++中C++11版本才加入的多线程。所谓原生也就是C++语言自带的,区别于其他库实现,比如POSIX,Boost,winAPI,QT等的多线程实现。进程进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在...

2020-03-10 23:42:31 1034

翻译 Settings QML Type:QML 持久的独立于平台的应用程序设置

Settings QML Type提供持久的独立于平台的应用程序设置。导入语句: import Qt.labs.settings 1.0 属性category: string fileName: string方法setValue(key, varvalue) sync() varvalue(key, vardefaultValue)详...

2020-03-07 20:31:11 710

翻译 QSettings Class:提供与平台无关的持久性应用程序设置

QSettings ClassQT中的QSettings类提供与平台无关的持久性应用程序设置。注意:此类中的所有函数都是可重入的。注意:这些函数也是线程安全的。

2020-03-04 21:46:56 887

翻译 QML与C++之间的数据类型转换

在QML和C ++之间交换数据值时,它们将由QML引擎转换为具有适用于QML或C ++的正确数据类型。 这要求交换的数据具有引擎可识别的类型。QML引擎为大量QT C++数据类型提供内置支持。此外,自定义C++类型可以注册到QML类型系统中,使它们可以用于引擎。该页面讨论了QML引擎支持的数据类型以及如何在QML和C ++之间转换它们。数据所有权当数据从C ++传输到QML时,数据...

2020-03-02 21:27:29 2358 2

翻译 QML与C++混合编程[官方文档汇编]

概述:QML架构实现的目的就是把UI设计与后台程序逻辑分离,实现快速的前端UI设计,提供简洁而功能丰富的动画效果。QML表象上更像Web开发中的前端脚手架,通过集成JavaScript的开发优势实现前端可视元素的编程控制。QT整个架构的灵魂就是强大的元对象系统( meta object system),通过元对象系统提供的信号和槽机制实现QT开发的解决方案。QML作为QT解决方案的重要组成...

2020-02-27 22:00:32 2072

翻译 QSplashScreen Class :Qt程序启动画面类

QSplashScreen Class :Qt程序启动画面类QSplashScreen类是QT环境提供的程序启动画面组件(widget:我喜欢称组件,当然大家都叫他部件),提供了一个启动屏幕,可以在应用程序启动期间显示它。为后续的应用程序初始化赢得时间。目录QSplashScreen Class :Qt程序启动画面类QSplashScreen类的名片信息:Public F...

2020-02-06 14:47:03 1331

原创 C++指针类型与强制转换

C++ 指针类型指针,用来描述内存地址,并通过提供指针操作来实现与内存相关的程序功能。指针是一个特殊数据类型,也可以理解为混合数据类型。指针具有数据类型信息及数据在内存空间的地址。C++指针的类型转换问题的由来:当我们想打印指针地址时,或是某些需求想得到地址值时,我们必须转化为字符类型给显示组件。比如label等等。。。问题分析:C++指针虽然像int类型或是long i...

2020-01-12 22:27:12 7503

原创 任何关系走到最后也不过是相识一场:念时光静好,心无恙

古剑楠的爱

2019-11-13 00:07:35 773

QT Model/View 编程官方教程实例

按官方文档实现QT Model/View 编程,Qt包含一组项视图类,这些类使用模型/视图体系结构来管理数据和数据呈现给用户的方式之间的关系。该体系结构引入的功能分离为开发人员提供了更大的灵活性来定制项的表示,并提供了一个标准模型接口,以允许在现有项视图中使用各种数据源。在本文中,我们简要介绍了模型/视图范式,概述了所涉及的概念,并描述了项目视图系统的体系结构。解释了体系结构中的每个组件,并给出了示例,说明如何使用提供的类。

2022-09-14

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除