//对于QDialog
//modal, mothod 1 (shake effect)
QDialog dlg(this);
// dlg.setWindowFlags(Qt::FramelessWindowHint);//设置这个属性dialog显示不出来
dlg.setWindowFlags(Qt::FramelessWindowHint | Qt::Dialog);//只有同时设置这连个属性才能正常显示dialog
dlg.move(100,100);
dlg.resize(400,300);
QPushButton *btn = new QPushButton("click", &dlg);
btn->show();
connect(btn, SIGNAL(clicked(bool)), &dlg, SLOT(close()));
dlg.exec();
// //modal, mothod 2 (shake effect)
// QDialog *pDlg = new QDialog(this);
// pDlg->setModal(true);
// pDlg->setWindowFlags(Qt::FramelessWindowHint | Qt::Dialog);
// QPushButton *btn = new QPushButton("click", pDlg);
// btn->show();
// connect(btn, SIGNAL(clicked(bool)), pDlg, SLOT(close()));
// pDlg->show();
// pDlg->resize(400,300);//必须放在此处
// //modal, mothod 3 (no shake effect)
// QDialog *pDlg = new QDialog();
// pDlg->setModal(true);
// pDlg->setWindowFlags(Qt::FramelessWindowHint);
// pDlg->show();
// //noModal, mothod 1
// QDialog *pDlg = new QDialog(this);
// pDlg->setWindowFlags(Qt::FramelessWindowHint);
// pDlg->show();
//对于QWidget
// QWidget *pWgt = new QWidget();//此处不能指定父窗口this,只能是0(NULL)或无参;
// pWgt->setWindowModality(Qt::ApplicationModal);//ok
//// pWgt->setAttribute(Qt::WA_ShowModal, true);//also ok
// pWgt->show();
窗体部件效果之模态
最新推荐文章于 2019-11-27 08:05:33 发布