- 博客(168)
- 资源 (1)
- 收藏
- 关注
原创 Qt样式基础
1)我们可以在代码中动态的设置控件的objectName (相当于QSS样式的选择器). 但使用setObjectName方法后,会发现控件的样式并没有实时的刷新,这就需要我们手动的 setStyle 让控件动态的改变qss样式。原因:qss样式需要通过paint才能正常绘制到控件表面,而QWidget的paintEvent()是空的,这就要求我们在继承QWidget的时候重载paintEvent()。问题二:如何在运行时动态的改变控件的样式?
2023-08-08 15:21:31 461
原创 启航——三十而立四十不惑的程序员
一程序员作为最有危机感的一个行业,许多程序员很早的就开始为中年危机做准备,包括做管理,转行等等,更有许多关于大龄程序员出路的调侃。不例外的,作为入行11年的程序员,我也开始为未来谋求出路。二程序员作为起点还不错的行业,在初始的几年,有着让人羡慕的薪资待遇,当然也忍着常人没法体会的辛苦,996是这个行业正常得不能再正常的一个缩影。正因为我们有着不错的薪资待遇,加之程序员能把月薪5万活成像月薪5千的墨阳。因此,大部分程序员在解决人生必需的结婚,生子,买房之后,慢慢的手里通常都会有一些余钱,那么,如何
2020-10-04 16:53:32 2663
转载 使用TortoiseGit操作分支的创建与合并
第一步:创建本地分支点击右键选择TortoiseGit,选择Create Branch…,在Branch框中填写新分支的名称(若选中”switch to new branch”则直接转到新分支上,省去第二步),点击OK按钮: 第二步:通过“Switch/Checkout”切换到新创建的分支上,点击OK: 第三步:在新分支下执行PUSH操作,在...
2019-01-08 11:51:39 588 1
原创 JS学习笔记(一)
ECMA-262 是 JavaScript 标准的官方名称。1、一个页面的基本结构:<!DOCTYPE html><html><head>// 通常放置一些函数// ...</head><body>// 放置一些页面内容// ...</body></html>2、通过ID查
2018-11-06 16:24:25 240
原创 Java学习点滴记
1、Applet —— Applet是采用Java编程语言编写的小应用程序,该程序可以包含在 HTML(标准通用标记语言的一个应用)页中,与在页中包含图像的方式大致相同。含有Applet的网页的HTML文件代码中部带有<applet> 和</applet>这样一对标记,当支持Java的网络浏览器遇到这对标记时,就将下载相应的小应用程序代码并在本地计算机上执行该Applet。...
2018-10-31 09:52:52 299
原创 VS2013使用技巧
1、注释: 先CTRL+K,然后CTRL+C2、取消注释: 先CTRL+K,然后CTRL+U3、在C/C++编程时经常需要在源文件与头文件之间切换。旧的Visual Studio中没有这个快捷键。新版Visual Studio(我的是VS2013)已经有这个快捷键了。它是Ctrl+K,Ctrl+O。注意这是一组连续的操作:先按住Ctrl,然后按K,之后在Ctrl不松手的情况下按O。不要按成2组...
2018-09-12 14:21:12 477
原创 桌面软件的自动化测试工具
1、sikulihttps://pan.baidu.com/s/1hzU-tKwORTSm5RH-QoZJ9Q2、Airtest相关资料可以点击以下链接可查看和下载 Airtest Project:- 官网: http://airtest.netease.com/- 码云Gitee: https://gitee.com/AirtestProject- GitHub: https...
2018-08-24 14:55:09 3282
转载 chrome 安装 gliffy 绘图插件以及使用
由于项目中最近使用gliffy查看之前的文件(绘图),且chrome在最新的版本以后无法离线安装crx插件,本人搜索后成功安装gliffy插件并使用,特此记录。安装需要:chrome插件安装辅助程序:crxhelp下载地址:https://pan.baidu.com/s/1nvifXpOWT8dfq8MnHYH51g 密码:hyrigliffy文件:https://p...
2018-08-21 11:10:34 8458
转载 Qt线程同步的几种方法
一、QMutex类 QMutex类就像一把锁,在互斥量之前上锁(QMutex::lock()),然后在使用完互斥量之后解锁(QMutex::unlock())。比如下面的代码:void someMethod(){ mutex.lock(); qDebug()<<"Hello"; qDebug()<<"World"; m...
2018-08-15 15:05:54 10542 1
转载 C++线程同步的四种方式(Windows)
原文链接: https://blog.csdn.net/s_lisheng/article/details/74278765什么是鲜橙同步?为什么要进行线程同步? 在程序中使用多线程时,一般情况,多个线程不能在其生命周期内进行完全独立的操作。更多的情况是一些线程进行某些处理操作,而其他的线程对其处理结果进行了解(利用)。正常情况下对这种处理结果的了解应当在其它线程处理任务完成后进行。 ...
2018-08-15 14:33:46 359
转载 软件架构分层设计
一、 软件架构和分层设计(一) 软件架构(software architecture) 是一系列相关的抽象模式,用于指导大型软件系统各个方面的设计。软件架构是一个系统的草图。软件架构描述的对象是直接构成系统的抽象组件。各个组件之间的连接则明确和相对细致地描述组件之间的通讯。在实现阶段,这些抽象组件被细化为实际的组件,比如具体某个类或者对象。在面向对象领域中,组件之间的连接通常用接...
2018-08-13 12:04:39 19614 1
转载 软件架构系列感想(六)
1、代码不会讲述完整的故事。编写好的代码很重要,重构迫使我们考虑让方法变得更小、更可复用和自文档化,每个人都应该追求编写易于阅读、理解和维护的好代码。了解系统的设计意图,可以通过代码库如何被拆分为子项目、目录、包、命名空间等对整体架构做出一些判断,也可以根据对这个项目有限的了解、业务领域、你对团队如何构建软件的期望以及你对所用技术的知识,做出自己的假设。(1)软件系统如何融入已有的系统...
2018-08-11 14:34:13 280
转载 软件架构系列感想(五)
1、通用的抽象集合。可以将软件系统简单的理解成由多个容器构成,容器又由多个组件构成,组件由一个或多个类实现。类(在一个面向对象系统里,类是最小结构单元)组件(组件可以想象成一个或多个类组成的逻辑群组,通常由多个类在更高层次的约束下组合而成)容器(指一个在其内部可以执行组件或驻留数据的东西)系统(系统是最高的抽象层次,代表了能够提供价值的东西)2、软件的静态视图。语境(设...
2018-08-11 14:23:39 266
转载 软件架构系列感想(四)
1、技术约束。时间和预算是大多数软件开发者都熟悉的约束,还有一些在大型组织里经常碰到的一些技术相关的约束:(1)批准的技术清单(目的是限制组织必须支持,运行,维护和购买许可证的技术)(2)现有系统的互操作性(有时别的系统需要和你构建的系统整合,这时组织性的约束规定了你可以用于整合的协议和技术)(3)目标部署平台(包括嵌入式设备、windows或Linux服务器的可用性,以及云)...
2018-08-11 14:17:02 296
转载 软件架构系列感想(三)
1、未来的架构师在哪里?我们可能花了很长时间谈论编写代码、自动化测试、自动化部署、工具、各种技术,以及所有相关的流程,而可用的软件是关键。多想想这些问题:(1)你上次写代码是什么时候(2)你上次重构是什么时候(3)你上次测试你的代码是什么时候(4)你上次设计东西是什么时候(5)你上次从零开始设计一个软件系统是什么时候(6)你上次从零开始设计一个会由一个团队来实现的软件系...
2018-08-11 14:05:08 294
转载 软件架构系列感想(二)
3、软件架构师是什么?应用程序架构的关注点是应用程序,通常包括将应用程序解构为类和组件,确保设计模式的正确应用,构建和使用框架等等。本质上,应用程序架构谈论的是软件设计的低级别切面,通常只考虑单一的技术栈。结构单元主要以软件为基础,包括编程语言和结构、类库、框架、api等。它由类、组件、函数、模块、设计模式等加以描述。应用程序架构着重考虑软件和代码组织。大多数软件系统实际上是由横跨不同...
2018-08-11 12:35:26 300
转载 软件架构系列感想(一)
文章原链接:https://blog.csdn.net/woshibendangao/article/details/796844921、什么是架构? 架构是一种能力,架构角色则是要求你在具体事物中行使某些行为,而架构师则是用来标识这些能力与行为的一个职务。对于不同的人来说,可能意味着什么,也是不一样的【因此,对于不同的组织,不同的领域,不同的软件生态,架构师要做的事情也会有所不...
2018-08-11 12:09:17 440
转载 回顾Bob大叔的简洁架构(转)
Robert Martin 就是我们常说的Bob大叔,是码界的骨灰级人物了,在4年前提出了所谓的简洁架构,值得回顾反思一下,看看是否可以借鉴到微服务中呢?大叔在文中介绍了一下几种知名的架构思想: Alistair Cockburn 的Hexagonal Architecture Jeffrey Palermo 的 Onion Architecture Screamin...
2018-08-03 15:14:38 846
原创 关于软件中头像(图标)保存方式的讨论
项目属于IM即时通讯产品,程序里面用到了大量的头像(图标)等,这些资源通常都是保存在服务器上,拉取后保存在本地,那么,这些头像(图标)文件的文件名如何规定呢? 之前为了避免重复,一直是用的该头像(图标)属主的ID来保存。该方式存在两个问题:1)如果头像(图标)在服务器上更新了,需要有更新通知,代码里主动的将旧头像文件删除并重新下载;2)有些图标属主可能没有唯一的ID。 ...
2018-07-27 12:03:18 1121
原创 QtWebengine在调试环境下的崩溃问题
项目中用到了QtWebengine渲染H5页面,开发过程中,经常有同事的机器上出现崩溃,且该崩溃一旦出现,就会反复出现,但在release下却不崩溃。崩溃时,会在调试信息输出窗口打印如下错误信息:[0726/175055:FATAL:url_request.cc(570)] Check failed: !job_.get().Backtrace:GetHandleVerifier [...
2018-07-26 17:57:24 5465 1
原创 客户端网络接口访问方式
在最近的一个客户端软件产品中,需要用到大量的网络服务器API接口调用,每调用一个网络接口,我们都会增加一个类来对这个接口进行封装,接口一旦多了,类数量迅速膨胀,其实每个类里面都大同小异,只是部分代码不同而已,如果说少的话,还好!但我总觉得不爽,觉得这不是使用网络接口的正确调用方式,在有些客户端产品中,对网络接口的调用可能多达几百甚至上千个,如果每个接口都对应一个类,那还得了!因为我...
2018-07-23 15:15:08 1246
转载 Qt与MSVC中文乱码问题的解决方案
一、问题是什么?在学习Qt编程的过程中,大多数人都遇到过中文乱码的问题。总结起来有三类:1. Qt Creator中显示的汉字变为乱码,编辑器上方有“Could not decode "..." with "UTF-8"-encoding. Editing not possible.”的错误提示。此时,出现乱码的文档是不可编辑的。如下图所示,“你好中文!”这5个中文字符变成了乱码:2. Qt Cr...
2018-07-04 10:32:27 2213 2
原创 Qt与JS数据交互
QT版本:5.6.2核心类:QWebEngineView, QWebChannel 1、C++和HTML通过websocket通信,通过官方的 qwebchannel.js 实现。2、C++和HTML共用一个对象并以此进行通信,即通过QWebChannel的registerObject函数。void QWebChannel::registerObject(const QString &id...
2018-04-19 15:01:01 5171 1
转载 QWebEngineView拦截Url请求设置
原文链接:https://www.cnblogs.com/sz-leez/p/6552764.htmlQWebEngineUrlRequestInterceptor类提供了一个拦截URL请求抽象基类,可通过实现QWebEngineUrlRequestInterceptor::interceptRequest接口拦截并修改相应的UIL请求,以达到相应需求效果,比如设置“Accept-Language...
2018-03-31 17:10:01 4531
原创 QtWebEngine 在某些机器上崩溃的问题
项目发布后,在某些机器上出现崩溃的现象,经查,是在启动初始化QtWebengine模块时导致的崩溃。然后测试了Qt的官方例子simpleBrownser,在这些机器上同样也出现崩溃,开始以为是缺少资源文件或者是系统需要补丁。久查未果,后来还是在Qt的Bug列表中找到了答案,不得不说, Qt的Bug列表真是个好东西。1、So far all crash reports in QTBUG-49954 ...
2018-03-31 14:38:27 11237 4
原创 NSIS测试例子
在写NSIS打包脚本的时候,我们经常需要测试一些方法是否可行?就像我们编写代码一样,例如打印一些常量的值,测试一些操作是否像我们预期的一样。之前一直不知道怎么单独测试一些操作是否操作输出。LoadLanguageFile "${NSISDIR}\Contrib\Language files\SimpChinese.nlf"ShowInstDetails show #显示调试信息打印窗口Ou...
2018-03-21 11:13:52 842
转载 Qt之四方分割器QuadSplitter
转载自:http://ju.outofmemory.cn/entry/185735 在Qt经常会用到分割器QSplitter,可以对多个控件进行水平或者垂直分割,但有一些特殊的需求无法满足,比如:四方分割。。。QuadSplitter是qt-apps里面的一个应用,挺不错的,拿来和大家分享一下,下载地址:QuadSplitter。效果如下:...
2018-03-02 16:12:05 711
原创 Qt中从应用程序拖出文件或图片到桌面
void XXXX::mouseMoveEvent(QMouseEvent *event){ this->viewport()->setCursor(Qt::PointingHandCursor); QString fileName /*=指向一个本地存在的文件 */; if (event->buttons() & Qt::LeftButton) ...
2018-03-02 14:20:40 2072 3
原创 QTableView 去除Item选中的虚线框
(1)实现如下一个类 #include "NoFocusDelegate.h" void NoFocusDelegate::paint(QPainter* painter, const QStyleOptionViewItem & option, const QModelIndex &index) const { QStyleOptionViewItem item...
2018-02-27 17:24:08 3247
原创 QWebengineView 对自定义协议的拦截处理
重新实现 TNWebEnginePage 的 acceptNavigationRequest 函数:// If the function returns true, the navigation request is accepted and url is loaded.bool MyWebEnginePage::acceptNavigationRequest(const QUrl &u...
2018-02-23 17:43:41 3037
原创 Qt Json类 对 long long int 类型的支持
项目中遇到一个巨大的BUG,原因是Qt的json类QJsonDocument在将服务器返回来的json串转换成json对象QJsonObject时,出现了问题。也就是当long long int 类型的整型作为json字段时,该值很可能超过QJsonValue所支持的范围。例如,如果在服务器返回的json串中,有一个字段是整型(long long), 那么在转换的时候可能出错。即 {"Id": 9...
2018-02-23 15:36:26 4902 1
原创 Qt用线程渲染图片(UI)
class TNImageLoadThread: public QThread{ Q_OBJECTpublic: explicit TNImageLoadThread(const QString &filename, const QSize &targetSize, QObject *parent = Q_NULLPTR);signals: voi...
2018-02-23 15:02:58 1884 1
原创 Win32 之 EnumDisplaySettings 的使用
函数原型: BOOL EnumDisplaySettings(LPCTSTR lpszDeviceName, DWORD iModeNum, LPDEVMODE lpDevMode);使用示例1: DEVMODE devmode; memset(&devmode, 0, sizeof (devmode)); devmode.dmSize = si...
2018-02-23 13:50:36 3654
转载 C++中的宏定义
二、define中的三个特殊符号:#,##,#@ #define Conn(x,y) x##y#define ToChar(x) #@x#define ToString(x) #x(1)x##y表示什么?表示x连接y,举例说:int n = Conn(123,456); /* 结果就是n=123456;*/char* str = Conn("
2018-01-08 10:34:52 407
原创 QTextEdit 的 placeholderText 属性
QTextEdit 的 placeholderText 属性 QTextEdit 和 QLineEdit 都有 placeholderText 属性,即在输入内容之前,给予用户一些提示信息。 但是其二者该属性对于不同输入法有不同的表现。具体表现在: 1、QLineEdit 当输入内容时,placeholderText内容会自动清空; 2、QTextEdit 当输入内容时,place
2017-12-20 16:51:34 8816 1
转载 NSIS如何让安装程序的窗口置顶?(显示在最前端)
在NSIS 脚本中先定义一个 宏变量,然后定于执行函数即可。如下脚本代码所示:!define MUI_PAGE_CUSTOMFUNCTION_SHOW Page_Show; -----------------.......--------------Function Page_ShowStrCpy $0 $HW
2017-12-08 10:49:43 1215
原创 QFile::write 写文件会变大的问题
项目里遇到一个问题:qint64 QFile::write(const QByteArray &byteArray)这个接口写文件后,会导致文件变大,明明只有40M的(byteArray)写完后文件居然有 60M多,但文件能正常打开,除了大小,其它暂时都没有发现有什么问题。(好像在Mac下没有问题)查了查,发现write的返回值就是60M多,所以感觉是write函数莫名
2017-08-08 19:10:07 3573
原创 Qt中点击关闭任务栏而不退出程序的实现方法
// 重新覆写关闭事件响应函数protected:virtual void closeEvent(QCloseEvent *event);void MyWidget::closeEvent(QCloseEvent *event){ qDebug() "Recieve close event"; event->ignore(); // 忽略关闭事件
2017-07-31 11:00:32 4443
原创 OBS编译问题汇
1、fatal error LNK1112: module machine type ‘x64’ conflicts with target machine type ‘X86’ 用QtCreator+cmake打开CMakeLists.txt后,直接编译,会报如上错误。经查,可能是QtCreator+cmake打开CMakeLists.txt默认使用32位(X86)架构解析。编译时,编译器和Ma
2017-01-19 13:23:19 892
Qt与JS的数据交互
2018-04-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人