我正在编写一个C / GTK +应用程序,这应该针对Linux和Windows。
当我在about对话框中打开网站链接时遇到了一个问题:预期的行为是浏览器打开并显示相关网页(这在Linux上运行正常),但是点击它后立即弹出显示“显示链接是不可能的,因为没有安装处理它的应用程序”(粗略翻译,我不会用英语,但用我的母语)。
我该如何解决这个问题?我想只为Windows设置链接的特定处理程序,但我不知道如何在about对话框中获取“链接”对象。我在文档中找到的唯一内容是gtk_about_dialog_get_website_label
,但它返回一个字符串,所以我认为处理程序不起作用。
答案 0 :(得分:2)
在GtkAboutDialog
对象中单击网站标签时,默认行为是调用gtk_show_uri
。后者使用GIO来处理uri本身,它只处理本地文件。如果你想处理网址(http [s]://,或ftp [s]://等),你必须安装gvfs。
另一种方法是将回调连接到激活uri时发出的 activate-link 信号。然后,您可以处理该事件,并根据您的应用程序运行的系统运行一些魔法。
我的评论中的链接支持我的声明(并且通常是有用的参考资料):