熟悉的陌生人 Qt 是事件驱动的,所以当你用Qt的时候,几乎时时刻刻和 QEventLoop 打交道.,只是你可能没有意识到: QCoreApplicaton::exec() QApplication::exec() QDialog::exec() QThread::exec() QDrag::exec() QMenu::exec() ... 在前面列出的这些常见函数的背后,都有各自的QEventLoop,可能是我们很少有机会想到自己显式使用QEventLoop的缘故吧,对这个类似乎总是有些陌生…
是否一直有个疑问,当iphone手机正在运行一个APP,如果按Home键后,那么原来正在运行的程序还在运行吗?如果开发过ios程序,可能不是问题,如果没有开发过的,可能会疑惑了,我就简单的说一下.以几个问题的形式来说明,以正在运行QQ为例. 1.为什么按home键后,长时间不操作,再启动qq的话,会重新运行qq(没有回到原来的状态)? 答:iphone实际上是伪后台,按home键后,程序就退出了.所以我们iphone中使用的程序一般都没有退出键. 试想一下,如果程序有退出键的话,那么当程序无响应…
最近遇到一个莫名的问题,在HP-UX B.11.31 U ia64平台下,程序PetriService在接收到产品化退出或Ctrl-C时,程序在main函数返回后析构全局的CTQueue<SMsgEntry*>(继承自标准库list) 时程序core掉.     初步考虑主线程退出时,其他线程还在使用此全局变量所致.但在程序返回退出前,停掉其他线程,仍在main返回后析构时挂掉.于是将所有相当代码行注释掉,发现只要此入CTQueue就会挂掉,gdb调试,及在查看标准库list文件及CTQueu…
我在Qt主程序中开启一个线程,线程中使用信号-槽来产生QMainWindow(GUI),main函数代码如下:int main(int argc, char *argv[]){ QApplication a(argc, argv); NetWorkThread thread; thread.start(); // 进入事件循环 return a.exec();} 对于生成的QMainWindow,我全部手动关闭后,再想发送信号来创建,就无法创建出来了~加断点调试起来看,此时信号-槽好像断开了,于…
卸载事件(onunload) 当用户退出页面时(页面关闭.页面刷新等),触发onUnload事件,同时执行被调用的程序. 注意:不同浏览器对onunload事件支持不同. 如下代码,当退出页面时,弹出对话框"您确定离开该网页吗?". 运行结果:(IE浏览器) <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/htm…
最近一直在倒腾事件循环的东西,通过查看Qt源码多少还是有点心得体会,在这里记录下和大家分享.总之,对于QStateMachine状态机本身来说,需要有QEventLoop::exec()的驱动才能支持,也就是说,在你Qt程序打开的时候,最后一句 QCoreApplication::exec() 已经由内部进入了状态循环 int QCoreApplication::exec() { ... QThreadData *threadData = self->d_func()->threadData;…
MainWindow::MainWindow(QWidget *parent) :   QMainWindow(parent)   {   pThreadCon = new CSerialThread();   pThreadCon->start();       m_pTimer = new QTimer();   connect(m_pTimer,SIGNAL(timeout()),SLOT(onTimer()));   m_pTimer->start(1000);   }       v…
周末天冷,索性把电脑抱到床上上网,这几天看了 dbzhang800 博客关于 Qt 事件循环的几篇 Blog,发现自己对 Qt 的事件循环有不少误解.从来只看到现象,这次借 dbzhang800 的博客,就代码论事,因此了解到一些 Qt 深层的实现,虽然是在 Qt 庞大的构架里只算的是冰山的一角,确让人颇为收益. 从 dbzhang800 的博客中转载两篇关于事件循环的文章,放在一起,写作备忘. 再次提到的一点是:事件循环和线程没有必然关系. QThread 的 run() 方法始终是在一个单独…
Microsoft Visual Studio 2015社区版提供了强大的开发体验,且 Qt 提供了预编译版本.然而,由于客户提出兼容Windows XP ~ Windows 8.1 这样宽泛的环境要求,使得我们不得不考虑更换工具链.经过反复对比测试,在Mingw32, Cygwin,  MSYS2, Visual Studio 2010几个工具链中,综合性能.未来的可持续性.中文支持以及第三方库支持(比如qwt),认为MSYS2较为合适.在后续复杂的迁移过程中,基本是平顺的,但也遇到了一些问题…
Qt事件机制 Qt程序是事件驱动的, 程序的每个动作都是由幕后某个事件所触发.. Qt事件的发生和处理成为程序运行的主线,存在于程序整个生命周期. Qt事件的类型很多, 常见的qt的事件如下: 键盘事件: 按键按下和松开. 鼠标事件: 鼠标移动,鼠标按键的按下和松开. 拖放事件: 用鼠标进行拖放. 滚轮事件: 鼠标滚轮滚动. 绘屏事件: 重绘屏幕的某些部分. 定时事件: 定时器到时. 焦点事件: 键盘焦点移动. 进入和离开事件: 鼠标移入widget之内,或是移出. 移动事件: widget的位…
1.一般我们的事件循环都是由exec()来开启的,例如下面的例子: 1 QCoreApplicaton::exec() 2 QApplication::exec() 3 QDialog::exec() 4 QThread::exec() 5 QDrag::exec() 6 QMenu::exec() 这些都开启了事件循环,事件循环首先是一个无限“循环”,程序在exec()里面无限循环,能让跟在exec()后面的代码得不到运行机会,直至程序从exec()跳出.从exec()跳出时,事件循环即被终止…
http://www.cnblogs.com/-wang-cheng/p/4973021.html 1.一般我们的事件循环都是由exec()来开启的,例如下面的例子: 1 QCoreApplicaton::exec() 2 QApplication::exec() 3 QDialog::exec() 4 QThread::exec() 5 QDrag::exec() 6 QMenu::exec() 这些都开启了事件循环,事件循环首先是一个无限“循环”,程序在exec()里面无限循环,能让跟在ex…
1.一般我们的事件循环都是由exec()来开启的,例如下面的例子: 1 QCoreApplicaton::exec() 2 QApplication::exec() 3 QDialog::exec() 4 QThread::exec() 5 QDrag::exec() 6 QMenu::exec() 这些都开启了事件循环,事件循环首先是一个无限“循环”,程序在exec()里面无限循环,能让跟在exec()后面的代码得不到运行机会,直至程序从exec()跳出.从exec()跳出时,事件循环即被终止…
import asyncio import functools import os import signal """ 信号值 符号 行为 2 SIGINT 进程终端,CTRL+C 9 SIGKILL 强制终端 15 SIGTEM 请求中断 20 SIGTOP 停止(挂起)进程 CRTL+D """ def exit(sign_name): print(f"获取信号{sign_name}: exit") loop.stop()…
在AndroidMenifest.xml文件里面的Activity声明中,增加自己的Theme声明,如下: <activity android:name=".MyOrderListServiceActivity" android:theme="@style/MyTheme" > 在values的style.xml文件里 声明 一个style,起名为MyTheme,注意这里面有我自定义的东西,涉及到动画的声明,就只有 <item name="…
nohup命令常常用于让进程在后台执行.但是如果仅仅是执行: nohup command & 之后直接关闭终端的话,会发现之前已经启动进程也会退出.解决办法:nohup command & 之后,看到输出: appending output to nohup.out还需要按终端上键盘任意键退回到shell输入命令窗口,然后通过在shell中输入exit来退出终端. [参考]1.http://www.cnblogs.com/allenblogs/archive/2011/05/19/2051…
1.退出调试 按Ctrl+C 2.退出while循环 比如 #include <stdio.h> #include <stdlib.h> int main() { long a; while (scanf("%ld",&a)!=EOF) { printf("%ld\n",a); } printf("End\n"); ; } 按Ctrl+Z 再按回车,跳出while循环并执行后续操作 经典使用: while (sca…
代码如下: Session.Abandon(); Response.Redirect("Login.aspx"); 但是这样点点击浏览器的后退仍然可以回到刚才的页面,这可不行,在网上找了一下,也有不少人遇到这样的问题,试了一些方法,都不管用.不过最后还是找到,共享一下. http://blog.csdn.net/lhypang2006/archive/2008/03/11/2170751.aspx 复制代码 代码如下: Session.Abandon(); Response.Write…
用CAS的退出,仅仅能使用它自己的那个退出界面,假设有这种要求, 要求退出后自己主动跳转到登录界面, 该怎样做呢? 以下这篇文章实现了退出后能够自己定义跳转界面. 用了CAS,发现退出真是个麻烦事,退出后跳转到了CAS的注销页面,并且不关闭浏览器的话.事实上并没有真的退出.输入地址仍是登陆状态. 为了实现退出后登陆到跳转页面,做了下面配置: 1.server 端 改动src\main\webapp\WEB-INF\cas-servlet.xml里的logoutController 添加p:fol…
程序显示是类型转换异常,原因是  ic—launcher 不是layerlist图形,而是bmp类型(此处不是指格式)图片,因此取出来后经过红框内强制类型转换导致出错. 为什么我当时要把他强制转换? 是因为开始时候不小心把绿框内写成了layerdrawable,红框内使用eclipse自动添加,后来绿框内我自己改正了,红框内的却忽略了,…
打开/phpcms/modules/member/index.php 搜索如下代码: showmessage(L('logout_success').$synlogoutstr, $forward); 去掉:.$synlogoutst   如下: showmessage(L('logout_success'),$forward); 保存上传. 不过个人习惯是,把默认的代码用注释的方法修改.作适当的注释记录,以便后查.…
public void execute(int hour){ long t1 = System.currentTimeMillis(); while(true){ long t2 = System.currentTimeMillis(); if(t2-t1 > hour*60*60*1000){ break; }else{ //TODO your work } } }…
1.windug附加进程. 2.~* kb 3.看堆栈…
工具-选项-调试-常规,“调试停止时自动关闭控制台”选项打钩.…
重写LogouFilter类 import org.apache.shiro.web.filter.authc.LogoutFilter; public class ShiroLogoutFilter extends LogoutFilter { @Override protected boolean preHandle(ServletRequest request, ServletResponse response) throws Exception { //清除HTTPSession的用户信…
转自:http://blog.csdn.net/jdsjlzx/article/details/45582719 众所周知Listview和Gridview的刷新界面的方式是调用adapter.notifyDataSetChanged()进行界面刷新. 但是此方法有其弊端,他是将界面中的数据全部刷新一遍,不论数据有没有变化.如果listview加载了很多的数据(如:100条) 在进行刷新时就会造成很大的系统开销如何像qq空间个人动态那样点赞只刷新一条呢: 主要原理: 对listview的某一个i…
QProgressBar 进度条+QSplashScreen 启动界面 知识点: 1.进度条 #将进度条的最大值.最小值设置为相同时,产生跑马灯效果 self.progressBar.setMinimum(0) self.progressBar.setMaximum(0) 一些关于进度条的补充知识点: Qt提供了两种显示进度条的方式,一种是QProgressBar,另一种是QProgressDialog,QProgressBar类提供了种横向或纵向显示进度条的控件表示方式,用来描述任务的完成情况…
一个项目,要接收 UDP 数据包,解析并获取其中的数据,主要根据解析出来的行号和序号将数据拼接起来,然后将拼接起来的数据(最重要的数据是 R.G.B 三个通道的像素值)显示在窗口中.考虑到每秒钟要接收的数据包的数量较大,Python 的处理速度可能没有那么快,而且之前对 Qt 也比较熟悉了,所以用Qt 作为客户端接收处理数据包,用近期学习的 Python 模拟发送数据包. 数据格式 在 TCP/IP 协议中,UDP 数据包的大小是由限制的,因此用 UDP 传输数据时,还要在 UDP 层上再封装一…
个人翻译 原文:https://nodejs.org/en/docs/guides/event-loop-timers-and-nexttick/ The Node.js Event Loop, Timers, and process.nextTick() What is the Event Loop? 什么是事件循环圈? The event loop is what allows Node.js to perform non-blocking I/O operations — despite…