在Tcltk GUI中更改字体及其大小

时间:2014-01-13 20:38:34

标签: r user-interface tcl tk

如何使用Tcltk创建的GUI中的菜单更改默认字体及其大小?下面的示例只有一个名为“文件”的菜单,但在我的GUI中,它将具有更多。因此,所有这些都必须重新调整大小。有没有办法为我的整个GUI做到这一点?

提前谢谢!

require(tcltk)
readCsv <- function(){
  myval <- tkgetOpenFile()
  mydata <- read.csv(paste(as.character(myval), collapse = " "))
  assign("myData", mydata, envir = .GlobalEnv)
}

tt <- tktoplevel()
topMenu <- tkmenu(tt)           
tkconfigure(tt, menu = topMenu) 
fileMenu <- tkmenu(topMenu, tearoff = FALSE)
tkadd(fileMenu, "command", label = "Quit", command = function() tkdestroy(tt))
tkadd(fileMenu, "command", label = "Load", command = function() readCsv())
tkadd(topMenu, "cascade", label = "File", menu = fileMenu)
tkfocus(tt)

2 个答案:

答案 0 :(得分:1)

菜单的默认字体是名为的字体;大多数平台上的TkMenuFont(以及OSX上的menu,您真的不应该更改它)。这通常映射到菜单的正确系统默认字体。但是,如果您确实想要更改它,仍然建议您使用命名字体(R TclTk中的字体对象中使用的字体),遵循模式on this page,除了您正在应用字体到菜单小部件而不是标签。

# Example to show how to do it
fontMenu <- tkfont.create(family="times",size=24,weight="bold",slant="italic")
fileMenu <- tkmenu(topMenu, tearoff = FALSE, font = fontMenu)

唯一不应该执行此操作的平台是OSX,其中菜单的工作方式有所不同(除了脚本级别;隐藏在封面下的很多差异!)< / p>

答案 1 :(得分:0)

是的,使用选项数据库。

有关显示用于按钮的选项数据库的示例,请参阅此问题,但对菜单的工作方式相同: https://stackoverflow.com/questions/20960107/is-there-a-way-to-have-a-global-style-for-button-in-tcl