在表格中指定按钮/复选框的正确语法

  • 本文关键字:复选框 语法 按钮 表格 j
  • 更新时间 :
  • 英文 :


我想在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
)

不过,这似乎没有任何作用。我在指定事件处理程序时做错了什么吗?

我认为您遇到的问题是单击复选框会创建一个更改事件,而单击数据单元会生成一个 mbldown 事件。如果将这些事件处理程序放入,您将看到弹出带有相应单元格名称的消息框。

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

这表示您的事件正在正确触发。你当时选择做什么取决于你。showevents 表的系统事件行对于查看正在触发哪些事件以及随后需要写入哪些处理程序非常宝贵。

希望这有帮助。

最新更新