Короче говоря:
Я использую пакет tcltk
в R. Но не-R пользователи могут также предлагать идеи и приводить примеры на другом языке, чем R.
У меня есть список объектов Tcl / Tk в R <Tcl> .1.1.1.1 .1.1.1.2 .1.1.1.3
и я хочу получить доступ и изменить каждый объект отдельно. Как мне это сделать?
Или, если у меня есть объект кнопки A, как я могу получить доступ и изменить объект кнопки B?
Подробности:
У меня есть следующий виджет:
Код для его создания:
library(tcltk)
top <- tktoplevel()
frame_1 <- tkframe(top)
tkgrid(frame_1)
frame_n <- tkframe(frame_1)
tkgrid(frame_n)
b1 <- ttkbutton(frame_n, text = "button A")
b2 <- ttkbutton(frame_n, text = "button B")
b3 <- ttkbutton(frame_n, text = "button c")
tkgrid(b1, b2, b3)
Допустим, я могу получить доступ только b1
:
class(b1)
# [1] "tkwin"
Я хочу получить доступ и изменить родные элементы b1
, как если бы у меня были объекты b2
и т. Д. (Например):
tkcget(b2, "-text") # Get text
tkconfigure(b2, text = "New B") # Change text
Используя tkwinfo
, мне удалось получить доступ к родителю b1
и получить список братьев и сестер (я не уверен, технически ли это "список"), но я не знаю, как получить доступ / изменить каждый из них по очереди:
(parent_of_b1 <- tkwinfo("parent", b1))
# <Tcl> .1.1.1
(siblings_of_b1 <- tkwinfo("children", parent_of_b1))
# <Tcl> .1.1.1.1 .1.1.1.2 .1.1.1.3
class(siblings_of_b1)
# "tclObj"
Моя попытка приводит к ошибке:
tkcget(siblings_of_b1, "-text")
# Error in structure(.External(.C_dotTclObjv, objv), class = "tclObj") :
# [tcl] invalid command name ".1.1.1.1 .1.1.1.2 .1.1.1.3".
Скорее всего, я не знаю способ подмножества объекта. Как я могу это сделать?