Fltau r interface

  • 3,039 views
Uploaded on

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
3,039
On Slideshare
0
From Embeds
0
Number of Embeds
2

Actions

Shares
Downloads
9
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Tcl-Tk :Créer une interface sous RPrésentation groupe FltauR Durieux Eric / Eusebio Pascal 14/11/2012
  • 2. Introduction Pourquoi créer des interfaces : Distribuer un ensemble de fonctionnalités développées sous R auprès d’utilisateurs n’ayant aucune notion de programmation en R. Créer des outils permettant de regrouper l’ensemble des possibilités offerte par R : gestion et manipulation des données – statistique – cartographie … Promouvoir R au sein de l’Institut2 Tcl-Tk : Interface sous R 14/11/2012
  • 3. Introduction Utilisation du langage de script TCL (Tool Command Language) agrémenté de la bibliothèque de création d’interface graphique Tk, combinaison connue sous le nom de Tcl-Tk. L’ensemble est implémenté sous R dans la librairie « tcltk » présente dans la distribution de base de R La librairie « tcltk2 » enrichit la précédente librairie mais ne sera pas utilisée dans ce qui suit.3 Tcl-Tk : Interface sous R 14/11/2012
  • 4. Fenêtres Messages Box: library(tcltk) msg<-tkmessageBox(message="Voulez-vous quitter?",icon="question",type="yesnocancel",default="yes") tclvalue(msg) [1] "no"4 Tcl-Tk : Interface sous R 14/11/2012
  • 5. Fenêtres Fenêtre principale: tt <- tktoplevel() tkwm.geometry(tt,"500x100+0+0") tkwm.title(tt,"ANAlyse Bilocalisée pour les Etudes Locales - ANABEL ") Tkfocus(tt)5 Tcl-Tk : Interface sous R 14/11/2012
  • 6. Fenêtres Frames: Des frames correspondent à des sous-espaces d’une fenêtre principale. On peut donc diviser notre fenêtre en autant de sous-écrans nécessaires. library(tcltk) tt <- tktoplevel() tkwm.title(tt,"ma fenêtre ") tkwm.geometry(tt,"300x100+0+0") frameOverall <- tkframe(tt) frameUpper <- tkframe(frameOverall,relief="groove",borderwidth=2) tkgrid(tklabel(frameUpper,text="Texte en haut")) frameLower <- tkframe(frameOverall,relief="groove",borderwidth=2) tkgrid(tklabel(frameLower,text="Texte en bas")) tkgrid(frameUpper) tkgrid(tklabel(frameOverall,text="Texte entre les frames")) tkgrid(frameLower) tkgrid(frameOverall)6 Tcl-Tk : Interface sous R 14/11/2012
  • 7. Fenêtres Grid: tkgrid(frameUpper,frameLower) tkgrid(tklabel(frameOverall,text="Texte entre les frames")) tkgrid(frameOverall) tkgrid(frameUpper,column=0) tkgrid(tklabel(frameOverall,text="Texte entre les frames"),column=1) tkgrid(frameLower,column=2,row=0) tkgrid(frameOverall)7 Tcl-Tk : Interface sous R 14/11/2012
  • 8. Fenêtres Afficher une dataframe: require(tcltk) tclRequire("Tktable") myRarray <- c("Name",""James Wettenhall"","R-Help", "Email","wettenhall@wehi.edu.au","R- Help@stat.math.ethz.ch") dim(myRarray) <- c(3,2) tclarray <- tclArray() for (i in (0:2)) for (j in (0:1)) tclarray[[i,j]] <- myRarray[i+1,j+1] tt<-tktoplevel() table1 <- tkwidget(tt,"table",variable=tclarray,rows=3,cols=2,titlerows=1,selectmode="extended" ,colwidth=25,background="white") tkpack(table1)8 Tcl-Tk : Interface sous R 14/11/2012
  • 9. Fenêtres Afficher une image: tpropos<<-tktoplevel() tkwm.title(tpropos,"A propos...") tkfocus(tpropos) fpropos<-tkframe(tpropos,relief="groove",borderwidth=2) TxCoRi<<-tkframe(tpropos,relief="groove",borderwidth=2) Txpropos<<-tkframe(tpropos,relief="groove") logo<-read.pnm(paste(d_img,"/logo_pacapsar.pnm",sep="")) img_logo<-tkrplot(fpropos,fun=function() {plot(logo)}) CoRit <- tclVar("Copyright LaCrampe Inc.") CoRi<-tklabel(TxCoRi,text=tclvalue(CoRit)) fontHeading <- tkfont.create(weight="bold",size=12) fontHeading2 <- tkfont.create(weight="bold",slant="italic",size=8) Txt <- tclVar("Développé par le PSAR n Analyse Territoriale") Tx<-tklabel(Txpropos,text=tclvalue(Txt),font=fontHeading) fontHeading <- tkfont.create(weight="bold",slant="italic") Tx2<-tklabel(Txpropos,text=paste("Version :",ver_ana),font=fontHeading2) tkgrid.configure(fpropos,sticky="w") tkgrid.configure(CoRi,sticky="w") tkgrid.configure(Txpropos,sticky="e") tkgrid(fpropos,Txpropos) tkgrid(img_logo,Txpropos) tkgrid(TxCoRi) tkgrid(CoRi) tkgrid(Tx) tkgrid(Tx2)9 Tcl-Tk : Interface sous R 14/11/2012
  • 10. Fenêtres Afficher un graphique: Package « tkrplot » tt <- tktoplevel() bb<-1 img <-tkrplot(tt, function() plot(1:20,(1:20)^bb)) f<-function(...) { b <- as.numeric(tclvalue("bb")) if (b != bb) { bb <<- b tkrreplot(img) } } s <- tkscale(tt, command=f, from=0.05, to=2.00, variable="bb", showvalue=FALSE, resolution=0.05, orient="horiz") tkpack(img,s)10 Tcl-Tk : Interface sous R 14/11/2012
  • 11. Menus Création de menus et sous-menus: require(tcltk) tt <- tktoplevel() topMenu <- tkmenu(tt) tkconfigure(tt,menu=topMenu) fileMenu <- tkmenu(topMenu,tearoff=FALSE) openRecentMenu <- tkmenu(topMenu,tearoff=FALSE) tkadd(openRecentMenu,"command",label="Fichier 1", command=function() tkmessageBox(message="Cest quoi Fichier 1?",icon="error")) tkadd(openRecentMenu,"command",label="Fichier 2", command=function() tkmessageBox(message="Cest quoi Fichier 2",icon="error")) tkadd(fileMenu,"cascade",label="ouvrir fichier",menu=openRecentMenu) tkadd(fileMenu,"command",label="Quit",command=function() tkdestroy(tt)) tkadd(topMenu,"cascade",label="File",menu=fileMenu) tkentryconfigure(openRecentMenu,1, state="disabled") tkfocus(tt)11 Tcl-Tk : Interface sous R 14/11/2012
  • 12. Les widgets Un large choix de widgets sont disponibles: Les Edit-Box (tkentry) Les List-Box (tklistbox) Les Checkbox (tkcheckbutton) Les boutons radio (tkradiobutton)12 Tcl-Tk : Interface sous R 14/11/2012
  • 13. Exemples13 Tcl-Tk : Interface sous R 14/11/2012
  • 14. Exemples14 Tcl-Tk : Interface sous R 14/11/2012
  • 15. Lancement d’une application R / Tcl-Tk Pour lancer une application R comprenant une interface graphique (ou non..) sans que l’utilisateur n’ait besoin d’ouvrir R au préalable. Créer un raccourci sur le bureau avec pour cible : "C:Program FilesRR-2.15.1binR.exe" "R_PROFILE=D:applicartoAnabelbinprincipal.r" --silent --no-restore --slave --internet215 Tcl-Tk : Interface sous R 14/11/2012
  • 16. Biblio http://http://bioinf.wehi.edu.au/~wettenhall/RTclTkExamples/ http://rstat.ouvaton.org/?article19/creer-des-applications-graphiques-avec-r16 Tcl-Tk : Interface sous R 14/11/2012
  • 17. Tcl-Tk : Interface sous R Merci pour votre attention !17 Tcl-Tk : Interface sous R 14/11/2012