gpt4 book ai didi

c++ - 当 QT-Assistent 作为进程启动时,Qt Assistant : How to maximize help window,

转载 作者:行者123 更新时间:2023-11-28 06:40:37 24 4
gpt4 key购买 nike

QT4.8

你好,我正在使用 QProcess 模式连接到 QT-Assistent。

例如(来自QT文档)

QProcess *process = new QProcess;
QStringList args;
args << QLatin1String("-collectionFile")
<< QLatin1String("mycollection.qhc")
<< QLatin1String("-enableRemoteControl");
process->start(QLatin1String("assistant"), args);
if (!process->waitForStarted())
return;

我正在使用建议的文档向它传递命令:

 QByteArray ba;
ba.append("setSource qthelp://com.mycompany.1_0_0/doc/index.html\n");
process->write(ba);

我的问题:

如何最大化帮助窗口,以防用户最小化它?由于帮助作为不同的进程运行,因此找不到打开窗口的方法。

TIA。

最佳答案

如果您启动另一个进程,则需要使用 Windows 的操作系统特定管理工具。

您通常可以在创建进程时获取窗口 ID,但管理其窗口是平台特定的。

Qt 还没有离开它的应用程序范围来进行跨平台的完整 shell 访问,但这是在 Windows 中如何进行:

http://qt-project.org/doc/qt-5/qprocess.html#processId

http://forums.codeguru.com/showthread.php?353149-How-to-Get-windows-Handle-using-Process-Id

https://stackoverflow.com/a/10258861/999943

http://msdn.microsoft.com/en-us/library/windows/desktop/ms633548(v=vs.85).aspx

#include <windows.h>

//...

HWND h = ::GetTopWindow(0 );
{
DWORD pid;
DWORD dwTheardId = ::GetWindowThreadProcessId( h,&pid);

if ( pid == process->processId() )
{
// here h is the handle to the window
break;
}
h = ::GetNextWindow( h , GW_HWNDNEXT);
}

::SetForegroundWindow(h);

::ShowWindow(h, SW_SHOWMAXIMIZED);

希望对您有所帮助。

关于c++ - 当 QT-Assistent 作为进程启动时,Qt Assistant : How to maximize help window,,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26049692/

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