首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >移除按钮盒

移除按钮盒
EN

Stack Overflow用户
提问于 2010-05-21 23:12:14
回答 1查看 806关注 0票数 1

我正在用C编写一个应用程序,我有一个GtkLinkButton,其中包含一个GtkStockItem。如何删除鼠标指针打开并单击鼠标指针时出现的按钮框?

编辑

非常感谢,但不管用。这是输出:

“Gtk-警告**:第1行第38行中设置标记文本的字段:未知标记'a‘

GObject警告**:gsignal.c:2267: sigal activate-link' is invalid for istance0x8081860‘

Gtk-警告**:用于设置因错误解析标记而来自标记的文本:第1行第38行的未知标记'a‘“

我很少研究GTK库,但是我认为您不能在gtk_label_set_markup()函数中使用您想要的所有html标记(标记'a‘是其中之一)。我知道您只能使用Pango文本标记语言(http://library.gnome.org/devel/pango/stable/PangoMarkupFormat.html),所以不能直接使用标记'a‘或不直接使用。

EN

回答 1

Stack Overflow用户

发布于 2010-05-22 12:24:22

代码语言:javascript
复制
gtk_button_set_relief(GTK_BUTTON(link_button), GTK_RELIEF_NONE);

Addenum:

是的,你是对的!没有办法让GtkButton以这种方式运行(在我看来,GTK_RELIEF_HALFGTK_RELIEF_NORMAL看起来是一样的)。

你可以用GtkLabel代替。在C语言中,这可能类似于:

代码语言:javascript
复制
label = gtk_label_new(NULL);
gtk_label_set_markup(GTK_LABEL(label), "<a href='http://www.gtk.org'>GTK+ home</a>");

示例:

我真的不喜欢做你的家庭作业.不管怎样,我感觉很好,所以这里是一个充分发挥作用的例子:

代码语言:javascript
复制
/*
gcc `pkg-config --cflags gtk+-2.0` link.c \
    -o link `pkg-config --libs gtk+-2.0`
*/
#include <gtk/gtk.h>

static gboolean
my_dialog(GtkWindow *top_level)
{
    GtkWidget *dialog = gtk_message_dialog_new(top_level,
                                               GTK_DIALOG_MODAL,
                                               GTK_MESSAGE_INFO,
                                               GTK_BUTTONS_CLOSE,
                                               "This is a test message");

    gtk_dialog_run(GTK_DIALOG(dialog));
    gtk_widget_destroy(dialog);

    return TRUE;
}

int
main(int argc, char *argv[])
{
    GtkWidget *window, *label;

    gtk_init(&argc, &argv);

    window = gtk_window_new(GTK_WINDOW_TOPLEVEL);

    label = gtk_label_new(NULL);
    gtk_label_set_markup(GTK_LABEL(label),
                         "<a href='http://www.gtk.org'>GTK+ web site</a>");
    g_signal_connect_swapped(label, "activate-link",
                             G_CALLBACK(my_dialog), window);
    gtk_container_add(GTK_CONTAINER(window), label);

    gtk_widget_show_all(window);
    gtk_main();

    return 0;
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2886174

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档