随笔分类 - QT
创建动态链接库
摘要:值得思考的问题: 多个线程除了在时序上可能产生相互依赖,在其他方面是否也可能产生相互依赖呢? 生产消费者问题:-有n个生产者同时制造产品,并把产品存入仓库中 -有m个消费者同时需要从仓库中取出产品 -规则: 当仓库未满,任意生产者可以存入产品 当仓库未空,任意消费者可以取出产品 编程实验:生产消费者
阅读全文
摘要:多线程间的同步 串行解决方案示例代码: #include <QCoreApplication> #include <QThread> #include <QDebug> #include <QObject> /* sum(n)=> 1 + 2 + 3 + ..... + n sum(1000)= ?
阅读全文
摘要:Qt中的多线程编程 QThread编程示例 class MyThread: public QThread //创建线程类 { protected: void run() //线程入口函数 { for(int i=0; i<5; i++) { qDebug() << objectName() << "
阅读全文
摘要:用Qt做界面的时候,很多时候都会遇见点击一个按钮弹出一个新的窗口的功能。我在刚开始做这个功能的时候,直接是点击一次按钮就new一个新的窗口,每次都只是将子窗口关闭而已,并没有去释放子窗口的资源,这样就会出现重复点击按钮的话,窗口的资源就会越积越多。 所以在新建一个窗口的时候就可以设置窗口的属性,设置
阅读全文
摘要:定义的接口 #ifndef REGEXPINTERFACE_H #define REGEXPINTERFACE_H #include <QString> class RegExpInterface { public: virtual ~RegExpInterface() { } virtual QS
阅读全文
摘要:unique_ptr 不共享它的指针。它无法复制到其他 unique_ptr,无法通过值传递到函数,也无法用于需要副本的任何标准模板库 (STL) 算法。只能移动unique_ptr。这意味着,内存资源所有权将转移到另一 unique_ptr,并且原始 unique_ptr 不再拥有此资源。我们建议
阅读全文
摘要:目录 理解智能指针的原理 智能指针的使用 智能指针的设计和实现 1.智能指针的作用 C++程序设计中使用堆内存是非常频繁的操作,堆内存的申请和释放都由程序员自己管理。程序员自己管理堆内存可以提高了程序的效率,但是整体来说堆内存的管理是麻烦的,C++11中引入了智能指针的概念,方便管理堆内存。使用普通
阅读全文
摘要:学习笔记第二篇,利用Qt实现选项卡式的页面,效果如图1.1-图1.3所示。程序实现的功能是通过点击状态栏实现不同页面的切换,实际上Qt中自带有Tab选项卡式的控件,本文利用StackWidge实现类似的页面切换功能。本文的开发思路以及页面代码参考了陆文周主编的《Qt5开发及实例(第3版)》(中国工信
阅读全文
摘要:QPointer是一个模板类,为QObject对象提供了守卫指针(Guarded Pointer)。什么是守卫指针?守卫指针QPointer<T>类似于普通C++指针T *,有且仅有一点不同:当被引用的对象被删除的时候,守卫指针自动设置为0,不像普通的C++指针将成为“野指针”。这里,T必须是QOb
阅读全文
摘要:1. 线程与界面组件需要注意的地方 在QThread线程中不能直接创建QWidget之类的界面组件. 因为在QT中,所有界面组件相关的操作都必须在主线程中(也就是GUI thread) 所以, QThread线程不能直接操作界面组件. 2.QThread线程如何操作界面组件-方法1 将多线程类对象封
阅读全文
摘要:void MainWindow::on_pushButton_clicked() { //模态 QDialog dlg(this); dlg.resize(100,100); dlg.exec(); qDebug()<<"hello world"; //非模态 QDialog *dlg2=new Q
阅读全文
摘要:1, 将图片资源复制到项目文件夹。 1. 鼠标点击工程文件目录右键选择 "添加新文件..." 2. 在模板中选择 Qt-->Qt Resource File 3. 资源名称,不要有中文, 路径默认保持工程目录即可 4. 选中 res.qrc 资源文件鼠标右键选择 "Open in Editor" 打
阅读全文
摘要:C++ 信号处理 信号是由操作系统传给进程的中断,会提早终止一个程序。在 UNIX、LINUX、Mac OS X 或 Windows 系统上,可以通过按 Ctrl+C 产生中断。 有些信号不能被程序捕获,但是下表所列信号可以在程序中捕获,并可以基于信号采取适当的动作。这些信号是定义在 C++ 头文件
阅读全文
摘要:#include <iostream> class A { public: A(); ~ A(); virtualvoid say() { std::cout << "Hello this is class A!\n"; } static void test() { std::cout << "He
阅读全文

浙公网安备 33010602011771号