关于QT自定义类不能调用问题: 在Main()函数里面一定要定义include“XXX.cpp”include“XXX.h”,具体原因我也不知道为什么这样定义,是在一个贴吧看见的,弄了好久才解决. 第二个问题:关于使用vector,在退出时出现错误! 下面是定义和初始化都没问题的,网上说是release出现问题什么的,要把宏定义为0.这些试了都不行,可能是QTcreator内部的debug的问题,用release就没有问题了. Debug调试,退出出错! release调试完全好的!…
1. Qt的中IO操作 (1)Qt中IO操作的处理方式 ①Qt通过统一的接口简化了文件和外部设备的操作方式 ②Qt中的文件被看作一种特殊的外部设备 ③Qt中的文件操作与外部设备的操作相同 (2)IO操作中的关键函数接口——IO操作的本质:连续存储空间的数据读写 ①打开设备:bool open(OpenMode mode); ②读取数据:QByteArray read(qint64 maxSize); ③写入数据:qint64 write(const QByteArray& byteArray);…
1.Qt中的主窗口 主窗口为建立应用程序用户界面提供了一个框架 Qt开发平台中直接支持主窗口的概念 QMainWindow是Qt中主窗口的基类 QMainWindow继承于QWidget是一种容器类型的组件 QMainWindow只能作为顶层组件 2.QMainWindow的优势--QMainWindow类拥有自己的布局 3. 主窗口中的菜单 (1)Qt提供与菜单相关的类组件 (2)QMenuBar类.QMenu类和QAction类 ①QMenuBar:QMenuBar类提供了一个水平的菜单栏,…
在Qt库中为我们提供了一系列的基于模板的容器类.这些类可以被用来存储特定类型的项.例如,如果你需要一个大小可以变得QString数组,那么可以使用QVector<QString>. 这些容器类都是隐式共享的,可重入的,并且在速度上进行了优化,内存占用少,内联代码扩展少,从而可以产生更小的可执行文件.此外,当他们被用作只读容器时,还是线程安全的.对于遍历这些容器来说,可以使用两种类型的迭代器:Java风格的迭代器和STL风格的迭代器.其中,Java风格的迭代器更容易使用,特别是对于Java工作人…
1. Qt中的多线程与线程池 今天学习了Qt中的多线程和线程池,特写这篇博客来记录一下 2. 多线程 2.1 线程类 QThread Qt 中提供了一个线程类,通过这个类就可以创建子线程了,Qt 中一共提供了两种创建子线程的方式,先看一下这个类中提供的一些常用 API 函数: 2.1.1 常用函数 // QThread 类常用 API // 构造函数 QThread::QThread(QObject *parent = Q_NULLPTR); // 判断线程中的任务是不是处理完毕了 bool Q…
Qt中MVC的M(Model)简单介绍 Qt有自己的MVC框架,分别是model(模型).view(视图).delegate(委托),这篇文章,简单的介绍以下Qt中有关model(模型)的类以及一些基本的使用. Qt官方的文档已经很详细了,如果想要详细的去了解,建议花点精力去看官方文档. @ 目录 Qt中MVC的M(Model)简单介绍 类继承的结构 QStringListModel QAbstractProxyModel QSortFilterProxyModel QTransposeProx…
一.详细描述 QWidget类是所有用户界面对象的基类.通俗的来讲,Qt基本上所有的UI类都是由QWidget继承出来的,而QWidget继承于QObject,  大家可以查阅Qt source 即可发现一些微妙的写法,如这篇文章有详细介绍:Qt 库对象数据的声明和使用. 窗口层次 窗口部件是用户界面的一个原子:它从窗口系统接收鼠标.键盘和其它事件,并且在屏幕上绘制自己的表现.每一个窗口部件都是矩形,并且它们按Z轴顺序排列的.一个窗口部件可以被它的父窗口部件或者它前面的窗口部件盖住一部分. QD…
Qt中利用QTime类来控制时间,这里简单介绍一下QTime的成员函数的用法: ---------------------------------------------------------------------------------------------------------------------------------------- QTime::QTime() 默认构造函数,构造一个时,分,秒都为0的时间,如00:00:00.000(午夜) QTime::QTime(int…
C++中的stack 实现一种先进后出的数据结构,是一个模板类. 头文件 #include<stack> 用法(以int型为例): stack <int> s; //定义一个int型栈 s.empty(); //返回栈是否为空 s.size(); //返回当前栈中元素的个数 s.push(); //在栈顶上堆进一个元素 s.pop(); //删除掉栈顶上的元素 s.top(); //返回栈顶的元素,并不会删除 代码示例: #include <iostream> #inc…
C++中的queue 实现一种先进先出的数据结构,是一个模板类 头文件 #include<queue> 用法(以int型为例): queue<int> Q; //定义一个int型队列 Q.empty(); //返回队列是否为空 Q.size(); //返回当前队列长度 Q.front(); //返回当前队列的第一个元素 Q.back(); //返回当前队列的最后一个元素 Q.push(); //在队列后面插入一个元素, 比如插入数字5: Q.push(5) Q.pop(); //从…