Qt如何检查openUrl()是否已经打开?在windows
Qt how to check if openUrl() is already open ? in windows
在Qt应用程序中使用这个函数打开chm帮助文件:
void ToolBar::OpenHelp()
{
QDesktopService::openUrl(QUrl("my_help_file.chm")) ;
}
问题是当我单击它时,我希望它只打开my_help_file.chm的一个实例现在我可以打开多少实例,我点击打开按钮。能做到吗?
对于这个特定的函数,可能没有一个好的方法来实现您想要的效果。您可以跟踪按钮是否在应用程序中被单击,但由于打开URL的应用程序对您来说是未知的(因为它取决于操作系统来决定启动什么(如果有的话)),因此没有很好的方法来知道用户是否随后关闭了窗口。
ok,从这个链接:https://qt-project.org/forums/viewthread/10945
和这个类引用:http://harmattan-dev.nokia.com/docs/library/html/qt4/qdesktopservices.html setUrlHandler
我可以为这个问题提出一个解决方案,但我不确定它是否有效。使用UrlHandler,你可以自定义openUrl函数的行为。嗯,我想要做到这一点并不容易。乍一看,我会说使用QProcess自己生成外部进程。查看qdesktopservices.cpp,了解如何以与平台无关的方式完成此操作。
_
这个函数提供了一种自定义openUrl()行为的方法。如果openUrl()使用指定方案的URL调用,则调用接收器对象上的给定方法,而不是QDesktopServices启动外部应用程序。
相关文章:
- 在VS代码中交叉编译Windows与Linux上的MinGW的SDL程序
- 在Linux for Windows上编译C++代码时出错
- 在Windows上用C++裁剪HBITMAP
- C++ Windows 驱动程序MSB3030无法复制该文件,因为它找不到
- 如何加载(或映射)文件部分的最大大小,但适合在Windows上的RAM
- std::threads可以从Windows DLL中的全局变量创建/销毁吗?
- 当我编译webrtc服务器时,Windows上只支持clang-cl
- 为什么在Windows上的VS 2019和Clang 9中"size_t"在没有标题的情况下工作
- Windows/Cygwin - 不能使用 pybind11 - 犯错误
- Windows 10-使用gtkmm-3.0库和g++[包括再现]的分段故障
- 在Windows中以.exe的形式运行c++
- 为什么包含windows.h会产生语法错误,从而阻止类的实例化?(C2146,C2065)
- 无法在windows控制台中为C++程序提供必要的输入
- 在Windows中查找扬声器输出的当前音量级别
- Windows.h与GLFW.h的接口
- 在 Windows 上,是否可以让 dll 在不使用 PATH 环境变量的情况下在另一个文件夹中查找依赖项?
- 在Linux和C++中的Windows上,散列字符串值会产生不同的输出
- Active Directory:从网络服务帐户下运行的Windows服务调用ADsOpenObject时失败
- Qt如何检查openUrl()是否已经打开?在windows
- QDesktopServices::openUrl() 不会在 Windows 上的 chrome 中打开页面。解决方法?