bug - qcombobox com qtreeview

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

MARCELOG
Usuário Nível 4
Usuário Nível 4
Mensagens: 546
Registrado em: 15 Mar 2005 16:54
Localização: Divinópolis/MG

bug - qcombobox com qtreeview

Mensagem por MARCELOG »

Olá pessoal,
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
Água mole em pedra dura tanto bate que até espirra!
Responder