Qt多线程同步的几种实现方式
1. 互斥量:QMutex QMutex类提供的是线程之间的访问顺序化。QMutex的目的是保护一个对象/数据结构或者代码段在同一时间只有一个线程可以访问。基本使用方法如下: QMutex mutex; int var; void function() { mutex.lock(); // 访问var var * var; mutex.unlock(); } 如果使用mutex加锁,却没有使用unlock解锁,那么就会造成死锁,其他线程永远也得不到访问变量的机会,所以为了解决这个问题,Qt引入了QMute
物联网精选面试题(一)
1.谈谈虚析构的作用:当父类指针指向子类空间时,如果同过父类指针只能释放子类空间中父类的空间。如果实现了虚析构,那么可以通过父类指针释放子类的所有空间(子类新增,父类的空间)
谈谈信号和槽机制
如果有对象对这个信号感兴趣,它就会使用连接(connect)函数,意思是,将想要处理的信号和自己的一个函数(称为槽(slot))绑定来处理这个信号。也就是说,当信号发出时,被连接的槽函数会自动被回调。这就类似观察者模式:当发生了感兴趣的事件,某一个操作就会被自动触发。
模态对话框和非模态对话框的区别
模态对话框,就是会阻塞同一应用程序中其它窗口的输入。模态对话框,就是会阻塞同一应用程序中其它窗口的输入。与此相反的是非模态对话框,例如查找对话框,我们可以在显示着查找对话框的同时,继续对记事本的内容进行编辑。
Qt的组件定位机制
Qt 提供了两种组件定位机制:绝对定位和布局定位。绝对定位就是一种最原始的定位方法:给出这个组件的坐标和长宽值。用户改变窗口大小,采用绝对定位的组件是不会有任何响应的。