• 6860阅读
  • 7回复

[提问]多个顶级QWidget的键盘捕获问题[已解决] [复制链接]

上一主题 下一主题
离线玉清
 
只看楼主 正序阅读 楼主  发表于: 2011-09-10
Hi,我有两个顶级的窗口
一个来自于QMainWindow,另外一个是QWidget.

这两个是平级并且都显示的。

但是问题是,当我激活其中QMainWindow窗口之后,按下键盘,那个QWidget的键盘按下事件居然也同时响应了。

请问这是什么情况呢?

另外,我其实并不想设定成两个顶级窗口,我想把QWidget设定成QMainWindow的子节点,但是我不想让QWidget处于QMainWindow之中而是独立出来。
我在传递QWidget构造函式的参数是指定flag参数为Qt::Window,这样QWidget确实不出在QMainWindow之中了,但是却一直的在最前端显示,即使失去了焦点也是如此。

请问如何做呢?谢谢~

离线玉清
只看该作者 7楼 发表于: 2011-09-19
问题解决,原来我在那个Widget上居然使用了grab函式..
去掉就OK了.
离线玉清
只看该作者 6楼 发表于: 2011-09-13
回 5楼(dbzhang800) 的帖子
一个QMainWindow,我new的时候未传递任何parent指针.
第二个QWidget的时候我也未传递任何parent指针.

另外在这种情况下我没有使用Qt::Window的flag.

我是在双方有父子的关系下(QWidget传递parent指针为那个QMainWindow),想独立出来两个窗口,这个情况下才使用了Qt::Window.
离线dbzhang800

只看该作者 5楼 发表于: 2011-09-10
Re:回 2楼(dbzhang800) 的帖子
引用第3楼玉清于2011-09-10 17:25发表的 回 2楼(dbzhang800) 的帖子 :
是的,确定。不存在父子关系。

1. 你如何确定的?能否给出理由

2. 既然不存在父子关系,为何想到了用 Qt::Window ?
离线玉清
只看该作者 4楼 发表于: 2011-09-10
另外想问一下如何禁用标题栏的关闭按钮?谢谢~~
离线玉清
只看该作者 3楼 发表于: 2011-09-10
回 2楼(dbzhang800) 的帖子
是的,确定。不存在父子关系。
离线dbzhang800

只看该作者 2楼 发表于: 2011-09-10
引用第1楼玉清于2011-09-10 17:05发表的  :
Hi,我有两个顶级的窗口,
一个来自于QMainWindow,另外一个是QWidget.
这两个是平级并且都显示的。

你确定两个都是平级(不存在父子关系)的?
离线玉清
只看该作者 1楼 发表于: 2011-09-10
另外我两个窗口都是使用了show方法显示的..
快速回复
限100 字节
 
上一个 下一个