繁体   English   中英

创建一个即使在全屏模式下仍位于顶部的新窗口(在Linux上为Qt)

[英]Creating a new window that stays on top even when in full screen mode (Qt on Linux)

我在嵌入式目标上使用Qt 4.6.3和ubuntu linux。 我打电话

dlg->setWindowState(Qt::WindowFullScreen);

在我应用程序的窗口中(因此,我不会将触摸屏上的任何房地产都放到屏幕顶部和底部的任务栏和状态面板中。这一切都正常且按预期进行。问题出在我我想弹出屏幕上的键盘以允许用户输入一些数据。

m_keyProc= new QProcess();
m_keyProc->start("onboard -s 640x120");

这会弹出键盘,但它在全屏窗口的后面。 onbaord键盘的首选项设置为始终位于最前面,但这实际上意味着“除全屏窗口外”。 我认为这很有意义,并且可能满足大多数用例,但是我需要它真正处于最重要的位置。

我可以A)不是全屏模式(这样键盘就可以工作)并以编程方式隐藏任务栏吗? 还是B)尽管我处于全屏状态,仍要强制键盘在顶部?

注意:在Windows上,我们称

m_keyProc->start("C:\\Windows\\system32\\osk.exe");

尽管全屏显示状态,但osk键盘仍在顶部。 因此,我猜测这是不同操作系统上的窗口管理器之间的差异。 那么,我是否需要使用linux窗口管理器在窗口上设置一些标志?

Qt似乎没有办法将其他非Qt流程放在首位。 您可能需要通过调用QProcess::pid()从QProcess获取本机的平台进程ID,并调用基础OS API来执行此操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM