gpt4 book ai didi

qt - 如何使 Qt 应用程序主窗口始终位于 Windows 操作系统中的其他窗口之上?

转载 作者:行者123 更新时间:2023-12-04 13:11:55 31 4
gpt4 key购买 nike

平台 - Windows 7,8,10

我从 QMainWindow 创建了一个 QApplication。
我希望它始终位于所有其他窗口的顶部。

我使用 Qt 标志( Qt::WindowStaysOnTopHint )来实现这一点。
但是这个 Qt 标志不起作用。
该应用程序是一个无框架的应用程序。

请在下面找到我的 Qt 应用程序构造函数的代码。

myApp::myApp(QWidget *parent)
: QMainWindow(parent)
{
setWindowFlags(Qt::Widget | Qt::FramelessWindowHint);
setWindowFlags(this->windowFlags() | Qt::CustomizeWindowHint | Qt::WindowStaysOnTopHint );
ui.setupUi(this);
}

我怎样才能使这个标志工作?

我已经尝试了几个社区成员建议的所有选项。
我现在的代码如下
Qt::WindowFlags flags = this->windowFlags();
this->setWindowFlags(flags | Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint);
ui.setupUi(this);

奇怪的事实是,这在我的机器上从来不起作用。
当我创建一个安装程序或复制所需的文件并在不同的机器(Windows 7、8、10)上运行时,我的应用程序就会位于所有其他窗口之上。
注意:我使用的是 Visual Studio Community Edition 2015
操作系统 - Windows 7 Professional Service Pack 1。

最佳答案

下面的代码最终对我有用,使我的窗口始终高于其他窗口

SetForegroundWindow((HWND)winId());
Qt::WindowFlags flags = this->windowFlags();
flags = flags & ~Qt::WindowMinimizeButtonHint;
this->setWindowFlags(flags|Qt::FramelessWindowHint|Qt::WindowStaysOnTopHint );
ui.setupUi(this);

我还通过取消设置最小化标志来阻止窗口的最小化选项。
但仍然存在一个问题。窗口的下部越过任务栏。我必须单击应用程序图标才能将下部置于任务栏上方。

关于qt - 如何使 Qt 应用程序主窗口始终位于 Windows 操作系统中的其他窗口之上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38495900/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com