R: gWidgets: gdf: довольно странное поведение - PullRequest
1 голос
/ 24 января 2012

Я создал объект gdf (Group.mtcars) и хочу, чтобы пользователь не смог вставить какую-либо дополнительную строку.Для этого я добавляю обработчик, чтобы, когда пользователь добавляет строку, она мгновенно удалялась.

options(guiToolkit = "RGtk2")
library(RGtk2)
library(gWidgets)
library(gWidgetsRGtk2)

Group.mtcars <- gdf(mtcars, container=TRUE)

addHandlerChanged(Group.mtcars, handler = function(h,...){
   # some info to be printed
   print("out of the 'if conditon'")
   IaminRow <- svalue(Group.mtcars, index=TRUE)
   print(IaminRow)

   # the condition
   if (IaminRow > nrow(mtcars)){
      # delete additional row
      Group.mtcars[,] <<- Group.mtcars[-IaminRow,]
      # go to the first row
      svalue(Group.mtcars, index=TRUE) <- 1
      # some additional info  
      print("into the 'if condition'")
      IaminRow <- svalue(Group.mtcars, index=TRUE)
      print(IaminRow)
   }
})
  1. Первое странное поведение связано с тем, что предпринимается попыткаобработчик должен быть выполнен еще раз, когда он не должен.Я получаю сообщение об этом:

    Ошибка в обработчике (h, ...): попытка применить не-функцию

  2. ВторойСтранное поведение происходит из-за того, что обработчик не работает, когда мы находимся в первой записи.Первая печатная информация выглядит следующим образом:

    [1] «вне условия if» [1] 2

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...