- 博客(110)
- 收藏
- 关注
转载 [线程池][完整实现] 转:线程池原理及创建(C++实现)
在实际任务中经常会用到多线程,但是没用过线程池,我以前的方法比较暴力:1)创建线程,不断切换任务,保持线程一直运行,直到所有任务结束;2)不断的创建和销毁线程;一般都用1方法。最近和别人聊天,谈到线程池,就产生了疑问,为啥非得用线程池原文地址不详,如有侵权请留言,转载地址:https://blog.csdn.net/yfcheng_yzc/article/details/54291817#in...
2019-03-22 09:04:54
829
原创 Python打包EXE程序
最近用Python,想做一个服务器和客户端的软件,原来一直是在客户端直接起Python脚本,感觉不够灵活,尤其是运行Python脚本,还要搭建环境,查资料发现Python是支持打包EXE程序的...
2019-02-20 15:01:39
630
原创 Windows特定文件添加右键菜单(三)
Menu Handler实现右键菜单控制微软提供了一系列强大并且灵活Handler供开发者使用,帮助我们实现更加多样化的功能;在shell执行命令或者工作之前,留给开发者一个机会来自定义实现;关联文件类型或者可以指定文件类型的handler没有关联文件类型但是可以被调用的Handler 我们的目标是添加右键菜单,也就是Shortcut menu Handler,在文件右键菜单...
2018-05-07 14:04:00
3462
1
原创 Windows特定文件添加右键菜单(二)
给右键添加菜单项,微软首先推荐静态方式,即给文件类型或者系统子健添加一个conmmand命令如果要添加一个右键菜单项,首先考虑添加范围,1)某一系统子健(系统所有文件、系统所有目录、系统空白右键、shift右键等);2)某一文件类型添加系统子健添加 常用的子健: HKEY_CLASSES_ROOT*:系统所有文件,右键系统任一文件都会添加右键菜单 HKEY_CLASSES_R...
2018-04-25 15:49:00
8982
原创 Windows特定文件添加右键菜单(一)
最近尤其项目需要想给文件添加一个右键菜单,当且仅当右键该文件的时候,右键菜单显示“XXXXTest”原本以为添加一个右键菜单是一个很简单的事情,添加一个command命令即可,但是后来发现command有一定局限性,最终采用了shell handler方式添加右键菜单有两种方式: 静态添加,即添加shell+command实现 动态添加,即添加Shortcut menu hand...
2018-03-27 16:40:55
7792
原创 Qt国际化翻译文件不起作用
今天遇到一个问题,tr的翻译不起作用,刚开始还一直以为自己的翻译没有发布成功,查了之后发现翻译文件ts和qm都没有问题,但是界面不显示中文查了文档才发现是Q_OBJECT的原因tr的原型QString QObject::tr(const char * sourceText, const char * disambiguation = 0, int n = -1)如果类中没有定义Q_OBJECT,tr
2016-08-24 13:36:56
6002
4
原创 OO五大原则
1、单一职责原则应该有且仅有一个原因引起类的改变2、里氏替换原则所有引用基类的地方必须能够透明的使用其子类的对象3、依赖倒置原则高层模块不应该依赖底层模块,两者都应该依赖抽象;抽象不应该依赖细节;细节应该依赖抽象4、接口隔离原则类间依赖应该建立在接口上;建立单一接口,不要建立庞大臃肿的接口;接口应该尽量细化5、开闭原则软件应该对扩展开放,对修改关闭;应该通过扩展
2016-07-19 22:00:43
471
原创 Python行读取文件进行拷贝
每次遇到一个新语言,我首先想写的就是 行对行进行文件拷贝#文件内容拷贝,行读取拷贝f1 = open("text1.txt", "r")f2 = open("text2.txt", "a")while True: str = f1.readline() if str: f2.write(str) else: breakf1.close()f
2016-07-15 16:19:31
1434
原创 Python学习(三)
Python的基本数据类型除了数字、字符串,还有列表,元组,字典列表 列表的索引也是从0开始,作为弱检查型语言,列表元素支持不同数据类型list = [1, '1', "1", 2.0]访问列表中的元素同样可以使用下标 []list = [1, '1', "1", 2.0]print(list[0])print(list[0:3])print(list)可以对list元素进行赋值操作list
2016-07-15 14:23:32
692
原创 Python学习(二)
字符串在每种语言中都是很经典的问题,今天学习一下Python的字符串Pyhton创建字符串,用单引号或者双引号都可以,没有什么区别var1 = 'Hello World!'var2 = "Python Runoob"在Pyhton里面没有单字符,一个字符也会被作为一个字符串;所以都是子字符串的感念可以用下标[]访问子字符串,s = "yangshaofei"print("s[0]", s[0])P
2016-07-15 11:04:43
480
原创 Python学习(一)
最近项目需求,写了一点Python,觉得很有意思,决定好好学习一下Python文档下载地址:www.python.org/doc/,其他在线教程也很多图方便,在win系统安装了Python(python-3.5.2-amd64.exe),安装很简单。Python是跨平台的先来个简单的测试 在Python 3.X中默认采用UTF-8编码,可以正常解析中文(2.X默认是ASCII) 解释型语言输出就
2016-07-14 10:52:43
474
原创 Qt 加载动态链接库
•在QT程序中静态调用已经存在的动态链接库–修改.pro文件–加入LIBS += -L路径 –l名字–在应用程序中引用头文件–调用函数 //假如test.dll中定义了函数 void test();.pro文件中,加入LIBS += -L../ –ltest.cpp文件中#include “test.h”...test();... •在Q...
2015-05-30 09:33:20
1919
原创 Qt 一个进度条控制两个QTableWidget
界面如下所示,一个窗口中包含两个QTableWidget,通过右边的滚动条控制两个QTableWidget的滚动代码如下: #ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>#include <QScrollBar>#include <QtCore/QVariant&...
2015-05-09 17:02:30
2228
原创 Qt 事件处理 快捷键
<pre name="code" class="cpp"><span style="font-size:14px;">#include "mainwindow.h"#include <QKeyEvent>#include <QMessageBox>#include <QDebug>
2015-04-29 11:11:50
3540
转载 C++头文件包含 include 和 class
在大型的C++工程中,类与类之间关系比较复杂,经常相互引用,如果处理不好,就会带来很大麻烦前置声明在程序中引入了类类型的B.在声明之后,定义之前,类B是一个不完全类型(incompete type),即已知B是一个类型,但不知道包含哪些成员.不完全类型只能以有限方式使用,不能定义该类型的对象,不完全类型只能用于定义指向该类型的指针及引用,或者用于声明(而不是定义)使用该类型作为形参类型或返
2015-04-20 22:13:11
1716
转载 C++ 虚继承
文章转载自http://blog.csdn.net/wangxingbao4227/article/details/6772579C++中虚拟继承的概念 为了解决从不同途径继承来的同名的数据成员在内存中有不同的拷贝造成数据不一致问题,将共同基类设置为虚基类。这时从不同的路径继承过来的同名数据成员在内存中就只有一个拷贝,同一个函数名也只有一个映射。这样不仅就解决了二义性问题,也节省了内存,避免了数据
2015-03-31 21:57:40
498
转载 C++友元函数
文章转载http://www.cnblogs.com/BeyondAnyTime/archive/2012/06/04/2535305.html 1.友元函数的简单介绍1.1为什么要使用友元函数在实现类之间数据共享时,减少系统开销,提高效率。如果类A中的函数要访问类B中的成员(例如:智能指针类的实现),那么类A中该函数要是类B的友元函数。具体来说:为了使其他类的成员函数直接访问该类的私有变量。即:
2015-03-31 20:06:46
588
原创 QString 转换 wchar
QString 转换 constwchar_t * const wchar_t * tablename =reinterpret_cast<const wchar_t *>(name.utf16());
2015-03-17 11:18:20
1409
原创 Qt Widget和Dialog区别和使用,QWidget一闪而过
在开发过程发现子窗口的析构函数没有执行,后来查找发现,在创建对象的时候没有传递this指针例如Model *model = new Model();和Model *model = new Model(this);this指针没有传递,因此无法调用子对象的析构函数。当子对象定义为指针,会出现因为没有被释放而无法被释放的现象,当关闭子窗体时不会调用析构函数,只有关闭父窗体时,才会调用子窗体的...
2015-03-17 11:12:07
8806
8
原创 C++全局变量的实用
C++应该是不提倡实用全局变量的,但是有时候做个小东西或者小项目,使用全局变量还是很方便的新建一个头文件Data.h, 在其中声明全局变量#ifndef DATA_H#define DATA_Hextern QStringList names;extern QStringListpasswords;extern QStringListauthority;extern
2015-03-17 11:09:02
637
原创 VS2010 Qt5开发实用技能
1、QGUI头文件的修改Qt4升级到Qt5的过程中,要修改QGUI头文件(1) #include 要改成 #include #include (2)找不到在 pro 文件里加:QT += widgets(3)#include #include #include #include #include #include #include
2015-03-17 10:56:51
1213
原创 C++ 位域操作 置0置1
bitset bp; unsigned char up = 0; cout << bp << endl; cout << (unsigned)up << endl; bp.set(3); up = up | (1UL<<3); cout << bp << endl; cout << (unsigned)up << endl; bp.reset(3); up = up &
2015-02-06 15:47:53
1110
原创 C++ string to char *
string s = "yangshaofei";const char *p = s.c_str();
2015-02-06 14:47:09
3710
原创 C++ biteset
#include #include using namespace std;int main(){ bitset b1; bitset b2("00001111");//不能用非0\1字符初始化或赋值 bitset b3(0xff); bitset b4(0xff); if (b2.any())//has 1 bit ? { cout << "b2 has 1 i
2015-02-05 15:55:21
1348
原创 C++ vector
#include #include #include using namespace std;int main(){ string word; vector v1; //while (cin >> word) //{ // v1.push_back(word); //} for (vector::size_type ix = 0; ix != 10; ++ix)
2015-02-05 14:21:08
462
原创 VS2010 C++变量初始化global local
C++ Primer中文第四版习题#include #include using namespace std;string global_str;int global_int;int main(){ string local_str; int local_int; cout << global_str << endl; cout << global_int << e
2015-02-04 11:59:54
1540
转载 Qt-Base Class?QMainWindow?QWidget?QDialog
在创建Qt Gui Application时,总会让你选择在QWidget,QMainWindow和QDialog中选择一个Base Class。这三个类具体有什么区别呢?在Qt的手册和网上找了一些资料。先看官方的手册:QWidget Class ReferenceThe QWidget class is the base class of all user interface o...
2015-01-09 09:42:11
3311
1
原创 Qt-计算器
用Qt做一个简单的计算器用VS2010新建Qt Application,一切默认,项目创建完成之后,双击ui文件,在Qt Designed中编辑UI界面主界面为QMainWindow,设置sizePolicy的水平策略和垂直策略为fixed,其他默认在主界面中添加QToolButton,编辑数字按钮和命令按钮,设置button相关属性,主要包括objectName、geometry...
2015-01-08 19:37:50
1627
原创 Qt环境搭建
去年学习的时候无意中接触到Qt,当时觉得很不错,尤其是在厌烦了MFC和SWing,觉得Qt很有前景,当时小用了一下立竿见影,今年找工作没想到最后从事Qt开发,现在要认真学习Qt我用的开发环境是VS2010和Qt designed,具体安装忘记了,反正是安装了Qt 5和Qt plug for VS2010。安装Qt的时候默认安装了Qt Creator,但是没用过。Qt Creator和VS2...
2015-01-07 16:30:08
616
原创 PHP环境搭建
本科毕业设计的时候用过一段时间PHP,自己完整的做了一个网站,那时候觉得PHP很不错,因此现在继续深入学习我的PHP开发环境:开发工具:zend studio服务器:Apache Lounge httpd-2.40-win32-ssl_0.98-VC9PHP:PHP 5.4.34 PHP 5.4.34-Win32-VC9系统:win7因为PHP用的是VC9编译的,因此a...
2014-11-03 11:23:20
537
原创 Android环境搭建
Android开发现在很火,我终于淡定不住了,最近有时间准备摸索一下首先得准备一个Android的开发环境,在网上搜了很多教程,搞来搞去基本上就几个东西,Android SDK、Eclipse、 ADT、JDKAndroid SDK:Android软件开发工具包,里面包含Android的系统、API、编译工具、调试工具等等,还有文档、例子、源码之类的,想详细了解的百度搜搜SDK的文件目录和...
2014-10-31 11:20:55
590
转载 Linux文件操作,Linux系统函数和C标准库
Linux的文件操作API涉及到创建、打开、读写和关闭文件。1.linux API 创建int creat(const char *filename, mode_t mode); 参数mode指定新建文件的存取权限,它同umask一起决定文件的最终权限(mode&umask),其中umask代表了文件在创建时需要去掉的一些
2014-08-25 10:02:04
1188
原创 C语言逐行读取文件内容,写入另外一个文件
#include #include #include int main(void){ FILE * fp; FILE * fd; char buf[1024]; fp=fopen("data1.txt","r"); if(fp==NULL) { perror("open file"); exit(0); } fd=fopen("data2.txt","w")
2014-07-08 16:26:23
17067
1
原创 查看位域值存储
#include #pragma pack(push,1)union U { unsigned char byte; struct BF { unsigned int b0:1;//a unsigned int b1:1;//b unsigned int b2:1;//c } bf;} u;#pragma pack(p
2014-05-20 10:56:03
767
原创 C语言--位域
有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位。例如在存放一个开关量时,只有0和1 两种状态, 用一位二进位即可。为了节省存储空间,并使处理简便,C语言又提供了一种数据结构,称为“位域”或“位段”。所谓“位域”是把一个字节中的二进位划分为几个不同的区域, 并说明每个区域的位数。每个域有一个域名,允许在程序中按域名进行操作。 这样就可以把几个不同的对象用一个字节的二进制位
2014-05-16 14:07:50
628
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人