【问题标题】:In Gtk, how do I make a Button with just a stock icon?在 Gtk 中,我如何制作一个只有股票图标的按钮?
【发布时间】:2009-11-14 17:20:58
【问题描述】:

我想创建一个带有“删除”图标的按钮,但没有“删除”文本。如果我使用Button button = new Button(Stock.Remove);,我会得到相反的结果:只有文本,没有图标。我会有很多这样的按钮,而且文字让它看起来很杂乱。如何只获得图标?

注意:这些是常规按钮,不是工具栏按钮。

编辑: 这是它目前的样子:

我想用不显眼的小图标按钮替换这些按钮。

【问题讨论】:

    标签: c# gtk gtk#


    【解决方案1】:

    首先创建一个股票Gtk.Image,然后创建您的Gtk.Button,将图像作为参数传递。

    Image image = new Image(Stock.Remove, IconSize.Button);
    Button button = new Button(image);
    

    【讨论】:

    • 谢谢,这需要一个调整:你必须做“新图像(Stock.Remove,IconSize.Button)”。如果只是传 Stock.Remove 的话,好像是使用了错误的重载,找不到图片。
    【解决方案2】:

    查看GTK+ stock images 的列表。然后只需在调用中使用其中一个标识符来创建按钮,绝对不需要自己手动创建图像:

    Button remove = Button.NewFromStock(Stock.Remove);
    

    我认为这种方式比必须“知道”并处理正确的图像大小提示更简洁。

    更新: 在撰写本文时,Mono 链接实际上不起作用。这是来自核心 GTK+ C 文档的list of stock items@987654323@ 函数描述。在 Mono 中完成的 GTK# 包装似乎非常接近原始版本。

    【讨论】:

    • 是链接错误,还是他们的网站崩溃了?我从您的 GTK+ 库存图片链接中得到服务器错误 500...
    • Swish:我认为是后者,他们的网站似乎有问题。也许我应该在帖子中这么说,但这似乎太短暂了。 :)
    • 这不会创建仅图标按钮,对吧?所以它没有解决这个问题?事实上,它完全按照 OP 的代码做,只是更冗长?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-04
    • 2021-09-15
    • 2018-02-04
    • 2012-06-28
    相关资源
    最近更新 更多