- 博客(12)
- 收藏
- 关注
原创 欢迎使用优快云-markdown编辑器
2.1线程管理基础2.1.1启动线程1、使用C++线程库启动线程,可以归结为构造std::thread对象void do_some_work();std::thread my_thread(do_some_work);std::thread可以用可调用(callable)类型构造(C++中的可调用对象包括函数,函数指针,lambda表达式,bind创建的对象,以及重载了函数调用符的类),将带有函数
2017-09-07 08:52:34
231
原创 Qt中创建菜单和工具栏
具体步骤包括如下: 1. 创建并且设置动作 2. 创建菜单把懂做添加到菜单栏上 3. 创建工具栏并且把动作添加到工具栏上。
2017-08-15 08:23:31
966
1
原创 Qt中为应用程序添加图片
常用的方法包括: 1. 把图片保存到文件中,并且在运行时载人它们。 2. 把 XPM 文件包含在掠代码中。(这一方法之所以可行,是因为 XPM 文件也是有效的 C++ 文件。) 3. 使用Qt的资源机制 (resource mechanism) Qt的资源机制方法应用较多:为了利用Qt的资源系统(resource system),必须创建一个资源文件(resource file),并且在识别
2017-08-15 08:21:38
1006
原创 Qt中删除对象
Qt 的父一子对象机制是在 QOhject 中实现的。当利用一个父对象创建一个子对象(一个窗口部件,一个检验器,或是任意的其他类型)时,父对象会把这个子对象添加到自己的子对象列表中。当删除这个父对象时,它会遍历子对象列表并且删除每一个子对象。然后,这些子对象再去删除它们自己所包含的每个子对象。如此反复递归调用,直至清空所有子对象为止。这种父-子对象机制可在很大程度上简化内存管理工作,降低内存泄漏的风
2017-08-15 08:14:34
3591
原创 setupUi()函数
setupUi()函数可以用来初始化窗口,其还会自动将那些符合onobjectName, signalName()命名管理的任意槽与相应的ObjectName的signalName()信号连接到一起。
2017-08-15 08:07:17
6245
1
原创 qmake
qmake工具非常智能,它可以自动检测到用户界面文件gotocelldialog.ui并且可以生成适当的makefile规则来调用Qt的用户界面编译器(user interface compiler, uic)。uic 工具会将gotocelldialog.ui文件转换成C++并且将转换结果存储在ui_gotocelldialog.h
2017-08-15 08:04:40
209
原创 Qt的元对象系统
元对象系统,提供了关键的两项技术:信号-槽以及内省(introspection). 这一机制是这样工作的: 1. Q_OBJECT宏声明了再每个QObject自雷中必须实现的一些内省函数:metaObject()、tr()、qt_metacall()、以及其他一些函数。 2. Qt的moc工具生成了用于由Q_OBJECT声明的所有函数和所有信号的实现。 3. 像connect()和disco
2017-08-15 08:01:32
351
原创 信号和槽
信号和槽connect(sender, SIGNAL, receiver, SLOT(slot));这里的sender和receiver是指向QObject指针,signal和slot是不带参数的函数名。 1. 一个信号可以连接多个槽 connect(slider, SIGNAL(valueChanged(int)), spinBox, SLOT(setValue(int)));//在发
2017-08-15 07:57:23
256
转载 Qt中验证器的使用
Qt提速了三个内置验证器类:QdoubleValidator, QIntValidator, QRegExpValidator类QDoubleValidator类:对于浮点数,使用QDoubleValidator时,只能限制输入的小数位数,但是无法限定数值的范围,要想限制浮点数的取值范围可以考虑采用,QRegExpValidator类QRegExp rx("^(-?[0]|-?[1-9][0-9]{
2017-08-14 19:16:59
2011
转载 有关排序
冒泡排序void bubbleSort(vector<int>& vec){ if (vec.size() == 0) return; for (int i = 0; i < vec.size(); i++) { bool flag = false; for (int j = vec.size()-1; j > i; j--) {
2016-09-18 14:27:55
225
转载 有关C++面向对象面试题
下面代码的输出结果是:#include <iostream>using namespace std;class A{public: virtual void Fun(int number = 10){ cout << "A::Fun with number" << number << endl; }};class B : public A{public:
2016-09-14 20:37:07
2285
转载 如何限制栈和堆对象的产生
产生堆对象的唯一方法是使用new操作,通过禁止使用new就可以禁止产生堆对象。如何禁止new操作呢? new操作执行时会调用operator new 而operator new是可以重载的。因而使用operator为private, 为了对称,最好将operator delete也重载为private。创建栈对象不需要调用new,因为创建栈对象不需要向堆申请内存,而是直接调整栈指针,将对象压栈,而
2016-09-14 11:26:03
268
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人