1

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

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

4

2 回答 2

3

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

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

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

    system("/usr/bin/xmessage")
    

(有关所有选项,请参阅每个工具的手册页)


替代方案实际上是使用完整的 GUI 框架(可能是 gtk+),这通常不是一个小改动。

For example, you can use libnotify directly (giving you the same basic capabilities as notify-send, but more control), but this also depends on glib. So, now you've added two external dependencies when you could just have run system.

于 2012-08-21T09:58:08.177 回答
0

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

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

于 2012-08-19T15:20:32.463 回答