我有一个QML TableView,我从实现QAbstractItemModel的模型中显示一些数据。但是我没有直接使用它,而是将它包装在QSortFilterProxyModel中,用于排序和过滤功能。
现在,如果我,例如有一个严重过滤的视图,并激活我想用激活的模型项做某事的行。但onActivated处理程序只给我我点击的行号,但我认为我需要QModelIndex来查询该项的基础模型。我也无法实现类似于model.get(row)的东西,因为模型现在已经将行映射到索引。
答案 0 :(得分:0)
我弄清楚它应该如何运作。您可以在自定义sortfilterproxymodel中实现索引和数据,如下所示:
property var qt_UserRole: 256 // FIXME: Qt.UserRole is not exported
model.data(model.index(row, 0), qt_UserRole + 1)
现在你可以打电话给在QML中像这样。
library(shiny)
library(rhandsontable)
ui=fluidPage(
rHandsontableOutput('table'),
verbatimTextOutput('selected'),
verbatimTextOutput("tr")
)
server=function(input,output,session)({
a<-c(1,2)
b<-c(3,4)
c<-rbind(df1,df2)
df1<-data.frame(df3)
#need reactive function around the following
output$table=renderRHandsontable(
rhandsontable(df1,selectCallback = TRUE,readOnly = FALSE)
)
output$selected=renderPrint({
cat('Selected Row:',input$table_select$select$r)
cat('\nSelected Column:',input$table_select$select$c)
cat('\nSelected Cell Value:',input$table_select$data[[input$table_select$select$r]][[input$table_select$select$c]])
df1[input$table_select$select$r,input$table_select$select$c]<-input$table_select$data[[input$table_select$select$r]][[input$table_select$select$c]]
})
#need reactive function around the following
output$tr <- renderText({
df1[1,1]
})
})
# end server
shinyApp(ui = ui, server = server)