Chinaunix首页 | 论坛 | 博客
  • 博客访问: 693516
  • 博文数量: 90
  • 博客积分: 3225
  • 博客等级: 少校
  • 技术积分: 1200
  • 用 户 组: 普通用户
  • 注册时间: 2010-08-20 11:04
个人简介

菩提本无树,明镜变非台 本来无一物,何处惹尘埃

文章分类

全部博文(90)

文章存档

2015年(1)

2014年(12)

2013年(15)

2012年(31)

2011年(8)

2010年(23)

分类: C/C++

2012-12-19 11:48:37

  模态是指当子窗口弹出时,焦点始终被强行集中于子窗口,只要子窗口不退出,焦点就不会被释放。非模态正好相反。

  从线程角度讲,模态子窗口的线程是阻塞的,父、子窗口各有一个线程,当创建子窗口时,父线程就被子线程阻塞掉;非模态线程不是阻塞型的,父、子线程可以并行运行。

1 在Qt的模态中,主要用到QDialog的exec()方法:

  1. QDialog dlg(this);
  2. int res = dlg.exec();
  3. if (res == QDialog::Accepted)
  4. {
  5.     QMessageBox::information(this, "INFORMATION", "You clicked OK button!");
  6. }
  7. if (res == QDialog::Rejected)
  8. {
  9.     QMessageBox::information(this, "INFORMATION", "You clicked CANCEL button!");
  10. }
  通过exec()的返回值判断用户触发的是哪个按钮。

2 在非模态中,主要用到了QDialog中的show()方法:

  1. QDialog *dlg = new SonDialog(this);
  2. dlg->show()

阅读(5242) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~