QDesktopServices::openUrl: Application is not a GUI application
时间: 2024-03-15 09:44:47 浏览: 164
这个错误一般是因为你在一个非 GUI 应用程序中使用了 QDesktopServices::openUrl() 函数,而这个函数是用于打开 URL 的 GUI 函数。
解决办法是使用 QDesktopServices::openUrl() 的替代函数 QProcess::startDetached() 来打开 URL,例如:
```cpp
QProcess::startDetached("your_url_here");
```
这样就可以在非 GUI 应用程序中打开 URL 了。
相关问题
qt QDesktopServices::openUrl()如何打开.desktop文件不是编辑模式?
您可以使用`QProcess`类来打开`.desktop`文件。以下是一个示例代码:
```cpp
#include <QCoreApplication>
#include <QProcess>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
// 指定.desktop文件的路径
QString filePath = "/path/to/your/file.desktop";
// 使用xdg-open命令打开.desktop文件
QProcess::startDetached("xdg-open", QStringList() << filePath);
return a.exec();
}
```
上述代码通过`QProcess::startDetached()`方法使用`xdg-open`命令来打开`.desktop`文件。这将使用默认的关联程序打开文件,而不是编辑模式。
请确保在使用`QDesktopServices::openUrl()`方法之前,安装了xdg-utils软件包。
/Users/yoplore_mac2/Desktop/王雨欣/latest/3.5.1/SDK/HBuilder-Hello/HBuilder-Hello/AppDelegate.m:128:11: 'application:handleOpenURL:' is deprecated: first deprecated in iOS 9.0
这是一个警告信息,告诉您在iOS 9.0及以上版本中,`application:handleOpenURL:`已被弃用。如果您的应用程序需要处理URL方案(例如打开其他应用程序或处理自定义URL方案),建议您使用`application:openURL:options:`代替。建议您遵循iOS的新框架,并更新代码以使用新的API,以避免在未来的版本中出现问题。您可以按照以下步骤进行更新:
1. 使用`application:openURL:options:`代替`application:handleOpenURL:`。
2. 在实现`application:openURL:options:`方法时,使用`options`参数来获取您需要的信息,例如URL方案、源应用程序和目标应用程序等。
示例代码:
```objective-c
// 使用 application:openURL:options: 代替 application:handleOpenURL:
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey, id> *)options
{
// 获取 URL 方案
NSString *scheme = url.scheme;
if ([scheme isEqualToString:@"your-scheme"]) {
// 处理您的自定义 URL 方案
return YES;
} else {
// 如果无法处理该 URL 方案,可以将其传递给其他应用程序处理
return [[UIApplication sharedApplication] openURL:url options:options completionHandler:nil];
}
}
```
在更新代码之后,您应该可以避免这个警告信息。
阅读全文
相关推荐
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)