我的代码如下: MyDialog::MyDialog(QWidget *parent) : QDialog(parent), ui(new Ui::MyDialog) {
ui->setupUi(this);
QTimer *timer=new QTimer(this);
connect(timer,SIGNAL(timeout()),this,SLOT(Disapper()));
timer->start(2400);
sleep(10);
qDebug()<<"hh";
}
void MyDialog::Disapper() {
qDebug()<<"we";
reject();
}
输出台: hh we
MyDialog是一个对话框,在外面被以模态exec()调用,2.4s后自动关闭,为什么槽函数没有立即执行,而是先执行输出hh才输出we?
槽函数是你的timeout触发的吧,2.4秒触发的话,那就是hh输出后才输出we
但是我把sleep(1)改为sleep(10),输出结果是hh才到we,这我就不懂了,求解答?
@hugo_something: 如果无论改多长时间都这样,是否是触发的定时时间是排队的,必须处理完这个构造函数才能继续后续的事件
http://www.kuqin.com/qtdocument/qtimer.html 这句话“一旦窗口系统事件队列中的所有事件都已经被处理完,一个定时为0的QTimer就会到时间”是否是原因
@2012: 有可能,之前我也有这样的考虑,但就是不太确定。再问你一个问题,我看你有接触过Qt,你觉得Qt怎么样,特别是Linux Qt的发展前途(钱途)。我是今年刚毕业的新人,现在在公司这里做工控产品的Linux Qt界面(公司是做工控产品的),现在主要是根据客户不同的界面需求进行代码的修改和界面设计,感觉只是在修改代码,学不到东西。而且现在Qt感觉没落了,并且Qt界面只是为嵌入式系统做界面服务,不是核心岗位(感觉以后想转管理不好弄),看不懂前景的感觉。有在考虑投身java行业,但又觉得java的人太多(层次不齐),不知道怎么发展?能分析一下吗?Qt?C++?java?本科生一枚。
@hugo_something: 基于QT也不错,就像当年的C++ MFC之类,在你精通了之后,再学习其他的就会快很多,一切都是浮云
重点找找资料学学关于QT的设计机制和相关知识,可扩展到LINUX的平台知识,这个毕竟是目前企业的主流平台
相对来说QT范围窄一些,可以学学JAVA,毕竟人力需求量较大