Qt 窗口焦点转移到弹窗:快速解决方案
你可以使用以下代码来实现弹窗焦点移动到最上面:
#include <QtWidgets>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
// 创建一个主窗口
QMainWindow window;
// 创建一个弹窗
QMessageBox msgBox;
msgBox.setText('This is a message box.');
msgBox.setWindowTitle('Message Box');
// 设置弹窗焦点策略为强制焦点
msgBox.setFocusPolicy(Qt::StrongFocus);
// 显示弹窗
msgBox.show();
// 将弹窗置于最上层
msgBox.raise();
// 将焦点移动到弹窗上
msgBox.activateWindow();
// 显示主窗口
window.show();
return app.exec();
}
在这个例子中,我们首先创建了一个主窗口 QMainWindow
和一个弹窗 QMessageBox
。然后,我们设置了弹窗的焦点策略为强制焦点,这样可以确保弹窗获得焦点。接着,我们使用 raise()
将弹窗置于最上层,然后使用 activateWindow()
将焦点移动到弹窗上。最后,我们显示了主窗口和弹窗,进入事件循环。
这样,当程序运行时,弹窗将会出现在主窗口上方,并且获得焦点。
原文地址: http://www.cveoy.top/t/topic/pSOq 著作权归作者所有。请勿转载和采集!