【问题标题】:How to assign icons to `gnotebook()` tabs?如何将图标分配给“gnotebook()”标签?
【发布时间】:2014-07-11 20:57:15
【问题描述】:

我正在使用 gWidgets2 创建一个选项卡式 GUI,我希望每个选项卡都有一个关联的图标(图像)。

考虑:

require(gWidgets2)
w <- gwindow("notebook example", visible=T)
nb <- gnotebook(container=w)
gbutton("Refresh", label="Refresh", container=nb) ## note label argument
gbutton("Info", label="Info", container=nb)

如何在第一个标签的标签旁边分配refresh 图标?第二个标签的info 图标?

【问题讨论】:

  • 对不起,小写widget,不是大写。
  • 谢谢。我重新定义了乐趣,但仍然无法获得图标,并带有Gtk-CRITICAL assertion 的警告消息。见 UPDATE2。
  • 好的,试试icon$widget$parent
  • 确实有效!唯一的小故障是图标最终位于标签的右侧。如何将图标放在标签标签的 left 上?
  • 您可以使用box$reorderChild(obj, 0) 之类的调用重新排序,其中obj 是图像小部件。

标签: r tabs icons gwidgets


【解决方案1】:

可以根据您的需要修改类似的内容:

function add_stock_icon(nb, nm, page) {
    child <- nb$widget$getNthPage(page-1)
    box <- nb$widget$getTabLabel(child)
    icon <- gimage(stock.id=nm)
    box$packStart(icon$Widget)
}

【讨论】:

  • 我试过这个但失败了(参见 OP 中的 UPDATE1)。我做错了吗?
【解决方案2】:

根据接受的答案,以下正是需要的:

add_stock_icon <- function(nb, nm, page, left=TRUE){
    child <- nb$widget$getNthPage(page-1)
    box <- nb$widget$getTabLabel(child)
    icon <- gimage(stock.id=nm)
    box$packStart(icon$widget$parent)
    if(left) box$reorderChild(icon$widget$parent, 0)
}

##add icons to the left of tab labels
add_stock_icon(nb, "refresh", 1)
add_stock_icon(nb, "info", 2)

【讨论】:

    【解决方案3】:

    使用gWidgets2RGtk2 的最新 GIT,您可以简单地执行以下操作:

    nb$add_tab_icon(1, "refresh")
    nb$add_tab_icon(2, "info")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-07-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多