Qt /如何在不丢失主窗口焦点的情况下进行子窗口?

时间:2011-12-12 17:31:47

标签: qt dialog

我有一个主窗口(在MS Windows上),我希望有子窗口或子面板可以自由移动屏幕。我可以使用对话框和Qt::splashscreen标志,但当我在这些子窗口时,我丢失了主窗口的焦点标题。有什么技巧可以做我想要的吗? (像多焦点......) 也许这是不可能的?

3 个答案:

答案 0 :(得分:0)

我不确定你失去焦点是什么意思。

当我创建一个具有多个窗口的应用程序时,这就是我所做的:在子窗口小部件中,我将父窗口设置为主窗口,并设置Qt :: Tool标志。它有多种效果:窗口管理器将其视为一个窗口,当您聚焦任何窗口时,所有窗口都会升起。

答案 1 :(得分:0)

你想要QMdiArea吗?或focus proxy

在Qt中,所有顶级窗口都是独立的,没有一个是“主要”。如果你想提名一个作为一个主窗口并让它从其他人那里偷走焦点,那么你将不得不implement that manually

答案 2 :(得分:0)

听起来你只想拥有一个可以在父窗口小部件/窗口上自由移动的小部件,而无需在本机Windows窗口(...)之间调用“窗口焦点已更改”事件。

我不确定是否有现成的解决方案,但是在窗口小部件的边缘添加一些抓取/移动/调整大小的事件不应该那个很难,或者?

我只是在某些区域捕捉到mousedown / up事件(这些可能是他们自己的小部件,并带有指向父可移动小部件的链接),并让他们在鼠标移动时调整大小/移动窗口。