
C++
文章平均质量分 71
Inkred
这个作者很懒,什么都没留下…
展开
-
C++ VTK 8.2 如何绘制弹簧图形
/高度的3倍,螺旋线的圈数。// 设置圆柱的高度。// 设置圆柱的半径。// 设置圆柱的分辨率(面的数量)// 应用变换到圆柱几何数据。// 创建映射器和显示节点。// 构造line的参数。// 给线段构造单元格。// 点创建不封闭线。// 设置弹簧的大小。原创 2023-08-12 22:44:37 · 390 阅读 · 0 评论 -
c++如何调用动态链接库
c++如何调用动态链接库原创 2023-03-18 23:16:39 · 398 阅读 · 0 评论 -
QT中窗体设置了 this->setWindowFlags(Qt::WindowDoesNotAcceptFocus | Qt::FramelessWindowHint | Qt::ToolTip);
QT中窗体设置了 this->setWindowFlags(Qt::WindowDoesNotAcceptFocus | Qt::FramelessWindowHint | Qt::ToolTip);类型后,受Qt::ToolTip的影响会一种置顶,并浮在其他软件能上面的解决办法在show()这个窗体之前增加//设置了toolTip(要不然画不了圆角), 防止提示窗体任何时候都霸屏置顶::SetWindowPos(HWND(this>winId()), HWND_TOPMOST, 0,原创 2020-12-03 10:18:24 · 1850 阅读 · 0 评论 -
Windows下C++实现杀死某一个进程
BOOL KillProcessByName(LPCWSTR strProcessName) //传入进程名{ if (NULL == strProcessName) { return FALSE; } HANDLE oHandle32Snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); if (INVALID_HANDLE_VALUE == oHandle32Snapshot)...原创 2020-11-24 16:48:03 · 1560 阅读 · 0 评论 -
使用C++的模板特性写一个通用的模板链表类,包括删除、插入、反转等功能实现
#pragma once#include <iostream>#include <vector>#include <stack>template <class object>struct ListNode{ object data; struct ListNode<object> *next; ListNode<object>(int x):data(x),next(NULL){}};templa...原创 2020-11-22 15:01:02 · 369 阅读 · 0 评论 -
表示数值的字符串
请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。 但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是。class Solution {public: bool isNumeric(char* string) { if(string==NULL) return false; i...原创 2020-11-15 20:27:18 · 88 阅读 · 0 评论 -
把字符串转换成整数
将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0输入描述:输入一个字符串,包括数字字母符号,可以为空输出描述:如果是合法的数值表达则返回该数字,否则返回0class Solution {public: int StrToInt(string str) { int lenght=str.size(); if(lenght==0) return...原创 2020-11-15 20:26:15 · 122 阅读 · 0 评论 -
翻转单词顺序列
最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?class Solution {public: string ReverseSentence(string str) { /...原创 2020-11-15 20:20:19 · 97 阅读 · 0 评论 -
字符串的排列
输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。//利用STL中的next_permutation全排列函数//next_permutation函数会取得[first,last)所标示序列的下一个排列组合,//如果没有下一个排列组合返回false,有则返回trueclass Solution {public:vector<string> P...原创 2020-11-11 21:04:14 · 363 阅读 · 0 评论 -
替换空格--字符串处理
请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happyclass Solution {public: void replaceSpace(char *str,int length) { //创建一个动态字符,没遇到空格就一个个插入“%”,“2”,“0” char *newStr=new char [length+3]; int i...原创 2020-11-11 21:00:43 · 158 阅读 · 0 评论 -
旋转数组的最小数字
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。class Solution {public: int minNumberInRotateArray(vector<int> rotateArray) { //方法 1首先是用前一个与后一个相...原创 2020-11-10 21:58:42 · 104 阅读 · 0 评论 -
二维数组中的查找
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数class Solution {public: bool Find(vector<vector<int> > array,int target) { ///分析:先确定行数和列数 //右移递增,下移递增 int hang=array.size()...原创 2020-11-09 21:19:11 · 94 阅读 · 0 评论 -
c++设计模式之享元模式
。特别是对于大量轻量级(细粒度)的对象,比如在文档编辑器的设计过程中,我们如果为没有字母创建一个对象的话,系统可能会因为大量的对象而造成存储开销的浪费。例如一个字母“a”在文档中出现了100000次,而实际上我们可以让这一万个字母“a”共享一个对象,当然因为在不同的位置可能字母“a”有不同的显示效果(例如字体和大小等设置不同),在这种情况我们可以为将对象的状态分为“外部状态”和“内部状态”,将可以被共享(不会变化)的状态作为内部状态存储在对象中,而外部对象(例如上面提到的字体、大小等)我们可以在适当的时候将原创 2020-11-07 21:36:34 · 263 阅读 · 0 评论 -
如何写一个C++的安全单例模板类
template<class T>class SingletonTemplate{public: static T *getInstance(); static void freeInstance();protected: SingletonTemplate(){} ~SingletonTemplate(){}private: SingletonTemplate(const SingletonTemplate&); Singl...原创 2020-10-29 20:22:01 · 164 阅读 · 0 评论 -
写一个管理Svg图片的灰度处理类
//还没想好怎么写,先把声明写了,想好再加上去#pragma once#include <QtCore/qglobal.h>#include <QPainter>#include <QSvgRenderer>#include <QIcon>#include <QPixmap>class ManagermentSvgRenderer{public: ManagermentSvgRenderer(); Manage...原创 2020-10-28 21:01:42 · 456 阅读 · 0 评论 -
拖动窗体改变大小时,tableView跟随者窗体改变大小,重写resizeEvent(QResizeEvent *event)事件
void 类型::resizeEvent(QResizeEvent *event){ if (m_pErrorView) { int width = m_pTableView->width(); int scrollWidth = m_pTableView->verticalScrollBar()->sizeHint().width(); m_pTableView->setColumnWidth(0, width...原创 2020-10-28 13:25:04 · 1411 阅读 · 0 评论 -
继承Qcombox,重写下拉显示窗体,根据下拉treeview的数据项改变下拉窗体的大小
class MyComboBox :public QComboBox{public: MyComboBox(QWidget *pParent = nullptr); ~MyComboBox(); protected: void showPopup(); //重写下拉显窗体,设置显示项的大小private: void resizeContent(); int MaxContentSize(); int getMaxContentSize(T...原创 2020-10-27 16:42:51 · 509 阅读 · 0 评论 -
Qt TableVIew上右键弹出菜单理解和demo思路
class FilterFrame : public QWidget{ Q_OBJECTpublic: FilterFrame(QWidget *pParent = nullptr); ~FilterFrame();protected: void initUI(); void slotsConnect(); void setAction(QAction *pAction); void initContextMenu(); protec...原创 2020-10-20 13:19:26 · 515 阅读 · 0 评论 -
Qt 对 json字串的解析
这是json串[ { "ServerIP": "P1:10.2.41.20:10.2.41.20:001" }, { "ServerIP": "pc01:10.2.41.82:10.2.41.82:001" }, { "ServerIP": "q-P1:10.2.41.88:10.2.41.88:111" }, { "ServerIP": "e-pc01:10.2.41.105:10....原创 2020-10-19 17:18:01 · 506 阅读 · 0 评论 -
c++设计模式,观察者模式理解及demo实现
Observer模式要解决的问题为:建立一个一(Subject)对多(Observer)的依赖关系,并且做到当“一”变化的时候,依赖这个“一”的多也能够同步改变。最常见的一个例子就是:对同一组数据进行统计分析时候,我们希望能够提供多种形式的表示(例如以表格进行统计显示、柱状图统计显示、百分比统计显示等)。这些表示都依赖于同一组数据,我们当然需要当数据改变的时候,所有的统计的显示都能够同时改变。Observer模式就是解决了这一个问题。当对象间存在一对多关系时,则使用观察者模式(Observer Patt原创 2020-10-18 19:27:38 · 222 阅读 · 0 评论 -
Visual Studio 编译时moc 某些头文件找不到,编译不过,解决办法
Visual Studio 编译时moc 某些头文件找不到,编译不过,解决办法主要是不同的VS版本提交时存在的差异造成的需要把编译时moc不过的头文件先移除掉,然后再添加回来,再编译就能编过了原创 2020-10-15 17:49:50 · 753 阅读 · 0 评论 -
c++ 设计模式之策略模式及实现demo
关键在于将算法的逻辑抽象接口(DoAction)封装到一个类中(Context),再通过委托的方式具体的算法实现委托给具体的strategy类来实现(ConcreteStrategyA类)Context封装角色它也叫做上下文角色,起承上启下封装作用,屏蔽高层模块对策略、算法的直接访问,封装可能存在的变化。Strategy抽象策略角色策略、算法家族的抽象,通常为接口,定义每个策略或算法必须具有的方法和属性。ConcreteStrategy具体策略角色实现抽象策略中的操作,该类...原创 2020-10-15 13:21:46 · 144 阅读 · 0 评论 -
C++设计模式-责任链模式理解及demo
责任链模式中,ConcreteHandler将自己的后继对象(向下传递信息的对象)记录在自己的后继表中,当一个请求到来时,ConcreteHandler会先检查看自己有没有匹配的处理程序,如果有就自己处理,否则传递给它的后继处理,ConcreteHandler只是简单的检查看自己有没有后继,有的话将请求传递给后继进行处理,没有的话就自己处理。#pragma onceclass Handle{public: Handle(); Handle(Hand...原创 2020-10-14 13:23:32 · 126 阅读 · 0 评论 -
C++代理模式理解及实现demo
Proxy模式又叫做代理模式 ,它可以为其他对象提供一种代理以控制对这个对象的访问。所谓代理,是指具有与代理(被代理的对象)具有相同的接口的类,客户端必须通过代理与被代理的目标类交互,而代理一般在交互的工程中(交互前后),进行某些特别的处理。以下集中情况下可以用Proxy模式解决问题:1)创建开销大的对象时候,比如显示一幅大的图片,我们将这个创建的过程交给代理去完成,称之为虚代理(Virtual Proxy);2)为网络上的对象创建一个局部的本地代理,比如要操作一个网络上的一个对象.原创 2020-10-13 13:21:58 · 172 阅读 · 0 评论 -
C++装饰模式理解与实现demo
装饰模式给一个已经定义好的类添加新的职责,通过的情况会定义一个新类继承自定类,这样子会带来一个问题,通过继承的方式解决会使系统的复杂性变得更深,而Decorator提供了一种给类增加的职责的方法,不是通过继承实现的,而通过组合。优点:(1)装饰类和被装饰类可以独立发展,而不会相互耦合。(2)装饰模式是继承关系的一个替代方案。(3)装饰模式可以动态地扩展一个实现类的功能。缺点:对于装饰模式记住一点就足够了:多层的装饰是比较复杂的。应用场景:(1)需要扩展一个类的功能,或给一个类增加附加功能原创 2020-10-12 10:08:03 · 121 阅读 · 0 评论 -
C++实现一个单例
class MyInstance{public: static MyInstance* getInstance() { if (nullptr == m_pInstance) { m_pInstance = new MyInstance(); } return m_pInstance; }; static void freeInstance();private: MyIns...原创 2020-10-09 13:17:57 · 112 阅读 · 0 评论 -
QItemDelegate定制TableView中每一列属于不同类型的控件
#include "QItemDelegate"#include <QLineEdit>#include <QPlainTextEdit>// TableView.ItemDelegate选项enum EditStyle{ None, // 不能编辑 Simple, // 默认编辑框 PlainEdit, // 多行编辑框 LineEdit, // 单...原创 2020-09-30 12:43:30 · 385 阅读 · 0 评论 -
C++装饰模式,设计模式
装饰模式给一个已经定义好的类添加新的职责,通过的情况会定义一个新类继承自定类,这样子会带来一个问题,通过继承的方式解决会使系统的复杂性变得更深,而Decorator提供了一种给类增加的职责的方法,不是通过继承实现的,而通过组合。优点:(1)装饰类和被装饰类可以独立发展,而不会相互耦合。(2)装饰模式是继承关系的一个替代方案。(3)装饰模式可以动态地扩展一个实现类的功能。缺点:对于装饰模式记住一点就足够了:多层的装饰是比较复杂的。应用场景:(1)需要扩展一个类的功能,或给一个类增加附加功能原创 2020-09-30 08:55:57 · 114 阅读 · 0 评论 -
qt使用QTreeWidget实现一个树结构显示数据
#pragma once#include <QTreeWidget>#include <QVBoxLayout>#include <QStatusBar>#include <QList>class TreeView :public QTreeWidget{public: TreeView(QWidget *pParent = nullptr) :QTreeWidget(pParent) {} ~TreeView() {};...原创 2020-09-29 17:56:20 · 2455 阅读 · 0 评论 -
Qt如何给一个button,悬浮 、按下设置不同的背景图
QPushButton *pButton= new QPushButton();QString styleSheet = QString("QPushButton{background:url(%1); background-color:transparent;border: none; }" //正常 "QPushButton:hover{background:url(%2); background-color:transparent; }" //滑过 "QPushB...原创 2020-09-28 08:46:16 · 1795 阅读 · 0 评论 -
Qt实现定制化的输入框,如输入IP地址的小控件
1.定制自己的Ip QLineEdit控件类2.将定制的QLineEdit布局在QFrame上最后效果是这样子的#pragma once#include <QFrame>#include <QString>#include <QLabel>#include <QLineEdit>class IpPartLineEdit : public QLineEdit{ Q_OBJECTpublic: IpPartLine...原创 2020-09-26 09:22:14 · 1159 阅读 · 0 评论 -
QLineEdit实现定制化的QLineEdit,QLineEdit中间可输入文本,两边加入图标点缀的实现思路
QLineEdit实现定制化的QLineEdit,QLineEdit中间可输入文本,两边加入图标点缀的实现思路,继承QlineEdit,定制属于自己的QLineEdit,方便入门级理解,直接上实现代码//.h#pragma once#include <QLineEdit>#include <QPushButton>#include <QHBoxLayout>#include <QLabel>class specialLineEdit : p.原创 2020-09-26 08:26:34 · 1137 阅读 · 0 评论 -
Qt如何往ini文件里读写数据
如何往ini文件里读写数据static const wchar_t *c_strName = L"Login";static QString cofigFilePath ="xx/xxx" //ini文件路径比如ini里的结构是这样子的[Login]ComputerName=HostName=HostIP=node就是ComputerName、HostName、HostIP等//读取ini里的信息QString readConfigNode(const wchar_t ...原创 2020-09-25 16:31:49 · 502 阅读 · 0 评论 -
Qt中如何给窗体绘制阴影,重写绘图事件
给窗体绘制阴影 void paintEvent(QPaintEvent *event) { //绘制阴影 QPainterPath path; path.setFillRule(Qt::WindingFill); path.addRect(10 10 this->width() - 10* 2, this->height() - 10* 2); QPainter painter(this); ...原创 2020-09-25 15:26:54 · 897 阅读 · 0 评论 -
选中窗体Qt事件处理窗体跟着鼠标移动
Qt事件处理窗体跟着鼠标选中窗体时跟着鼠标移动class MoveFrme :public QDialog{public: MoveFrme(Qwidget *pParent =null):QDialog(pParent){}; ~MoveFrme(){};protected: void mousePressEvent(QMouseEvent *); void mouseMoveEvent(QMouseEvent *); void mouseReleaseE...原创 2020-09-25 12:14:52 · 696 阅读 · 0 评论 -
浮点数的比较方式,比较两个浮点数的大小,通过精度判断大小
bool Equal(double d1, double d2, double dEpsilon){ if (abs(d1 - d2) < dEpsilon) return true; else return false;}bool GreaterThan(double value1, double value2, double dEpsilon){ return value1 - value2 > dEpsilon;}...原创 2020-09-23 19:09:41 · 1395 阅读 · 0 评论 -
如何使用QStackedWidget实现两个页面的翻转
这里提供一种实现思路/*** @brief The RotatingStackedWidget class 反转的stacked*/class RotatingStackedWidget : public QStackedWidget{ Q_OBJECT Q_PROPERTY( float rotateVal READ rotateVal WRITE setRotateVal) // TSC_IGNOREpublic: explicit RotatingSt...原创 2020-09-21 13:20:49 · 677 阅读 · 0 评论 -
C++ 代理模式
以下集中情况下可以用Proxy模式解决问题:1)创建开销大的对象时候,比如显示一幅大的图片,我们将这个创建的过程交给代理去完成,称之为虚代理(Virtual Proxy);2)为网络上的对象创建一个局部的本地代理,比如要操作一个网络上的一个对象(网络性能不好的时候,问题尤其突出),我们将这个操纵的过程交给一个代理去完成,GoF称之为远程代理(Remote Proxy);3)对对象进行控制访问的时候,比如在论坛中不同权限的用户(如管理员、普通用户等)将获得不同层次的操作权限,我们...原创 2020-09-17 19:06:23 · 138 阅读 · 0 评论 -
窗体的鼠标事移动无法实时获取Qcombox的区域解决办法
在窗体上鼠标事件无法实施获取鼠标是否在Qcombox的区域上,继承Qcombox使用事件过滤器解决该问题classNewComboBox;class myFrame: public QDialog{ Q_OBJECT public: myFrame(QWidget* parent=null); ~myFrame(){}; protected: void mouseMoveEvent(QMouseEvent *event);...原创 2020-09-17 13:28:28 · 402 阅读 · 0 评论 -
Qt 中实现两个颜色叠加的处理方式
设置一个叠加的透明颜色 QColor qgroundColor = QColor(128, 128, 128, 128); //叠加初始颜色 QColor tgroundColor = QColor("#ffffff"); //具体的填充颜色 __int64 nFillColor = //等于某一个颜色值 tgroundColor .setRgb(nFillColor); QColor color = getNewColor(tgroundColor , ...原创 2020-09-15 19:11:38 · 2115 阅读 · 0 评论