网站建设课程设计文献综述,网页制作三剑客包括,网站页面设计的网址,四川建设网评标专家库一、事件与处理 程序在运算过程中发生的一些事情#xff1a;鼠标单击、键盘的按下... 这些的事件的监控与处理在Qt中不是以信号的方式处理的。 当这些事件发生时会调用QObject类中的功能函数#xff08;虚函数#xff09;#xff0c;所有的控件类都继承了这个类。 常用的鼠… 一、事件与处理 程序在运算过程中发生的一些事情鼠标单击、键盘的按下... 这些的事件的监控与处理在Qt中不是以信号的方式处理的。 当这些事件发生时会调用QObject类中的功能函数虚函数所有的控件类都继承了这个类。 常用的鼠标事件 void mousePressEvent(QMouseEvent *); 按下 void mouseReleaseEvent(QMouseEvent *); 弹起 void mouseMoveEvent(QMouseEvent *); 按下时并移动 void mouseDoubleClickEvent(QMouseEvent *); 双击(会触发按下和弹起) 通过QMouseEvent 可以判断出是个按键 event-button() Qt::LeftButton event-button() Qt::RightButton event-button() Qt::MidButton 常用的键盘事件 void keyPressEvent(QKeyEvent *); 按下 void keyReleaseEvent(QKeyEvent *); 弹起 通过QKeyEvent 可以判断出按键的键值 event-key Qt::Key_Up; 常用的窗口事件 void closeEvent(QCloseEvent *); 窗口关闭 void paintEvent(QPaintEvent *); 窗口显示 void moveEvent(QMoveEvent *); 窗口移动 二、线程与多线程 1、在Qt中什么情况下需要多线程 在单线程时如果在耗时较长的操作那么主界面会被阻塞。 会产生卡死的现象。 2、Qthread类 a、必须要继承 b、必须要重写run函数 3、等待线程 QThread::wait(time); 功能等待线程结束并回收与pthread_join一样。 time设置要等待的秒数如果时间到了线程还没有结束则等待失败默认值是ULONG_MAX(一直等下去)。 4、终止线程 QThread::terminate()让线程结束执行。 terminated()线程结束信号。 练习如何用信号槽在子线程里发送信号给主线程让主线程显示图片(修改GUI主界面)。 1、在创建类时立即添加 Q_OBJECT 2、如果编译后末添加把所有Qt自动生成的文件删除 3、使用qmake -project、qmake、make 三、线程同步 QMutex 互斥量 QReadWriteLock 读写锁 QSemaphore 信号量 QWaitCondition 条件变量 功能与Linux系统中的一样但这4项是跨平台使用的。 转载于:https://www.cnblogs.com/xiwen2017/p/9634769.html