• 23470阅读
  • 8回复

问各位一个问题, 我new 出来一个 QDialog 如何让该对话框show的时候显示在屏幕的最前面? [复制链接]

上一主题 下一主题
离线gery_sunjian
 
只看楼主 倒序阅读 楼主  发表于: 2009-03-20
问各位一个问题, 我new 出来一个 QDialog 如何让该对话框show的时候显示在屏幕的最前面?
离线guyansrg

只看该作者 1楼 发表于: 2009-03-20
可以在窗口Qt::WindowFlags里添加设定 Qt::WindowModal 。这样窗口就会显示在所有程序的前面。
离线guyansrg

只看该作者 2楼 发表于: 2009-03-20
你可以在窗口初始化的时候添加下面代码

setWindowFlags(Qt::WindowModal);
离线gery_sunjian
只看该作者 3楼 发表于: 2009-03-20
thinks !
离线xyxo2008
只看该作者 4楼 发表于: 2009-03-20
引用楼主gery_sunjian于2009-03-20 14:20发表的 问各位一个问题, 我new 出来一个 QDialog 如何让该对话框show的时候显示在屏幕的最前面? :
问各位一个问题, 我new 出来一个 QDialog 如何让该对话框show的时候显示在屏幕的最前面?

假设有类:
class MyDialog: public QDialog
{
Q_OBJECT

public:
    MyDialog(QWidget* parent=0);
    ~MyDialog();
};

构造时设置modal:

MyDialog::MyDialog(QWidget* parent) :
    QDialog(parent, Qt::FramelessWindowHint)
{
.........
........
}

使用时:
MyDialog* dialog;
dialog = new MyDialog;
dialog->exec()   //不要用show();
离线zzh12215
只看该作者 5楼 发表于: 2012-03-21
m_pDeskLrc->setWindowFlags ( QDialog | Qt::WindowStaysOnTopHint);
离线淳于半邪

只看该作者 6楼 发表于: 2012-03-21
引用第5楼zzh12215于2012-03-21 11:33发表的  :
m_pDeskLrc->setWindowFlags ( QDialog | Qt::WindowStaysOnTopHint);

这个答案应该可以,楼主可以试试
离线roywillow

只看该作者 7楼 发表于: 2012-03-21
其实不是很懂LZ的意思
LZ的意思是,show()后让dialog显示在前面?我印象中show()之后就是在前面的啊,难道还跑后面去?
或者说,想让这个窗口为模态窗口?那就参考setModal()
再或者,想让这个窗口常居顶端?那参考Qt::WindowStaysOnTopHint
再再或者,这个窗口已经显示出来了,但是却让程序的其他窗口得到焦点,被放到后面去了?QWidget::raise()应该就能解决
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线dxfans

只看该作者 8楼 发表于: 2012-03-21
回 7楼(roywillow) 的帖子
    
快速回复
限100 字节
 
上一个 下一个