首页| 论坛| 消息

标题:QMainwindow中怎么不执行keypressevent?
作者:cyberpunker
日期:2016-08-09 01:12
内容:

在QMainwindow中做了个窗口,设置成全屏显示,作为splash window来用,需要等待键盘输入才真正进入软件的操作界面,
结果,splash window出不来,得把QMainwindow最小化后才显示,
而且QMainwindow中的keypressevent也不执行,
把keypressevent放到splash window中,有时有响应,有时没有,搞不清是什么情况才执行。
这种思路有问题吗?


#1 [never_forget 08-09 08:07]
鼠标点击函数必须和系统一模一样,否则,系统不认,还有,楼主的dialog是不是把主窗口覆盖了,这样鼠标时间传不到Dialog,也不会有反应,楼主可以再看看。。。
#2 [6gongzi 08-09 16:26]
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();
}
#3 回 6gongzi 的帖子 [cyberpunker 08-10 23:12]
6gongzi:qt自带 QSplashScreen 类,实现了你说的功能
你查看一下源代码
你的基本思路是对的,实际也确实是这样实现的
不过和 主窗口处理不处理键盘消息无关
以下是示例代码:要在主窗口之前调用
....... (2016-08-09 16:26) 
这个不满足要求啊 ,必须要用键盘使其消失
#4 [ubuntu爱好者 12-16 12:58]
void QWidget::grabKeyboard()

回复 发表
主题 版块