Qt
文章平均质量分 95
yizhou2010
这个作者很懒,什么都没留下…
展开
-
在Visual Studio/Qt Creator 中使用CMake安装和使用vcpkg包
vcpkg 是 Microsoft 和 C++ 社区维护的免费开放源代码 C/C++ 包管理器。它于 2016 年推出,可帮助开发人员将项目迁移到较新版本的 Visual Studio。vcpkg 已演变成 Windows、macOS 和 Linux 上开发人员使用的跨平台工具。vcpkg 拥有大量开放源代码库注册表和企业就绪功能,旨在通过支持任何构建和项目系统来促进开发过程。vcpkg 是核心的 C++ 工具,使用 CMake 中的脚本以 C++ 语言编写。原创 2024-08-07 14:51:07 · 966 阅读 · 0 评论 -
Qt单个实例运行 - SingleApplication
当Qt应用只允许启动一个实例时,可以使用QSingleApplication来实现。QSingleApplication是Qt提供的一个qt-solution,它不包含在Qt的library中,相关例程卡参考其对应目录下的doc和example。本文介绍的SingleApplication,是在Qt5中对QtSingleApplication的替换,它保留应用程序的主实例并终止每个后续实例,同时它也可以(如果启用)生成辅助实例(与主实例无关),并可以从辅助实例向主实例发送数据。SingleApplic原创 2020-05-08 17:32:38 · 3368 阅读 · 0 评论 -
Qt实现多语言切换 - Qt语言家
文章目录前言1. 生成ts文件1.1 在pro文件中添加1.2 语言文字在程序中说明1.3 生成ts文件1.4 修改ts文件2 生成qm文件3 加载qm语言包前言为了支持国际化最关键的地方是制作多国语言包,然后再实现动态切换。QT里面既可以采用命令行也可以采用Qt Creator的界面操作来生成,这里我们利用Qt Creator来生成多国语言包。基本流程是生成ts文件;生成qm文件;...原创 2020-04-29 14:47:20 · 3006 阅读 · 0 评论 -
QThread的使用一点经验
本文结合实际使用,初略的整理了一下Qt中使用Qthread进行多线程的编程方法。QThread实现方法有两种:继承与QThread并重写run函数;使用QObject::moveToThread函数;线程的创建及执行继承QThread使用方法创建一个继承于QThread的自定义类,实现其run()函数,在run函数中的都是在新线程中调用,自定义类中的其他函数都是在主线程中执行。在主线程中直接调原创 2017-12-29 17:07:03 · 1245 阅读 · 0 评论 -
Qt学习--Qt Plugin创建及调用2(插件管理器)
Qt Plugin创建及调用2–插件管理器转载http://blog.csdn.net/liang19890820简述Qt 本身提供了插件相关的技术,但并没有提供一个通用的插件框架!倘若要开发一个较大的 GUI 应用程序,并希望使其可扩展,那么拥有这样一个插件框架无疑会带来很大的好处。插件系统构成插件系统,可以分为三部分:主系统 通过插件管理器加载插件,并创建...转载 2018-04-16 15:43:58 · 3585 阅读 · 2 评论 -
Qt学习--Qt Plugin创建及调用3(接口间通信)
Qt Plugin创建及调用3(接口间通信)转载http://blog.csdn.net/liang19890820简述插件接口(Interface)的作用,就是提供一个与其他系统交互的方法。其他系统无需(也无法)了解内部的具体细节,只能通过对外提供的接口来与进行通信。在上一篇的PluginInterface接口中,我们定义了两个纯虚函数virtual void setIn...转载 2018-04-16 15:44:37 · 1995 阅读 · 5 评论 -
Qt学习--Qt Plugin创建及调用4(元信息metaData)
Qt Plugin创建及调用4(元信息metaData)JSON 与Qt插件的元信息 MetaDataQt插件的源码中,基本都能见到一个 xxx.json 的文件,这个文件中通常只包含一句:{ "Keys": [ "yyy" ]}我们可以猜到这个文件中的”Keys”应该是指定了与插件相关的关键字。那这个 .json 文件到底是如何起作用的?先来认识一下 JSON ...转载 2018-04-16 15:45:12 · 3548 阅读 · 0 评论 -
Qt学习 -- Meta_Object Model系统
Meta_Object Model系统Qt meta-object系统基于三个方面:QObject提供一个基类, 方便派生类使用meta-object系统的功能;Q_OBJECT宏,在类的声明体内激活meta-object功能,比如动态属性、信号、槽;Meta Object编译器(MOC),为每个QObject派生类生成代码,已支持meta-object功能。QObject定义...转载 2018-04-16 15:45:41 · 329 阅读 · 0 评论 -
Qt学习-- Qt Designer自定义插件(QSwitchButton)
Qt Designer自定义插件(QSwitchButton)创建自定义插件在使用Qt Designer设计窗体界面时,我们可以使用Widget Box里的窗体控件非常方便的绘制界面,比如拖进去一个按钮,一个文本编辑器等。虽然Qt Designer里的控件可以满足我们大部分的需求,但是有时候,也会产生一些自定义的需要,比如Switch开关。下面就以此为例,讲解一下如何创建自定义...原创 2018-04-16 16:41:13 · 4919 阅读 · 1 评论 -
Qt中使用OpenGL碰到的问题汇总
配置环境 vs2015 + Qt5.9 问题 - GLFW的配置 从官方下载glfw-3.2.1源代码后,通过Cmake默认配置,生成glew.sln,编译生成glfw3.lib,将其和include文件包含到Qt的pro文件中后,编译示例程序时,发生好多link错误:“error LNK2019: 无法解析的外部符号 - **”。 解决办法 在cmake时,将BUILD_SHARED_...原创 2018-05-09 17:00:13 · 6098 阅读 · 1 评论 -
GLFW在Qt中的配置问题
配置环境 vs2015 + Qt5.9从官方下载glfw-3.2.1源代码后,通过Cmake默认配置,生成glew.sln,编译生成glfw3.lib,将其和include文件包含到Qt的pro文件中后,编译示例程序时,发生好多link错误:“error LNK2019: 无法解析的外部符号 - ”。 示例代码如下:#include <GLFW/glfw3.h>int ma...原创 2018-05-03 11:57:50 · 3686 阅读 · 1 评论 -
Qt中Dlib安装配置
官网下载Dlib http://dlib.net/compile.html,目前最新版本是19.13cmake编译dlib 在VS中根据需要编辑debeg、release版本的dlib,Qt中调用win32:CONFIG(release, debug|release): LIBS += -LD:/Software/dlib-19.13/build-dlib/release/ -...原创 2018-06-04 14:48:16 · 1885 阅读 · 0 评论 -
Google Protocol Buffer在windows下的配置
简介什么是 Google Protocol Buffer? 假如您在网上搜索,应该会得到类似这样的文字介绍:Google Protocol Buffer( 简称 Protobuf) 是 Google 公司内部的混合语言数据标准,目前已经正在使用的有超过 48,162 种报文格式定义和超过 12,183 个 .proto 文件。他们用于 RPC 系统和持续数据存储系统。Protocol ...原创 2018-06-07 16:07:52 · 1644 阅读 · 0 评论 -
【转】QML插件扩展
文章目录一、基于QML文件的扩展方式基本概念具体步骤1. 建立插件工程2. 使用插件二、基于C++的插件扩展方式1. 更新插件工程2. 生成插件描述文件qmltypes附录注意:一、基于QML文件的扩展方式基本概念qmldir:用于组织自定义的QML插件,qmldir的具体写法可参考.qmltypes: qml插件的解释文件,用于QtCreator语法高亮。可通过Qt提供的工具qmlpl...转载 2019-02-18 15:22:40 · 1771 阅读 · 1 评论 -
Qt error C1128: 节数超过对象文件格式限制: 请使用 /bigobj 进行编译
在Qt编译过程中出现上述错误,原因为:对象文件超出最多可存放 65,536 (216) 个可寻址的节。 而 /bigobj 选项可将该地址容量增加至 4,294,967,296 (232)。解决办法:在pro文件中添加#win32:QMAKE_CXXFLAGS += /bigobj...原创 2019-02-26 11:45:46 · 4214 阅读 · 3 评论 -
Qt下获取DLL文件版本信息
#Qt下获取DLL等文件版本信息代码如下//头文件#include <windef.h>#include <winver.h>//获取文件版本信息bool FileVersion::getFileVersion(const QString &filename, QString &version){ std::string namest...原创 2019-05-17 17:22:48 · 1978 阅读 · 0 评论 -
Qt之QSS(样式表语法)【转】
简述样式规则选择器类型子控件伪选择器解决冲突级联效应继承性Namespaces中的部件设置对象属性更多参考简述Qt样式表(以下统称QSS)的术语和语法规则几乎和CSS相同。如果你熟悉CSS,可以快速浏览以下内容。样式规则QSS包含了一个样式规则序列,一个样式规则由一个选择器和声明组成,选择器指定哪些部件由规则影响,声明指定哪些属性应该在部件上进行设置。例如:QPushButton转载 2017-11-22 15:06:47 · 589 阅读 · 0 评论 -
Qt之QSS(动态属性)【转】
简述自定义属性限制示例效果源码QSS更多参考简述QSS可以定制应用程序的外观,无需关注Qt样式背后的魔力。从非常轻微到极其复杂的调整,样式表都可以做到。对于一个完全定制和独特的用户体验,QtQuick和QGraphicsView是更好的选择。自定义属性为了用户界面外观的动态变化,属性选择器可以与动态属性组合使用。动态属性在Qt4.2中引入,允许为编译时不存在的QObject属性分配属性转载 2017-11-22 15:13:12 · 1078 阅读 · 0 评论 -
Qt之界面换肤【转】
简述实现原理效果新建QSS文件编写QSS代码加载QSS更多参考简述常用的软件基本都有换肤功能,例如:QQ、360、迅雷等。换肤其实很简单,并没有想象中那么难,利用前面分享过的QSS系列文章,沃我们完全可以实现各种样式的定制!实现原理新建多个QSS文件为各个QSS文件编写对应的样式代码换肤时,进行全局切换效果新建QSS文件首先,新建两个(按需添加)后缀名为qss的文件,例如:bla转载 2017-11-22 15:41:21 · 1275 阅读 · 0 评论 -
Qt 在windows下应用程序的图标更改和exe发布
概述当我们用QT写好了一个软件,要把你的程序分享出去的时候,不可能把编译的目录拷贝给别人去运行。编译好的程序应该是一个主程序,加一些资源文件,再加一些动态链接库,高大上一些的还可以做一个安装文件。 QT开发的程序发布的时候经常采用两种方式:静态编译,可生成单一的可执行文件。动态编译,需同时附上需要的dll文件。下面我们以动态编译为例进行说明发布准备设置程序图标(Qt Creator环境)第一转载 2016-10-29 10:35:39 · 3096 阅读 · 0 评论 -
QtCreator输出信息到控制台
在使用QtCreator调试Qt程序时,有时我们希望输出一些信息到控制台上,其实设置很简单,步骤如下: 第一步:项目–运行 界面下勾选Run in terminal 第二步:在项目的pro文件中添加:CONFIG +=console第三步:添加头文件#include <QDebug>如此在程序的信息输出位置,可以用qDebug()进行输出,如qDebug()<<tr("hello world!原创 2016-11-01 15:48:37 · 26350 阅读 · 0 评论 -
QtTreePropertyBrowser控件的使用
前言之前,已经详细说明了QtPropertyBrowser的安装配置,可参见我的博客《QtPropertyBrowser控件在Qt5.5上的安装配置》,下面具体讲述如何使用QtPropertyBrowser中QtTreePropertyBrowser控件。添加内容QtTreePropertyBrowser是通过Manager来管理属性的,他提供了很多类型的管理,属性表里的属性条目,是通过Manage转载 2016-11-01 17:07:53 · 10237 阅读 · 2 评论 -
QtPropertyBrowser控件在Qt5.5上的安装配置
简介属性表是vs2003中最先引入的新控件,用于流量和设置大量的信息,现在,很多软件上都能看到它的身影,如vs,Qt Creator等IDE的详细设置里都离不开属性表。虽然,再Qt Creator里,属性表到处可见,但是,却没有集成到常用控件里面,为了弥补这一遗憾,文中推荐将类QtPropertyBrowser,用于类似属性表的开发。准备开发环境:Win7+Qt5.5.1 编译器为:msvc201原创 2016-11-01 11:45:02 · 12375 阅读 · 0 评论 -
Qt单元测试--基本使用
框架生成QtTestLib框架提供了一个简单易用的单元测试框架,首先我们通过Qt Creator自动创建一个测试框架。 创建名为MyTest的项目 选择QtGui和QtWidget(根据测试项目需要选定) 类名:MyTest,槽函数testQString,类型选择“性能测试”(会自动添加宏QBENCHMARK),同时勾选“使用测试数据库”,“需要QApplication”, - 使用测试原创 2017-10-18 14:30:46 · 19940 阅读 · 0 评论 -
Qt Plugin创建及调用
概述插件是一种遵循一定规范的应用程序接口编写出来的程序,定位于开发实现应用软件平台不具备的功能的程序。插件与宿主程序之间通过接口联系,就像硬件插卡一样,可以被随时删除,插入和修改,所以结构很灵活,容易修改,方便软件的升级和维护。Qt中的插件Qt提供了两种API用于创建插件:一种是高阶API用于扩展Qt本身的功能:如自定义数据库驱动,图像格式,文本编码,自定义样式等等;一种低阶API用于扩展Qt应原创 2017-10-17 16:07:55 · 8519 阅读 · 7 评论 -
QOpenGLWidget空白不显示绘图内容
在做一个简单的基于Qt的OpenGL绘图的时候,发现通过调用Qt自带类QOpenGLWidget时,只显示背景颜色,不显示绘制的内容。 最初的代码如下: 头文件#ifndef MYOPENGLWIDGET_H#define MYOPENGLWIDGET_H#include <QOpenGLWidget>#include <QOpenGLFunctions>class myOpenglWid原创 2017-10-24 16:44:07 · 7937 阅读 · 3 评论 -
Qt界面不自动刷新
问题描述 最近在使用Qt Creator进行界面编程的时候发现,在将MainWindow中一个Widget提升为另一个自定义的MyWidget时,发现MainWindow及MyWidget定义的其他控件对鼠标点击不实时刷新,如MainWindow有个check box在鼠标单击后不显示勾选或取消勾选,将MainWindow隐藏后显示或改变大小后,check box的状态才发生变化。解决办法 在进原创 2017-11-02 16:52:08 · 9389 阅读 · 1 评论 -
Qt之加载QSS文件【转】
简述新建QSS文件编写QSS加载QSS实现原理更多参考简述Qt中关于样式的使用很常见,为了降低耦合性(与逻辑代码分离),我们通常会定义一个QSS文件,然后编写各种部件(例如:QLable、QLineEdit、QPushButton)的样式,最后使用QApplication进行样式加载,这样,就可以让整个应用程序就共享同一个样式。新建QSS文件首先,新建一个后缀名为qss的文件,例如:sty转载 2017-11-22 14:36:00 · 492 阅读 · 1 评论 -
Qt之QSS(语法高亮)【转】
简述详细描述配置高亮更多参考简述语法高亮是文本编辑器用来显示文本的,特别是源代码,根据不同的类别来用不同的颜色和字体显示。这个功能有助于编写结构化的语言,例如:编程语言、标记语言,这些语言的语法错误显示是有区别的。详细描述语法高亮能帮助开发者很快的找到程序中的错误。例如,大部分编辑器会用不同的颜色突出字符串常量。所以,非常容易发现是否遗漏了分隔符,因为相对于其他文本颜色不同。Qt Creat转载 2017-11-22 14:47:14 · 538 阅读 · 0 评论 -
Qt之QSS(Q_PROPERTY-原始属性)【转】
简述属性实例效果QSS源码更多参考简述在Qt之QSS(样式表语法)一节讲过关于“设置对象属性”的用法,里面有一条很重要的原则是:任何可被识别的Q_PROPERTY都可以使用qproperty-语法设置。这里需要对Qt属性系统有一定的了解,详见:Qt之属性系统。属性下面我们以QLabel为例,讲解如何在QSS中使用属性。class Q_WIDGETS_EXPORT QLabel : pub转载 2017-11-22 15:18:03 · 1932 阅读 · 0 评论 -
Qt之QSS(Q_PROPERTY-自定义属性)【转】
简述问题解决方案实例效果源码QSS使用更多参考简述在Qt之QSS(Q_PROPERTY-原始属性)一节我们分享了Q_PROPERTY-原始属性的用法,但通常情况下我们需要很多自定义样式,例如:动态获取QSS样式,这时自定义属性就能很好的发挥其用武之地了。问题在使用QAbstractItemModel、QAbstractItemDelegate更新表格样式的时候,比如:背景色、前景色等转载 2017-11-22 15:23:33 · 780 阅读 · 0 评论 -
Qt之QSS(QDarkStyleSheet)【转】
简述效果QSS更多参考简述关于样式,前面介绍了很多内容,下面分享一个深色样式表,很值得借鉴!效果QSS/* * The MIT License (MIT) * * Copyright (c) <2013-2014> <Colin Duquesnoy> * * Permission is hereby granted, free of charge, to any person obt转载 2017-11-22 15:27:09 · 1044 阅读 · 0 评论 -
Qt之QSS(黑色炫酷)【转】
简述声明效果QSS更多参考简述Qt助手中有关于各种部件的QSS详细讲解,资源很丰富,请参考:Qt Style Sheets Examples。黑色炫酷 - 一款漂亮的QSS风格。之前博客中分享了很多关于Qt的样式效果,几乎都是基下面此样式。你可以直接使用,也可以随意转载,但请务必保留版权声明和许可声明,请参考“声明”部分。声明被授权人权利 被授权人有权利使用、复制、修改、合并、出版发行、转载 2017-11-22 15:30:44 · 1329 阅读 · 0 评论 -
Qt之QSS(白色靓丽)【转】
简述声明效果QSS更多参考简述Qt助手中有关于各种部件的QSS详细讲解,资源很丰富,请参考:Qt Style Sheets Examples。白色靓丽 - 一款漂亮的QSS风格。你可以直接使用,也可以随意转载,但请务必保留版权声明和许可声明,请参考“声明”部分。声明被授权人权利 被授权人有权利使用、复制、修改、合并、出版发行、散布、再授权及贩售软件及软件的副本。 被授权人可根据程序的转载 2017-11-22 15:34:22 · 1555 阅读 · 0 评论 -
Qt Creator编译出错:‘cl’不是内部或外部命令
在安装有vs2010的Win7系统下安装qt-opensource-windows-x86-msvc2010-5.5.1.exe,完成后打开Qt Creator,利用其向导新建一个Qt Application,构建时提示错误:‘cl’不是内部或外部命令查看Qt Creator的工具->选项->构建和运行, 构建套件(Kit) Qt Version 编译器 配置都正确。详细查看编译器选原创 2016-10-19 14:32:20 · 12661 阅读 · 1 评论