关于Qt非模式对话框

feixiangxtu 2010-12-08 04:31:27
各位:
请问下面的代码是打开一个非模式对话框,为什么打开时可以显示非模式对话框上的按钮控件,但是没有显示非模式对话框的窗体?

是不是我打开非模式对话框有误?请大家给出意见,谢谢!

connect(menuBT, SIGNAL(clicked()), this, SLOT(OnBnClickedBtMenu()));

void MainWin::OnBnClickedBtMenu()
{
MainMenu *mainMenu = new MainMenu(this);
mainMenu->setWindowModality(Qt::NonModal);
mainMenu->show();
}

非模式对话框类的构造函数中设置:
setWindowFlags(Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint);
QPushButton *bt = new QPushButton(tr("Setting"), this);
bt->setGeometry(0,0,180,200);
connect(bt, SIGNAL(clicked()), this, SLOT(exitMainMenu()));
...全文
251 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
dbzhang800 2010-12-08
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 feixiangxtu 的回复:]

发现问题了!改成这样解决了!
setWindowFlags(Qt::Dialog | Qt::WindowStaysOnTopHint | Qt::FramelessWindowHint);
谢谢!
[/Quote]
恩,不过如果直接通过QDialog构造函数的第二个参数指定flags: Qt::WindowStaysOnTopHint | Qt::FramelessWindowHint,代码量会少一些。
dbzhang800 2010-12-08
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 worstboyzym 的回复:]

Qt::FramelessWindowHint
你设置了这个的问题吧。。
[/Quote]
http://www.qtcn.org/bbs/read.php?tid=33193

这个flag应该是没问题的,问题是楼主丝毫没顾及窗口原有的flags:

不是添加新flag而是直接覆盖了原有的flags
feixiangxtu 2010-12-08
  • 打赏
  • 举报
回复
发现问题了!改成这样解决了!
setWindowFlags(Qt::Dialog | Qt::WindowStaysOnTopHint | Qt::FramelessWindowHint);
谢谢!
WORSTBOYZYM 2010-12-08
  • 打赏
  • 举报
回复
Qt::FramelessWindowHint
你设置了这个的问题吧。。

16,216

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧