
QT
晴树SEU
这个作者很懒,什么都没留下…
展开
-
QlistWidget 去掉item选中的虚线框
QListWidget{outline:0px;}参考:QlistWidget怎么去掉item选中的虚线框-优快云论坛转载 2021-09-23 15:57:22 · 2467 阅读 · 0 评论 -
QT中获取根Widget的方法 Top(base) parentWidget
https://stackoverflow.com/questions/6551456/how-to-get-the-topbase-parentwidget-in-qtI am creating a software that must be accessible by parent to childrenWidget (or children of the children of the children....) and from the children to the parentWidget转载 2020-12-24 10:58:23 · 2204 阅读 · 0 评论 -
(三十五)Model/View Programming
Qt官方文档Model/View Programming一、Model/View架构简介Qt4推出了一套新的项视图类,它使用Model/View架构来管理数据与表示层的关系。Model/View架构带来的功能上的分离给了开发人员更大的弹性来定制数据项的表示,并且他还提供一个标准的model接口,使得更多的数据源可以被项视图类使用。本文简要介绍了Model/View架构,对涉及的概念做了简单的概述,阐述了项视图系统。架构中的每一个组件都将一一作出解释,同时将用实例对如何使用这些类进行说明。...转载 2020-12-18 22:59:20 · 304 阅读 · 1 评论 -
QLabel中设置背景图片的4种方法
// [1] 图片不重复,可设置缩放比例,不可动态缩放 QSvgRenderer svgRender(QString(":/images/logo.svg")); QPixmap pixmap(20,20); QPainter painter(&pixmap); svgRender.render(&painter); m_iconLabel->setPixmap(pixmap); // [2] 图片不重复,可自由缩放...转载 2020-11-29 15:03:24 · 7479 阅读 · 4 评论 -
Qt之为QTabWidget重新实现鼠标双击事件
0、前言在Qt中如果想重新实现某一事件(比如鼠标双击事件)有两种方式:重载该类,重新实现该事件函数 使用事件过滤器1、为QTabWidget重新实现鼠标双击事件废话不多说先上效果图,双击QTabWidget空白处会新建标签页,下图是我自己写的文本编辑器1.1 、第一种实现方式(重载)代码:// 首先我们继承QTabWidgetclass MyTabWidget : public QTabWidget{Q_OBJECTprotected: // 然后重新实现...转载 2020-11-28 23:27:23 · 2923 阅读 · 0 评论 -
样式表明细 Qt Style Sheets Reference
Qt Style Sheets ReferenceQt Style Sheets support various properties, pseudo-states, and subcontrols that make it possible to customize the look of widgets.List of Stylable WidgetsThe following table lists the Qt widgets that can be customized usi转载 2020-11-23 01:31:01 · 459 阅读 · 0 评论 -
Qt窗口模型 QSS使用
Customizing Qt Widgets Using Style SheetsWhen using style sheets, every widget is treated as a box with four concentric rectangles: the margin rectangle, the border rectangle, the padding rectangle, and the content rectangle. The box model describes ..转载 2020-11-22 23:57:30 · 265 阅读 · 0 评论 -
QT 之QSplitter 切割窗口的两种方法
1.自下而上(嵌套法)://窗口布局 rightSplitter = new QSplitter(Qt::Vertical); rightSplitter->addWidget(messagesTreeWidget); //在右窗口中添加一个邮件列表 rightSplitter->addWidget(textEdit); //显示文本邮件 rightSplitter->setStretchFactor(...原创 2020-11-22 21:46:15 · 1597 阅读 · 0 评论 -
QTabBar 如何设置N个Tab标签样式
QTabBar::tab{ min-width:75px;background-position: center;background-repeat: no-repeat;} \QTabBar::tab:first{background-image: url(:/img/OrgnazationIcon);} \ QTabBar::tab:middle{background-image: url(:/img/RoomIcon);} \ QTabBar::tab:last{background-imag.原创 2020-11-22 01:15:30 · 2243 阅读 · 2 评论 -
Qt 之设置 QWidget 背景色
简述QWidget是所有用户界面对象的基类,这意味着可以用同样的方法为其它子类控件改变背景颜色。Qt中窗口背景的设置,下面介绍三种方法。使用QPalette 使用Style Sheet 绘图事件一般我不用QSS设置窗口背景,也不建议使用。(这里是对于窗口而,如果是子部件当然可以)。因为窗口使用QSS设置背景之后,若子部件不使用同样的方式来设置,默认则会继承父窗口的样式。使用QPalette使用QPalette来设置背景色 m_pWidget = new QWi..转载 2020-11-21 16:52:50 · 2984 阅读 · 0 评论 -
QT开发(五)——窗口组件和窗口类型
一、窗口组件图形用户界面由不同的窗口和窗口组件构成,<QtGui>头文件包含窗口组件,对应QT中的GUI模块,QT以组件对象的方式构建GUI。组件的类型:A、容器类(父组件)用来包含其他的界面组件B、功能类(子组件)用于实现特定的交互功能QT中没有父组件的顶级组件叫窗口。QWidget是容器组件,继承自QObject类和QPaintDevice类,QObject类是所有支持QT对象模型的基类,QPaintDevice类是QT中所有可绘制组件的基类。QWidget组件转载 2020-11-21 12:19:24 · 847 阅读 · 0 评论 -
Qt开发学习教程
一、Qt开发基础学习教程本部分博客主要根据狄泰学院唐老师的《QT实验分析教程》创作,同时根据天山老妖自己的理解和网络搜集的资料及QT官方文档对部分知识点进行了扩展。本系列博客由天山老妖创作,发布于51CTO博客上。狄泰学院网站:http://course.dt4sw.com/Qt开发基础学习教程目录如下:QT开发(一)——QT简介https://blog.51cto.com/9291927/1856911QT开发(二)——QT开发环境搭建https://blog.51cto.com/9291转载 2020-11-20 16:32:35 · 1386 阅读 · 0 评论 -
QtCreator插件开发(三)——QtCreator架构
一、QtCreator架构简介QtCreator的核心就是一个插件加载器,其所有功能都是通过插件实现的。QtCreator架构如下:QtCreator的核心功能由Core Plugin (Core::ICore)实现。插件管理器(ExtensionSystem::PluginManager)对插件协作提供了简单方式,允许插件为其他插件扩展提供钩子。PluginManager负责插件的加载,管理,销毁等工作。Core插件是QtCreator最基础的插件,提供了向界面增加菜单等功能。QtCreat转载 2020-11-20 16:31:22 · 1664 阅读 · 0 评论 -
QtCreator插件开发(二)——QtCreator菜单和菜单项
QtCreator插件开发(二)——QtCreator菜单和菜单项一、QtCreator菜单栏简介1、QtCreator菜单简介QtCreator菜单栏如下:QtCreator默认菜单包括“文件”、“编辑”、“工具”、“窗体”、“帮助”。“构建”、“调试”、“分析”由插件提供,不是QtCreator的默认菜单。在“帮助”菜单中的“关于插件”对话框中将所有可以取消的插件取消后重启QtCreator,得到QtCreator默认菜单如下:2、Core::ActionManager简介QtCr转载 2020-11-20 16:30:01 · 1043 阅读 · 0 评论 -
QtCreator源码分析(一)——QtCreator源码简介
一、QtCreator简介QtCreator是设计精巧的插件式系统,QtCreator的核心是一个插件管理器,其所有功能都是使用插件完成。在启动时,QtCreator会首先加载一个名为coreplugin的插件,coreplugin插件提供了Qt Creator最基本的功能和扩展点,其余的插件都是直接或间接依赖于coreplugin插件提供的机制,一步步扩充QtCreator的功能,最终将其变成一个功能完整的IDE。针对QtCreator的插件机制设计,QtCreator源码分析会将关注重点放在插件管转载 2020-11-20 16:29:09 · 1267 阅读 · 0 评论 -
Qt高级——Qt自定义标题栏
一、Qt自定义标题栏简介QWidget及其子类窗体组件的标题栏受操作系统的控制,即标题栏的界面风格与操作系统的主题风格相同,工程实践中需要开发者自行定义,达到美化应用程序界面的目的。二、Qt自定义标题栏实现1、自定义标题栏的功能自定义标题栏需要完成功能如下:(1)自定义标题栏需要包含最小化按钮、最大化按钮、关闭按钮、标题标签、图标标签等图形元素。(2)标题栏的拖拽。(3)鼠标双击标题栏实现窗体的最大化、最小化。2、自定义标题栏的界面布局自定义标题栏的界面布局如下:3、标题栏转载 2020-11-20 16:27:21 · 3329 阅读 · 0 评论 -
深入理解QtCreator的插件设计架构
基于插件的设计好处很多,把扩展功能从框架中剥离出来,降低了框架的复杂度,让框架更容易实现.扩展功能与框架以一种很松的方式耦合,两者在保持接口不变的情况下,可以独立变化和发布,将软件的复杂度限制在了单个的插件之中,比较适用与需求不定或是业务容易发生变化的软件设计.1.架构描述个人感觉,《Software Architecture Patterns》对该架构的描述比较准确,如下图所示.插件架构点击这里可以下载这篇文章.该架构需要关注以下三部分,1.1核心系统核心系统包含两部.转载 2020-11-20 16:04:25 · 1108 阅读 · 0 评论 -
Qt QToolBar Qmenu
QToolButton *file_toolButton = new QToolButton(this); file_toolButton->setObjectName(QStringLiteral("file_toolButton")); file_toolButton->setText(tr("File")); QToolButton *edit_toolButton = new QToolButton(this); edit_toolButton->.原创 2020-11-19 13:39:22 · 370 阅读 · 0 评论 -
vscode 界面配置
{"$schema": "vscode://schemas/color-theme","name": "界面UI的配色","type": "light","include": "./my-syntax-color.json", //语法配色//启动行号颜色...配置文件C:\Users\lwlee\AppData\Roaming\Code\User\settings.json // --->>> "editor.re..转载 2020-11-18 21:52:35 · 952 阅读 · 0 评论 -
Qt重定向qDebug,实现日志系统(QtDebugMsg、QtInfoMsg、QtWarningMsg、QtCriticalMsg、QtFatalMsg)
原理:重定向qDebug、qInfo、qWarning、qCritical、qFatal等宏,输出到txt文件。如果需要输出到Qt控件上,则需要使用Qt提供的反射机制。效果图:目录结构如下:重点关注:qInstallMessageHandler()QMetaObject::invokeMethod()源码:MsgHandlerWapper.h:#ifndef MSGHANDLERWAPPER_H#define MSGHANDLERWAPPER_H#inclu转载 2020-11-16 10:12:08 · 1405 阅读 · 0 评论 -
QT Cmake 案例
# https://cmake.org/documentation/cmake_minimum_required(VERSION 3.16) # 用来指定最低的cmake版本project(YiYan) # 设置项目的名称,设置PROJECT_NAME的值set(CMAKE_CXX_STANDARD 17) # 设置C++标准set(CMAKE_CXX_STANDARD_REQUIRED ON)# Qt必备,若要深入了解则查阅qt和cmake的官方文档set(CMAKE_AUTOMOC .原创 2020-11-16 00:09:19 · 348 阅读 · 0 评论 -
Qt中的相对路径和绝对路径
路径:一个对Qt路径讲解比较详细的博客:http://blog.youkuaiyun.com/dbzhang800/article/details/6363165①绝对路径:QApplication::applicationDirPath();是获取的执行文件exe所在的路径(qdebug的路径)。②相对路径:这里所说的是QtCreater所用到的相对路径。在QtCreater中的“./”这个路径是bulid directory的路径。在QtCreater中可以手动设置。如图:Qt资源的相对路径:必须在工程的转载 2020-11-14 09:36:50 · 4626 阅读 · 0 评论 -
Qt中的相对路径和绝对路径
路径:一个对Qt路径讲解比较详细的博客:http://blog.youkuaiyun.com/dbzhang800/article/details/6363165①绝对路径:QApplication::applicationDirPath();是获取的执行文件exe所在的路径(qdebug的路径)。②相对路径:这里所说的是QtCreater所用到的相对路径。在QtCreater中的“./”这个路径是bulid directory的路径。在QtCreater中可以手动设置。如图:..转载 2020-11-14 09:30:34 · 2114 阅读 · 0 评论 -
QSS总结以及最近做的Qt项目
什么是QSSQSS称为Qt Style Sheets也就是Qt样式表,它是Qt提供的一种用来自定义控件外观的机制。QSS大量参考了CSS的内容,只不过QSS的功能比CSS要弱很多,体现在选择器要少,可以使用的QSS属性也要少很多,并且并不是所有的属性都可以用在Qt的所有控件上。QSS在Qt程序中的使用办法首先将QSS写在文件中,然后利用如下的代码设置QSS: 1 2 3 4 5 6 7 8 9 10 11转载 2020-11-13 17:58:26 · 249 阅读 · 0 评论 -
关于QT的系统总结
目录编译环境与开发流程QT项目的构成及原理QT中的布局QT中的通用控件QVariant 类型QComboBox控件QTableWidget控件QTabWidget控件QWebview控件使用QSS编码问题QT的内存管理QT的信号槽QT中绘图QT的线程QT中使用第三方的dllQT中为控件添加右键菜单的方法结束语编译环境与开发流程开发QT有两种IDE可以使用,一种是使用 VS + Qt 的插件,另一种就是使用QtCreator工转载 2020-11-13 17:54:04 · 529 阅读 · 0 评论 -
QT6 国际化
QString languageName ="English"; setWindowTitle(tr("Language: %1").arg(tr(qUtf8Printable(languageName))));//可以使用变量原创 2020-11-13 00:51:33 · 391 阅读 · 0 评论 -
模板类型推导与auto
本文聊聊C++中的模板类型推导和auto。两者其实是一样的,前者推导T的类型,后者推导auto的类型。本文初创于公司内部博客,更适合于有基础的同学参考。模板类型推导对于模板函数来说,编译器需要根据实际传入的参数来推导模板类型T。例如,假设我们有下面这个模板函数:template<typename T>void f(T& param); // param is a reference同时声明了这些变量:int x = 27; ..转载 2020-10-29 17:46:41 · 660 阅读 · 1 评论 -
QT6 QMetaType + QVariant的新增功能
Fabian Kosmale于2020年10月21日星期三|评论您可能知道,Qt有一个元类型系统,该系统提供有关类型的运行时动态信息。它可以将您的类型存储在QVariant中,并在信号插槽系统中排成队列,并在整个QML引擎中使用。在即将发布的Qt 6.0版本中,我们借此机会重新审视了它的基础知识,并利用了C ++ 17为我们提供的功能。在下文中,我们将检查这些更改,并说明它们如何影响您的项目。QMetaType现在更加了解您的类型在Qt 5中,QMetaType包含默认构造一个类型,复制它并..翻译 2020-10-28 11:15:31 · 3301 阅读 · 0 评论 -
Qt6 构建系统
2020年10月12日(星期一)约尔格·博内曼|评论意见Cmake是qt 6的构建系统。用于构建Qt6的工具是CMake。科马克广泛改编和提供。 这些天它甚至随VisualStudio一起发布。 由一个繁荣的社区支撑。 许多第三方库的包是可用的。 稳定成熟。明年,它将获准在美国饮用酒精饮料。CMake3.18.4最近发布。请用那个来建造QT。使用配置或普通CMake我们亲爱的configure剧本仍然存在。它接受您习惯使用的Qt 5中的大多数选项。目前,qmake构..翻译 2020-10-24 10:52:04 · 2518 阅读 · 0 评论 -
用Qt解析XML:Qt6 的更新
2019年12月3日(星期二)库拉兹扬|评论意见我们上一篇关于用Qt解析XML文档的文章已经有一段时间了。我想对即将发布的版本中的预期变化提供一些更新。但是首先,让我们总结一下Qt当前为读取和编写XML文档提供了什么。QTXML模块本模块提供了两个用于读取和写入XML文件的不同模型的实现:DocumentObjectModel(多姆)和简单的XML API(萨克斯)。使用DOM模型,整个XML文件被加载到内存中并表示为一棵树,这允许轻松地访问和操作其节点。DOM通常用于您不太关心内存的应用程..翻译 2020-10-26 20:00:04 · 684 阅读 · 0 评论 -
QT6 中的QT Network
2020年10月5日(星期一)M rten Nordheim,Timur Pocheptsov|评论意见在这篇博文中,我们想告诉你一些最近的更新和变化QT网络接收到的模块QT 6,以及一些潜在的未来发展。.QNetworkAccessBackendQNetworkAccessBackend是一个抽象基类,用于与缓存、文件和ftp后端进行接口。我们在Qt中使用QNetworkAccessBackend已经有一段时间了,但是不可能以任何合理的方式使用QtNetwork外部。现在是了!在Qt 6中..翻译 2020-10-24 10:49:01 · 2174 阅读 · 0 评论 -
QT6 的QList变化
2020年9月30日(星期三)格卢别夫|评论意见使用Qt 6,许多组件都会发生更改。集装箱也不例外。在这篇博客文章中,我试图捕捉对QList和相关类最重要的更改。Q向量和QList是统一的在此之前,Qt为这两个容器提供了非常不同的实现:QVector是一个自然而直观的类似数组的容器,而QList在其实现中非常特殊,以很好地适应Qt本身定义和使用的类型。通过对现有类型的Qt 6更新,在以前版本中已经完成的工作的支持下,类之间的实现差异似乎没有什么好处。此外,在许多情况下,Q向量被证明是一个更好..翻译 2020-10-24 10:47:08 · 2101 阅读 · 0 评论 -
Qt6 中的异步API
Qt 6中的异步API2020年9月16日,星期三,Sona Kurazyan|评论读者可能已经知道,Qt提供了几种多线程结构(线程,互斥体,等待条件等),以及更高级别的API,如QThreadPoolQt Concurrent和其他相关类。那些还不熟悉Qt线程支持或想要了解更多信息的人可以参加我们的在线培训课程(此处和此处可用)。在本文中,我们将专注于更高级别的异步API和Qt 6中引入的更改。Qt中更高级别的并发APIQt Concurrent通过消除对低级同步(基元,例如互斥锁和锁..翻译 2020-10-05 15:03:35 · 1340 阅读 · 0 评论 -
Qt日志功能(qDebug、qWarnng、qCritical、qFatal)
一、基本分类:qDebug : 调试信息提示qWarning: 一般的警告提示qCritical: 严重错误提示qFatal: 致命错误提示二、如何截获这些信息Qt提供了qInstallMsgHandler方法用来定制消息发生后如何来处理。qInstallMsgHandler 是一个回调函数,主要是由qDebug、qWarnng、qCritical、qFatal这些函数进行触发,也就是说,qDeubg这些函数处理的消息文本会被qInstallMsgHandler 所指向的回调函数截获,这样就.转载 2020-08-09 22:10:54 · 1363 阅读 · 0 评论 -
PCRE does not support \L, \l, \N{name}, \U, or \u...
\u不支持 将“\u4e00-\u9fa5”替换成“\x{4e00}-\x{9fa5}” ,注意:\u换乘\x,中间要有花括号{},结尾要有u.原创 2020-07-24 02:45:21 · 1924 阅读 · 0 评论 -
js正则替换replace中$1的用法以及常用正则
一、repalce定义用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。 1 2 3 4 5 stringObject.replace(regexp/substr,replacement); 参数一:必需,规定的字符串或者正则表达式 参数二:必需,一个字符串值。规定了替换文本或生成替换文本的函数。 !!!replacement 中的 $ 字符具有特定的含义。详情见W3C .转载 2020-07-22 16:07:42 · 19673 阅读 · 0 评论 -
Qt之正则表达式(续)
最近一段时间做了很多的数据校验,格式各种各样、五花八门,做的整个人都不好了,需求真的太疯狂。。。但为了更好的用户体验,底层实现即使再难也是应该的,更何况我是一个追求完美的人。。。先解释下什么是正则表达式:正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。正则表达式由一些普通字符和一些元字符组成。普通字符包括大小写字母和数字,而元字符则具有特殊的含义,我们下面会给予解释。要想真正...转载 2020-07-21 22:17:16 · 384 阅读 · 0 评论 -
【QT DOC】深拷贝和浅拷贝
Implicit SharingMany C++ classes in Qt use implicit data sharing to maximize resource usage and minimize copying. Implicitly shared classes are both safe and efficient when passed as arguments, because only a pointer to the data is passed around, and t转载 2020-07-19 01:08:53 · 1047 阅读 · 0 评论 -
QML - Passing Javascript associative array to C++
In my app I have a class which registered as singleton forQML. My purpose is collecting values inQMLas associative array and passing this array toC++. This is the simplified version of the class:class Config : public QObject{Q_OBJECTprivate: Co...转载 2020-07-17 15:40:05 · 256 阅读 · 0 评论 -
QT QFuture的非阻塞调用
c++11中引入了future/promise, 但是目前我使用的编译器并未完全支持c++11。查了一下,发现QT提供了future类。使用QFuture( 阻塞)#include <QCoreApplication>#include <QtConcurrent/QtConcurrentRun>#include <QDebug> void print(const QString &name){ qDebug() << .转载 2020-05-30 22:55:05 · 1974 阅读 · 0 评论