终端在C ++中打开一个弹出窗口

时间:2012-08-19 14:53:40

标签: c++ c++11 ubuntu-12.04

我的c ++应用程序需要通过弹出窗口或替代方法显示消息。我的应用程序在Ubuntu 12.04版本上运行。我可以编写应用程序来打开Ubuntu类型的弹出窗口吗?如果可能,怎么样?

我是否需要使用gnome窗口或类似的东西?

2 个答案:

答案 0 :(得分:3)

从一个不使用GUI的程序中显示弹出窗口的最简单方法可能只是执行一个命令行工具来完成工作:

  • 显示没有按钮的通知,您可以使用 notify-send

    system("/usr/bin/notify-send MessageSubject \"message body here\"");
    
  • 如果您想要按钮以便用户可以给出回复,您可以使用(更加丑陋)xmessage

    system("/usr/bin/xmessage")
    

(有关其所有选项,请参阅每个工具的联机帮助页)


另一种方法是使用完整的GUI框架(可能是gtk +),这通常不是一个小小的改变。

例如,您可以直接使用libnotify(提供与notify-send相同的基本功能,但更多控制权),但这也取决于glib。所以,现在您已经运行system时添加了两个外部依赖项。

答案 1 :(得分:0)

为了显示弹出窗口或任何类型的窗口,您必须在应用程序/程序中引用gtk +或qt库。 gtk +是可取的,因为ubuntu统一桌面也基于gtk + - 这样你的程序在ubuntu上运行时会有更少的开销和更多的性能提升。你可以使用默认的C库(libgtk2.0)或gtkmm(libgtkmm)来实现C ++。

您可以在此处获取有关如何引用这些库,在main()函数中初始化gtk_main等的更多信息:http://www.gtk.org/documentation.php