• 3233阅读
  • 4回复

QMainwindow中怎么不执行keypressevent? [复制链接]

上一主题 下一主题
离线cyberpunker
 

只看楼主 倒序阅读 楼主  发表于: 2016-08-09

在QMainwindow中做了个窗口,设置成全屏显示,作为splash window来用,需要等待键盘输入才真正进入软件的操作界面

结果,splash window出不来,得把QMainwindow最小化后才显示,
而且QMainwindow中的keypressevent也不执行
把keypressevent放到splash window中,有时有响应,有时没有,搞不清是什么情况才执行。

这种思路有问题吗?



离线never_forget

只看该作者 1楼 发表于: 2016-08-09
鼠标点击函数必须和系统一模一样,否则,系统不认,还有,楼主的dialog是不是把主窗口覆盖了,这样鼠标时间传不到Dialog,也不会有反应,楼主可以再看看。。。
离线6gongzi

只看该作者 2楼 发表于: 2016-08-09
qt自带 QSplashScreen 类,实现了你说的功能
你查看一下源代码
你的基本思路是对的,实际也确实是这样实现的
不过和 主窗口处理不处理键盘消息无关
以下是示例代码:要在主窗口之前调用

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    QPixmap pixmap(":/splash.png");
    QSplashScreen splash(pixmap);
    splash.show();
    app.processEvents();
    ...
    QMainWindow window;
    window.show();
    splash.finish(&window);
    return app.exec();
}
离线cyberpunker

只看该作者 3楼 发表于: 2016-08-10
回 6gongzi 的帖子
6gongzi:qt自带 QSplashScreen 类,实现了你说的功能
你查看一下源代码
你的基本思路是对的,实际也确实是这样实现的
不过和 主窗口处理不处理键盘消息无关
以下是示例代码:要在主窗口之前调用
....... (2016-08-09 16:26) 


这个不满足要求啊 ,必须要用键盘使其消失

只看该作者 4楼 发表于: 2016-12-16
void QWidget::grabKeyboard()
ftpm
快速回复
限100 字节
 
上一个 下一个