查看完整版本: [-- Windows下Qt窗口如何跨线程获取焦点 --]

QTCN开发网 -> Qt基础编程 -> Windows下Qt窗口如何跨线程获取焦点 [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

helong_1024 2017-12-14 00:14

Windows下Qt窗口如何跨线程获取焦点

基础描述:
    Windows平台下,用vs2010开发的2个Qt程序A和B。
预期目标:
    当A程序点击按钮发出消息,B程序接收到A发出的消息后让自己获得焦点成为系统活动窗口。
现存问题:
    现在已经在B程序里获取到A发出的消息并解析完成,但不知如何获得焦点成为系统活动窗口。
    试过如下代码,但报出错跨线程的错误。
                this->hide();
                this->setWindowFlags(Qt::WindowStaysOnTopHint);
                this->show();

                this->hide();
                this->setWindowFlags(Qt::Widget);
                this->show();

请大神给看看,拜托啦!!!

小韩老师 2017-12-14 08:06
this->setWindowFlags(Qt::WindowStaysOnTopHint)
你首先要确保你的这个this是个window,而不仅仅是个widget。我感觉是这样的,可以尝试一下?

笑颜 2017-12-14 08:54
可以直接使用WinAPI。应该就可以了!好像是SetFocus();


查看完整版本: [-- Windows下Qt窗口如何跨线程获取焦点 --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled