um recurso que eu gostei muito no uso da hbqtgui é a possibilidade de criar um combobox e vincular uma view diferente ao mesmo.
Essa view pode ser uma lista, uma tabela ou uma tree.
Todavia, quando crio o objeto tree e faço sua vinculação ao combobox a referencia aos subitens são perdidas, sendo adotado os dados relativos ao primeiro item.
O código abaixo demonstra a situação.
Na tree normal, a referência, ou seja, a informação inserida na propriedade DATA é mantida.
Já no tree vinculado ao combobox, a propriedade DATA dos subitens é sempre a do primeiro item.
Com certeza é um bug.
Mas esse bug é da QT e/ou da contribuição (hbqtgui)?
Atenciosamente.
MarceloG
Código: Selecionar todos
#include 'hbqtgui.ch'
procedure main()
local oWnd, oTr, i, oItem, oItem2, oItem3, oCb
oWnd:=QMAINWINDOW()
oWnd:SETWINDOWTITLE('Teste')
oTr:=QTREEWIDGET(oWnd)
oTr:MOVE(10,10)
oTr:RESIZE(200,200)
oTr:CONNECT('itemSelectionChanged()',{||oWnd:SETWINDOWTITLE(oTr:CURRENTITEM():DATA(0,32):TOSTRING())})
FOR i:=1 TO 100
oItem:=QTREEWIDGETITEM()
oItem:SETDATA(0,32,QVARIANT(HB_NTOS(i)))
oItem:SETTEXT(0,'N¡vel ' + HB_NTOS(i))
oItem2:=QTREEWIDGETITEM()
oItem2:SETDATA(0,32,QVARIANT(HB_NTOS(i)))
oItem2:SETTEXT(0,'Subn¡vel ' + HB_NTOS(i))
oItem:ADDCHILD(oItem2)
oItem3:=QTREEWIDGETITEM()
oItem3:SETDATA(0,32,QVARIANT(HB_NTOS(i)))
oItem3:SETTEXT(0,'Item ' + HB_NTOS(i))
oItem2:ADDCHILD(oItem3)
oTr:ADDTOPLEVELITEM(oItem)
NEXT i
oTr:EXPANDALL()
oCb:=QCOMBOBOX(oWnd)
oCb:MOVE(10,220)
oCb:RESIZE(200,25)
oCb:CONNECT('activated(int)',{||oWnd:SETWINDOWTITLE(oCb:ITEMDATA(oCb:CURRENTINDEX(),32):TOSTRING())})
oCb:SETMODEL(oTr:MODEL())
oCb:SETMODELCOLUMN(0)
oCb:SETVIEW(QTREEVIEW()) //oTr
oCb:VIEW():SETSELECTIONBEHAVIOR(1)
oWnd:SHOW()
QAPPLICATION():EXEC()
return