2014-07-11 3 views
0

gWidgets2를 사용하여 탭이있는 GUI를 만들었으며 각 탭에 관련 아이콘 (이미지)이 필요합니다.아이콘을`gnotebook()`탭에 할당하는 방법은 무엇입니까?

고려 :

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) 

가 어떻게 1 탭의 레이블 옆에있는 refresh 아이콘을 할당 할 수 있습니다 ? 그리고 두 번째 탭에 info 아이콘이 있습니까?

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) 
+0

죄송합니다. 소문자 위젯이 아닌 위젯입니다. – jverzani

+0

감사합니다. 나는 재미를 재정의했다. 그러나 나는 여전히'Gtk-CRITICAL assertion'이라는 경고 메시지와 함께 아이콘을 얻을 수 없다. UPDATE2를 참조하십시오. – landroni

+1

좋아, 아마도'icon $ widget $ parent' 시도해보십시오 – jverzani

답변

0

간단히 할 수 gWidgets2RGtk2의 최신 GIT와 다음이 필요 정확히 수행, 허용 대답에 따라 경찰

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) 
} 
2

뭔가 필요에 맞게 수정할 수 있습니다 do :

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

시도했지만 실패했습니다 (OP의 UPDATE1 참조). 내가 뭔가 잘못하고 있는거야? – landroni

관련 문제