有时候需要处理一些跟界面无关的但非常耗时的事情,这些事情跟界面在同一个线程中,由于时间太长,导致界面无法响应,处于“假死”状态.例如:在应用程序中保存文件到硬盘上,从开始保存直到文件保存完毕,程序不响应用户的任何操作,窗口也不会重新绘制,从而处于“无法响应”状态,这是一个非常糟糕的体验 . 在这种情况下,有一种方法是使用多线程,即在子线程中处理文件保存,主线程负责界面相关. 而如果不想使用多线程,最简单的办法就是在文件保存过程中频繁调用QApplication::processEvents().…
https://www.cnblogs.com/senior-engineer/p/5598133.html https://www.cnblogs.com/findumars/p/5607683.html api含义:QCoreApplication::processEvents() 将处理所有事件队列中的事件并返回给调用者. 问题描述: 当主线程在某个槽函数里正在执行processEvents时, 刚好有一个能响应此槽函数的信号发送过来了(肯定是其他线程发的信号),  这时就可能会发生可怕的…
有时候需要处理一些跟界面无关的但非常耗时的事情,这些事情跟界面在同一个线程中,由于时间太长,导致界面无法响应,处于“假死”状态.例如:在应用程序中保存文件到硬盘上,从开始保存直到文件保存完毕,程序不响应用户的任何操作,窗口也不会重新绘制,从而处于“无法响应”状态,这是一个非常糟糕的体验 . 在这种情况下,有一种方法是使用多线程,即在子线程中处理文件保存,主线程负责界面相关. 而如果不想使用多线程,最简单的办法就是在文件保存过程中频繁调用QApplication::processEvents().…
使用ViewPager切换Fragment,我原先使用系统自带的适配器FragmentPagerAdapter. 切换fragment时,频繁调用oncreatview(). 查看FragmentPagerAdapter的源码,发现两个关键的地方 @Override public Object instantiateItem(ViewGroup container, int position) { if (mCurTransaction == null) { mCurTransaction =…
这几天在搞基于位置的AR应用,採用了github上两款开源项目: mixare android-argument-reality-framework 这两个项目实现机制大致同样.我选取的是android-argument-reality-framework.原因是我觉得他的代码结构要清晰非常多(纯属个人意见). 这两个项目的demo在执行时都会crash,通过查看控制台,能够看到例如以下信息: 07-31 14:35:38.685: W/dalvikvm(13686): ReferenceTab…
* 使用setTimeout index.html <html> <head> <meta charset="UTF-8"> <title>throttle</title> </head> <body> <h2>函数节流 解决函数被频繁调用.浏览器卡顿的问题</h2> <script src="js/throttle.js"></script…
项目做到一定阶段,常常须要在原来的project上调用外部程序. Qt为此提供了QProcess类,QProcess可用于完毕启动外部程序,并与之交互通信. 一.启动外部程序的两种方式: (1)一体式:void QProcess::start(const QString & program, const QStringList & arguments, OpenMode mode = ReadWrite)         外部程序启动后.将随主程序的退出而退出. (2)分离式:void Q…
最近手里几个项目都采用插件的方式进行开发工作,这里记录一下实现方法,给需要的同学一个参考, 在linux系统和window系统都能成功编译通过,不废话直接步骤 第一步:建立插件原型 新建一个Qt项目,实现一个一个实时刷新当前时间这这么一个功能,工程命名为testdemo 如图 效果图 代码 + 第二步:生成插件文件 window下一般是dll后缀,linux下一般是so后缀 这里需要细说下直接上操作图片 1)这里选择Other Project 里面Qt Custom Designer Widge…
系统说明 最近使用opencv编写程序,程序编的差不多就学习使用QT加个界面,首先声明下本人的系统和使用的软件版本, 系统: windows xp QT IDE:QT Creator5.1.0 OpenCV版本:OpenCV2.44 QT编译:Desktop_Qt_5_1_0_MSVC2010_32bit 首先,程序的下载安装,以及OpenCV环境变量的设置,都在前面几篇博文介绍了 OpenCV+VS+QT环境搭建:OpenCV2.4.5 + QT4.8.4 + VS2010 环境搭建 QT5.…
我们知道,win7系统自带有讲述人,即可以机器读出当前内容,具体可以将电脑锁定,然后点击左下角的按钮即可.之前在用Matlab写扫雷游戏的时候,也曾经调用过讲述人来进行游戏的语音提示.具体的Matlab脚本文件如下: sp=actxserver('SAPI.SpVoice');sp.Speak('你好,欢迎来到西安电子科技大学!Hello,Welcome to XD University!')        Qt调用讲述人,需要使用专门的类,具体可以参考http://lynxline.com/q…