09 2017 档案
摘要:QVector(数组)、QLinkedList(链表)、QMap(映射表)、QHash(哈希表)、QQueue(队列) QHash遍历举例: 法1: 法2: 法3:
阅读全文
摘要:两个!是为了把非0值转换成1,而0值还是0。 因为C语言中,所有非0值都表示真。 所以!非0值 = 0,而!0 = 1。所以!!非0值 = 1,而!!0 = 0。例如:i=123 !i=0 !!i=1 最后将123转换为1。 就是其他数据类型向bool值的转换
阅读全文
摘要:使用QByteArray方法把数据存入QByteArray需要是char型数据,如果需要存入无符号8位数据,如下: QByteArray data; data[0] = 0xFF; 即使通过data[0] = 0xFF;把无符号数存入QByteArray,在QByteArray也是一char型存放,
阅读全文
摘要:基本概念: QMap提供了一个从类项为key的键到类项为T的直的映射,通常所存储的数据类型是一个键对应一个值,并且按照Key的次序存储数据。同时这个类也支持一键多值的情况,用类QMultiMap可以实现。 QHash具有和QMap几乎完全一样的APi,此类维护这一张哈希表,表的大小和数据项是自适应的
阅读全文
摘要:出现原因: 使用了不存在的对象 数组越界了 用 delete 释放未分配的内存空间,或者超过一次释放同个内存 比如: 顺序不能颠倒 正确: ui->setupUi(this); ui->tableWidget->setColumnWidth(0, 100); 错误: ui->tableWidget-
阅读全文
摘要:Qt::AutoConnection 0 (Default) If the receiver lives in the thread that emits the signal, Qt::DirectConnection is used. Otherwise, Qt::QueuedConnectio
阅读全文
摘要:一、继承QThread(不推荐) 定义一个类,继承QThread,重写run(),当调用方法start(),启动一个线程,run()函数运行结束,线程结束。 二、继承QRunnable Qrunnable是所有可执行对象的基类。我们可以继承Qrunnable,并重写虚函数void QRunnable
阅读全文
摘要:从内存泄露开始? 很简单的入门程序,应该比较熟悉吧 ^_^ 在 从 Qt 的 delete 说开来 一文中,我们提到这个程序存在内存泄露(表现就是析构函数不被调用),而且当时给出了三种解决方法: 将label对象分配到stack而不是heap中 给label设置标记位Qt::WA_DeleteOnC
阅读全文
摘要:Qt中帮程序员做了一些内存回收的事情,但正因为这些反而让对此不熟悉的人会屡屡犯错。 收录一篇不错的文章: 在C++中学习过程中,我们都知道: delete 和 new 必须 配对使用(一 一对应):delete少了,则内存泄露,多了麻烦更大。 Qt作为C++的库,显然是不会违背C++的前述原则的。可
阅读全文
摘要:多态的概念 多态就是当要完成某个行为,当不同的对象去完成时会产生不同的效果。比如:在火车站买票,普通成年人,需要全价买票,学生可以半价买票,军人可以优先买票。 条件:被调用的函数必须是虚函数,并且派生类必须对基类的虚函数进行重写;必须通过基类的指针或者引用调用虚函数。 注意点是:如果基类的函数不是虚
阅读全文