Правильная грамматика для указания кнопки / флажка в таблице - PullRequest
0 голосов
/ 28 июня 2018

Я хочу создать обработчик событий для кнопки / флажка в QTableWidget. Ниже я скопировал и вставил исходный код демонстрационной таблицы для справки:

NB. =========================================================
fmt1=: 3 : 0
if. 2=3!:0 y do. ' "',y,'"' else. ' ',,8!:2 y end.
)

NB. =========================================================
Tab=: _2 [\ 11 8 6 9 23 6
Sel=: 0 0 1

NB. =========================================================
makedata=: 3 : 0
t=. <&>t,+/t=. Tab,.+/"1 Tab
dat=. ((<&>Sel),<''),.t,.;:'USA Japan Germany All'
;fmt1 each ,dat
)

NB. =========================================================
table=: 3 : 0
wd 'pc table'
wd 'cc pac table 4 5'
wd 'set pac hdr Select Hire Lease Total Origin'
wd 'set pac hdralign 1 1 1 1 0'
wd 'set pac type ',":20{.15$100 0 0 0 0
wd 'set pac align 1 2 2 2 0'
wd 'set pac protect ',":20{.(!.1) 15$0 0 0 1 1
wd 'set pac lab Ford Toyota "Mercedes Benz" Total'
wd 'set pac data *',makedata''
wd 'pmove 100 10 500 200'
wd 'pshow'
)

NB. =========================================================
table_pac_change=: 3 : 0
'row col'=. 0 ". pac_cell
new=. 0 ". pac
if. col=0 do.
  Sel=: new row} Sel
else.
  Tab=: new (<row,col-1)} Tab
  wd 'set pac data *',makedata''
end.
)

NB. =========================================================
table_close=: 3 : 0
wd 'pclose'
showevents_jqtide_ 0
)

NB. =========================================================
showevents_jqtide_ 2
table''

Я хочу иметь возможность добавить обработчик событий в флажок под столбцом «Выбрать» и в строке «Тойота». Из документации в Интернете я понимаю, что правильный способ указать обработчик события для флажка «formname_childname_checkbox».

Однако дочернее имя для флажка никогда не указывается; то есть флажки генерируются массово, используя:

wd 'set pac type 100'

Я попытался указать конкретную ячейку с помощью флажка:

wd 'set pac block 1 1'
table_pac_checkbox = 3 : 0
NB. code here
)

Кажется, это ничего не делает. Что-то не так с указанием обработчика событий?

1 Ответ

0 голосов
/ 28 июня 2018

Я думаю, что вы сталкиваетесь с проблемами в том, что нажатие на флажок создает событие изменения, тогда как нажатие на ячейку данных генерирует событие mbldown. Если вы добавите эти обработчики событий, вы увидите всплывающие окна с соответствующими обозначениями ячеек.

table_pac_change=: 3 : 0
  wdinfo  ":pac_cell
)
table_pac_mbldown=: 3 : 0
  wdinfo  ":pac
)

Это указывает на то, что ваши события запускаются правильно. Что вы решите делать в это время, зависит от вас. Строка sysevents вашей таблицы showevents неоценима, чтобы увидеть, какие события инициируются, а затем какие обработчики нужно записывать.

Надеюсь, это поможет.

...