- 博客(22)
- 资源 (1)
- 收藏
- 关注
原创 C++排序、去重:std::sort和std::unique用法
#include <iostream>#include <algorithm>#include <vector>int main(){ auto myVector = std::vector<int>{3 ,4 ,5 ,6, 3, 4, 5, 33 ,55 }; std::sort(myVector.begin() , myVector.end() ,std::greater<int>()); auto dupil
2021-09-27 21:50:56
601
原创 在Qt工程中使用OpenMP,及编译报错解决办法
现在最新版的C、C++、Fortran编译器基本上都内置OpenMP支持。比如gcc、g++、gfortran(GCC套件4.2版之后开始支持) Intel C++ compiler、Intel Fortrancompiler Microsoft visual C++ (版本8.0或者叫2005之后开始支持)一、测试Demo#OpenMPtest.proTEMPLATE = appCONFIG += console c++11CONFIG -= app_bundleCONFIG -= q.
2021-07-04 02:10:09
3666
原创 QTableView自定义左上角CornerWidget
#ifndef CUSTOMERPRIVACYTABLEVEIW_H#define CUSTOMERPRIVACYTABLEVEIW_H#include "YHModelView_global.h"#include <QHeaderView>#include <QTableView>class QPushButton;namespace yh {class YHMODELVIEW_EXPORT CustomerPrivacyTableVeiw : public Q
2021-05-06 00:29:30
3894
2
原创 QSqlQueryModel异步刷新的实现
Qt Model View框架QSqlQueryModel基于QSqlQuery 提供了执行SQL语句并返回执行结果的便利接口:setQuery;默认情况下是只读的,倘若需要读写数据库,则需要继续并实现其基类QAbstractItemModel的setData()和flags()方法,或者使用其子类QSqlTableModel关于同步异步、阻塞非阻塞:1.阻塞调用:调用者等待被调用者的执行结果,期间什么都不做2.非阻塞调用:调用者并不等待被调用者,而是之后通过轮询或者消息等方式获取被调用者的执行
2021-05-04 02:33:48
1900
8
原创 C++资源管理:智能指针unique_ptr和shared_ptr
QMouseEvent一、介绍二、使用场合三、示例一、介绍memory头文件中提供了unique_ptr和shared_ptr两种智能指针来避免内存泄漏,二者都基于RAII(栈上临时对象的生命周期由程序自动管理、临时对象离开其作用域会自动调用析构函数)来管理另一个对象的生命周期。区别在于unique_ptr所管理的对象所属关系是唯一的;而shared_ptr所管理的对象的所属关系可以和其它同类shared_ptr共享、当最后一个管理这个对象的shared_ptr被销毁时才会调用对象的析构函数。二、
2020-10-25 00:59:05
343
原创 Qt::ConnectionType:Qt不同类型connect的详细区别说明与应用
ConnectionType一、介绍1.Qt::AutoConnection2.Qt::DirectConnection3.Qt::QueuedConnection4.Qt::BlockingQueuedConnection5.Qt::UniqueConnection二、场景三、测试1.声明2.实现3.输出四、结论一、介绍1.Qt::AutoConnection默认连接类型,如果信号接收方与发送方在同一个线程,则使用Qt::DirectConnection,否则使用Qt::QueuedConnect
2020-10-18 02:03:58
3765
2
原创 QEvent之QPaintEvent:搭配eventFilter实现窗口悬停时改变边框及图标效果
QMouseEvent一、介绍二、场景三、实现1.声明2.实现四、效果一、介绍QPaintEvent继承自QEvent类,包含了绘图事件的参数如绘图区域(region),以及这片区域对应的矩形(rect);多数场景下,绘图事件并不会用上整个区域,使用rect()方法来获取待更新区域将会比region()、boundingRect()快很多。给窗体发送QPaintEvent事件就可以更新相应窗体,比如更新前景被移除之后暴露出来的背景窗体。二、场景父窗体包含了多个同类子窗体,鼠标移动悬停至其中某个窗
2020-10-17 23:42:14
1257
原创 QEvent之QMouseEvent:重载mouseDoubleClickEvent实现双击窗口任意位置时放大窗口
QMouseEvent一、介绍二、场景三、实现1.声明2.实现3.使用四、效果一、介绍 当鼠标按下、松开、双击、或者按下并移动时,都会触发QMouseEvent事件,依次是:QEvent::MouseButtonPress, QEvent::MouseButtonRelease, QEvent::MouseButtonDblClick, or QEvent::MouseMove;倘若在子窗体中对以上事件调用了ignore方法,则事件会被继续传递至父窗体,直至有窗体accept或者被eventfitte
2020-10-17 22:56:16
4464
1
原创 Qt模态对话框与非模态对话框
目录一、模态对话框与非模态对话框1.概念1.1 模态对话框(Modal Dialog)1.2非模态对话框(Modeless Dialog)2.方法2.1 setWindowModality()2.2 setAttribute()一、模态对话框与非模态对话框1.概念1.1 模态对话框(Modal Dialog)在其没有被关闭之前,用户不能与同一个应用程序的其他窗口进行交互,直到该对话框关闭1.2非模态对话框(Modeless Dialog)当被打开时,用户既可选择和该对话框进行交互,也可以选择
2020-10-12 01:09:14
146
原创 如何查看Visual Studio版本、与MSVC版本号的对应关系
MSC 1.0 _MSC_VER == 100MSC 2.0 _MSC_VER == 200MSC 3.0 _MSC_VER == 300MSC 4.0 _MSC_VER == 400MSC 5.0 _MSC_VER == 500MSC 6.0 _MSC_VER == 600MSC 7.0 _MSC_VER == 700MSVC++ 1.0 _MSC_VER == 800MSVC++ 2.0 _MSC_VER ==
2020-10-11 21:36:04
40587
原创 QTreeWidget详细使用方法:往单元格插入控件、处理点击事件
QTreeWidget使用方法一、初始化二、处理点击事件三、清空一、初始化 layMain = new QHBoxLayout; table = new QTreeWidget; layMain->addWidget(table); this->setLayout(layMain); QIcon status_ok(":/image/StatsusOK.png"); //插入之前必须先设置列数 table->setColumnC
2020-09-29 17:54:10
6240
2
原创 Qtcreator下编辑代码添加注释的技巧
//声明示例: explicit WidgetTest(QWidget *parent = nullptr); ~WidgetTest(); //方法一: 在函数或类声明前输入" /** " 然后回车,编辑器会自动带出以下内容 /** * @brief WidgetTest * @param parent */ //方法二: 在函数或类声明前输入" /*! " 然后回车,编辑器会自动带出以下内容 ...
2020-09-29 16:25:15
1403
1
原创 Qt 输入框显示下划线效果
通过对QLineEdit设置样式表实现:QLineEdit{background:transparent;color:#FFFFFF;border-color:#FFFFFF;border-style:solid;border-top-width:0px;border-right-width:0px;border-bottom-width:3px;border-left-width:0px;}效果图:
2020-09-29 09:58:34
3488
原创 struct与class的异同
struct默认访问权限是public,class是private;class有继承,多态机制,而struct没有#include <string>#include <iostream>using namespace std;struct SqlQuery{ SqlQuery(int index, string name) : m_index(index),m_name(name) {} int getIndex(){return
2020-09-20 23:04:04
174
原创 QSetting使用说明
QSetting使用说明前言1.初始化2.增加设置3.删除设置4.遍历键值与值(左值与右值)前言客户要求用文本替代sqlite数据库记录以下格式信息,遍历及增删配置[IP]1=192.168.0.703=192.168.0.111[PATH]1=/usr/bin/qtcreator2=/home/test 1.初始化void Config::initSetting(){ QString fileName="config.ini"; QFile
2020-09-01 11:55:13
683
原创 刷新QTableWidget程序异常崩溃的解决办法
解决方法:clear()之后随即调用setRowCount(0)代码如下:void WidgetFileList::refreshTable(){ tableFileList1->clear(); tableFileList1 ->setRowCount(0); **//务必加setRowCount(0),否则再次调用refreshTable()时会程序崩溃** myLogger->sendDebugInfor(DebugErro,QString("刷
2020-08-31 01:29:05
3286
2
原创 shell按下标输出变量的值
#!/bin/bashfor i in $(seq 1 10)do let a$i=`expr 100 + $i`donefor i in $(seq 1 10)do let b$i=`eval echo '$'a$i`doneecho "b9 is $b9"输出结果:b9 is 109简单的命令行示例:
2020-07-24 16:58:24
542
原创 C++ 回调函数
将一个指向函数的指针作为参数传递给另一个函数,这个指针所指向的函数就是回调函数意图:1.某些现成的库函数,或者别人写的函数,要求传入一个函数指针2.在回调函数传入中间函数(库函数)前,中间函数的行为是不确定的,可以通过传入不同的回调函数,来让中间函数执行不同的动作,这样更加灵活举例说明1.代工厂1.1没有任何参数的情形1.2只提供原料(数据)的类型1.3提供原料(数据),并指定或者完善制程(即回调函数)的类型2.图形界面1.代工厂将重复的劳动(代码)交给代工厂(函数)去执行1.1没有任何参数的
2020-07-13 00:46:28
342
原创 23种设计模式的C++实现、简介、要点
一、工厂模式简介:在基类中定义一个返回不同子类对象的接口要点:1.在基类中定义一个静态方法,根据传入的值得不同,调用不同子类的构造函数、并返回指向基类的指针2.将需要子类实现的方法定义为虚方法3.基类并不会实例化一个对象,而是将对象的实例化延后到子类中进行4.生成对象时,不显示使用new以及子类构造函数#include <iostream>using namespace std;enum{circle, square, triangle};class Shape{publ
2020-07-08 02:54:02
496
原创 Qt使用QInputDialog获取用户输入、自定义OK/Cancel按钮文字
参考官方文档,可以简单使用QInputDialog类的静态方法来弹出对话框获取用户输入,缺点是不能自定义按钮的文字,默认为OK和Cancel: bool ok; int i = QInputDialog::getInt(this, tr("QInputDialog::getInteger()"), tr("Percentage:"), 25, 0, 100, 1, &ok); i
2020-07-03 18:30:56
5232
2
原创 QTextedit打印不同颜色字体
声明:class config : public QObject{ Q_OBJECTpublic: static void initTableView(QTableView* ); static void initQSS(); static config* instance; static config* getinstance(); enum ColorSet{BLUE,RED,GREEN}; static const QString s
2020-07-02 01:33:26
985
2
原创 无须知道具体IP地址,挂载局域网内Windows共享目录到Linux系统的方法
#!/bin/bashres=1until [ $res -eq 0 ]do for i in 0 1 do for k in {100..160} do { #echo " Try to connect to 192.168.$i.$k" mount.cifs //192.168.$i.$k/tool /tt -o user=test,password=te...
2020-03-15 04:45:45
199
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人