QWidget设置为模态问题

设置QWidget的Qt::WindowModality属性为Qt::WindowModal和Qt::ApplicationModal,发现窗体仍然不会模态,网上查了一下,有人说改属性只对window有效,找了很多方法,验证原因是因为我的QWidget有Parent,如果构造时设置Parent为NULL的话,就可以了。

以下是工作中用到的常用窗体属性:

setWindowFlags(Qt::FramelessWindowHint);//去除窗体边框 tWindowModality(Qt::ApplicationModal);//设置窗体模态,要求该窗体没有父类,否则无效 Attribute(Qt::WA_TranslucentBackground, true);//设置边框阴影图片时用到

时间: 2024-11-04 21:21:16

QWidget设置为模态问题的相关文章

setCentralWidget就可以把Qwidget设置为QMainWindow的主窗口

前面说的return app.exec() 这句话是用来使程序进入事件循环,除了直接递交的事件外,所有的事件都要在这个循环中被一层一层的分发,最后找到相应的处理函数来处理事件. 顶级窗口和顶级窗口是存在两个不同的事件循环中的,比如说QMainWindow和QWidget,想让一个顶级窗口中的事件能够在另外一个顶级窗口中响应,必须把两个顶级窗口合并,比如setCentralWidget就可以把Qwidget设置为QMainWindow的主窗口. http://blog.csdn.net/ftwor

QWidget 设置背景图片

QWidget 设置背景图片办法: 利用 QPaltette QPixmap pixmap("back.png"); QPalette palette; palette.setBrush(backgroundRole(), QBrush(pixmap)); setPalette(palette); 注意这种方法使用 QWidget parent 为0到时候,即没有父窗体. 如果有父窗体该如何设置呢? f = new QFrame(this); f->setFixedSize(40

Qt - QDialog,QWidget实现模态及非模态(模态Widget不能有父窗口,如果设置无边框就不能阻塞父窗口,但是可以强行设置指定Qt::Dialog,还可以setAttribute(Qt::WA_ShowModal),很多讲究)good

在Qt中QDialog为“窗口”,而QWidget为“部件”,首先还是了解下<Qt 窗口与部件的概念>. 对于 QDialog 的模态及非模态是直接可以实现的,很多课本中都会提到,此处总结下. 模态QDialog 方式一: QDialog dlg(this);dlg.exec(); 方式二: QDialog *pDlg=new QDialog(this);pDlg->setModal(true);pDlg->show(); 非模态QDialog QDialog *pDlg=new

QT模态对话框及非模态对话框

QT模态对话框及非模态对话框 模态对话框(Modal Dialog)与非模态对话框(Modeless Dialog)的概念不是Qt所独有的,在各种不同的平台下都存在.又有叫法是称为模式对话框,无模式对话框等.所谓模态对话框就是在其没有被关闭之前,用户不能与同一个应用程序的其他窗口进行交互,直到该对话框关闭.对于非模态对话框,当被打开时,用户既可选择和该对话框进行交互,也可以选择同应用程序的其他窗口交互. 在Qt中,显示一个对话框一般有两种方式,一种是使用exec()方法,它总是以模态来显示对话框

Bootstarp学习(二十五)模态弹出框--JavaScript触发时的参数设置

使用JavaScript触发模态弹出窗时,Bootstrap框架提供了一些设置,主要包括属性设置.参数设置和事件设置. 属性设置 模态弹出窗默认支持的自定义属性主要有: 比如你不想让用户按ESC键关闭模态弹出窗,你就可以这样做: $(function(){ $(".btn").click(function(){ $("#mymodal").modal({ keyboard:false }); }); }); 参数设置和事件设置进行介绍. 参数设置: 在Bootstr

QT笔记之模态对话框及非模态对话框

模态对话框(Modal Dialog)与非模态对话框(Modeless Dialog)的概念不是Qt所独有的,在各种不同的平台下都存在.又有叫法是称为模式对话框,无模式对话框等.所谓模态对话框就是在其没有被关闭之前,用户不能与同一个应用程序的其他窗口进行交互,直到该对话框关闭.对于非模态对话框,当被打开时,用户既可选择和该对话框进行交互,也可以选择同应用程序的其他窗口交互. 在Qt中,显示一个对话框一般有两种方式,一种是使用exec()方法,它总是以模态来显示对话框:另一种是使用show()方法

Qt 模态与非模态

模态是指当子窗口弹出时,焦点始终被强行集中于子窗口,只要子窗口不退出,焦点就不会被释放.非模态正好相反. 从线程角度讲,模态子窗口的线程是阻塞的,父.子窗口各有一个线程,当创建子窗口时,父线程就被子线程阻塞掉:非模态线程不是阻塞型的,父.子线程可以并行运行. 在Qt的模态中,主要用到QDialog的exec()方法: 1 2 3 4 5 6 7 8 9 10 SonDialog dlg(this); int res = dlg.exec(); if (res == QDialog::Accept

Qt 之 模态、非模态、半模态窗口的介绍及 实现QDialog的exec()方法

一.简述 先简单介绍一下模态与非模态对话框. 模态对话框 简单一点讲就是在弹出模态对话框时,除了该对话框整个应用程序窗口都无法接受用户响应,处于等待状态,直到模态对话框被关闭.这时一般需要点击对话框中的确定或者取消等按钮关闭该对话框,程序得到对话框的返回值(即点击了确定还是取消),并根据返回值进行相应的操作,之后将操作权返回给用户.这个时候用户可以点击或者拖动程序其他窗口. 说白了就相当于阻塞同一应用程序中其它可视窗口的输入的对话框,用户必须完成这个对话框中的交互操作并且关闭了它之后才能访问应用

BootStrap学习笔记JS插件(一)--模态弹出框

一.弹出框基础 <div class="modal show"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss=&quo