GTK +:当鼠标悬停在按钮上时显示标签

时间:2011-11-22 06:33:46

标签: gtk

我有一个显示图像的按钮。

我想在鼠标悬停在它上面时显示一些文字(就像任何桌面图标一样,甚至HTML页面上的图像)。

我不确定是否有任何设施可以做到这一点,我找不到通过查看GtkButton课程。

当鼠标悬停在按钮顶部时,是否有人知道如何设置一些文字标签?

非常感谢!

1 个答案:

答案 0 :(得分:4)

您可能正在寻找GtkTooltipGtkWidget的一部分有简单的API来设置&得到工具提示。使用gtk_widget_set_tooltip_text添加简单文本作为窗口小部件的提示,或使用gtk_widget_set_tooltip_markup添加带Pango markup language的文本。以下是供您参考的示例代码:

#include <gtk/gtk.h>

int main(void)
{
    GtkWidget *window;
    GtkWidget *vbox;
    GtkWidget *button0;
    GtkWidget *button1;

    gtk_init(NULL, NULL);

    window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL);

    vbox = gtk_vbox_new(FALSE, 0);
    gtk_container_add(GTK_CONTAINER(window), vbox);

    button0 = gtk_button_new_with_label("Normal tip");
    gtk_widget_set_tooltip_text(button0, "Simple tip");

    button1 = gtk_button_new_with_label("Markup tip");
    gtk_widget_set_tooltip_markup(button1, "This is <b>bold</b> &amp; this is <i>italics</i>");

    gtk_box_pack_start(GTK_BOX(vbox), button0, 1, 1, 1);
    gtk_box_pack_start(GTK_BOX(vbox), button1, 1, 1, 1);

    gtk_widget_show_all(window);

    gtk_main();

    return 0;
}

希望这有帮助!