2013-06-11 6 views
1

Je suis faire une interface graphique avec un menu contextuel avec un clic droit, sur un graphique, mais en même temps apparaître un menu contextuel avec les options copier ou enregistrer des graphiques, comment je peux supprimer ce dernier menu déroulant?Comment supprimer menu contextuel de copier/enregistrer dans ggraphics gWidgets

library(cairoDevice) 
library(ggplot2) 
library(gWidgets) 
library(gWidgetsRGtk2) 
require(RGtk2) 

    plot1<-ggplot(mtcars, aes(wt, mpg))+ geom_point(colour = "black", size = 3) 
    plot2<-ggplot(mtcars, aes(wt, mpg))+geom_point(colour = "red", size = 3) 
    plot3<- ggplot(mtcars, aes(wt, mpg))+ geom_point(colour = "yellow", size = 3,shape=20) 

    options(guiToolkit = "RGtk2") 
    w  <-gwindow("GUI") 
    g  <-ggroup(cont=w) 
graphic1 <- ggraphics(cont=g) 
print(plot1) 

ml<-list() 
ml$plot2<- list(handler=function(h,...){ 
    svalue(graphic1)<- print(plot2) 
    }) 
ml$plot3<- list(handler=function(h,...){ 
svalue(graphic1)<-print(plot3) 
}) 

add3rdMousePopupmenu(obj=graphic1,menulist=ml,action=graphic1)` 

Répondre

2

Il existe des arguments cachés pour ggraphics sous RGtk2. Essayez de passer no_popup=TRUE au constructeur ggraphics. Si vous voulez supprimer des bandes de caoutchouc, l'argument est de passer do.rubber.banding=FALSE (pourquoi. Pour un, _ pour l'autre? Ne demandent pas ...)

+0

Merci beaucoup, je était à la recherche et a constaté que aussi 'blockHandler (graphic_1) fonctionne – narteaga

+0

Cela le fera aussi, mais avec un outil beaucoup plus flou – jverzani

+0

Salut, je teste avec votre nouveau paquet _gWidgets2_ mais les arguments: _no_popup_ et _do.rubber.banding_ dans _ggraphics_ ne fonctionne pas – narteaga

0

Regardez,

w <- gwindow("notebook example") 
nb <- gnotebook(cont=w) 

devs <- lapply(1:5, function(i) ggraphics(cont=nb,no_popup=T, label=as.character(i))) 

addHandlerChanged(nb, handler=function(h,...) { 
gg <- h$obj[h$pageno] 
visible(gg) <- TRUE 
}) 
Questions connexes