Clipper On Line • Ver Tópico - hbqt - contextmenu

hbqt - contextmenu

Projeto Harbour QT - HbQt, HbXBP e HbIDE

Moderador: Moderadores

 

hbqt - contextmenu

Mensagempor MARCELOG » 05 Mai 2011 15:21

Olá pessoal,
estou começando com a hbqt (e gostando).
Alguém tem exemplo de como criar um menu de contexto e associá-lo a um controle?
Obrigado.

MarceloG
Água mole em pedra dura tanto bate que até espirra!
Avatar de usuário

MARCELOG
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 546
Data de registro: 15 Mar 2005 16:54
Cidade/Estado: Divinópolis/MG
Curtiu: 0 vez
Mens.Curtidas: 6 vezes

hbqt - contextmenu

Mensagempor sygecom » 09 Mai 2011 22:03

Olá Dr.Marcelo,
Como está a briga com esse hbqt ? ta valendo a pena ?
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
leonardodemachado@hotmail.com

Faça você também sua doação esse fórum é uma lenda viva: http://www.pctoledo.com.br/doacao
Avatar de usuário

sygecom
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 7020
Data de registro: 21 Jul 2006 10:12
Cidade/Estado: Alvorada-RS
Curtiu: 1 vez
Mens.Curtidas: 133 vezes

hbqt - contextmenu

Mensagempor MARCELOG » 12 Mai 2011 10:20

Com alguns exemplos da internet e a velha técnica da tentativa e erro.
Consegui...
Se alguém precisar...

MarceloG

#INCLUDE 'hbqtgui.ch'

#DEFINE W(n) INT(n/800*QApplication():DESKTOP():WIDTH)
#DEFINE H(n) INT(n/600*QApplication():DESKTOP():HEIGHT)

//****************************************************************************

INIT PROCEDURE INICIAR()

QAPPLICATION()

RETURN

//****************************************************************************

EXIT PROCEDURE FINALIZAR()

QAPPLICATION():QUIT()

RETURN

//****************************************************************************

PROCEDURE MAIN()

LOCAL oMain, oPag1, oPag2, oTabX, oLbl1, oCmb1,oLbl2, oCmb2,oLbl3, oCmb3

oMain:=QMAINWINDOW()
oMain:SETWINDOWTITLE('DiviMoney(r)')

oMain:RESIZE(W(400),H(300))

oPag1:=QWIDGET()
oPag2:=QWIDGET()

oTabX:=QTABWIDGET(oMain)
oTabX:RESIZE(W(400),H(400))
oTabX:MOVE(W(5),H(5))
oTabX:ADDTAB(oPag1,'Controle Financeiro')
oTabX:ADDTAB(oPag2,'Controle de Bens')

oLbl1:= QLABEL(oPag1)
oLbl1:MOVE(W(5),H(5))
oLbl1:RESIZE(W(200),H(20))
oLbl1:SETSTYLESHEET('color:white;background-color:blue;')
oLbl1:SETTEXT(' Conta')

oCmb1 := QCOMBOBOX(oPag1)
oCmb1:MOVE(W(5),H(25))
oCmb1:RESIZE(W(200),H(20))
oCmb1:CONNECT('customContextMenuRequested(QPoint)',{|p|oCmb1Context(p)})
oCmb1:SETCONTEXTMENUPOLICY(Qt_CustomContextMenu)

oCmb1:SETEDITABLE(.T.)
oCmb1:SETINSERTPOLICY(0)

oCmb1:ADDITEM('Brasil1')
oCmb1:ADDITEM('Crasil2')
oCmb1:ADDITEM('Drasil3')
oCmb1:ADDITEM('Erasil4')
oCmb1:ADDITEM('Frasil5')
oCmb1:ADDITEM('Grasil6')
oCmb1:ADDITEM('Hrasil7')

oLbl2:= QLABEL(oPag1)
oLbl2:MOVE(W(5),H(55))
oLbl2:RESIZE(W(200),H(20))
oLbl2:SETSTYLESHEET('color:white;background-color:blue;')
oLbl2:SETTEXT('Receita/Despesa')

oCmb2 := QCOMBOBOX(oPag1)
oCmb2:MOVE(W(5),H(75))
oCmb2:RESIZE(W(200),H(20))

oLbl3:= QLABEL(oPag1)
oLbl3:MOVE(W(5),H(105))
oLbl3:RESIZE(W(200),H(20))
oLbl3:SETSTYLESHEET('color:white;background-color:blue;')
oLbl3:SETTEXT('Entidade')

oCmb3 := QCOMBOBOX(oPag1)
oCmb3:MOVE(W(5),H(125))
oCmb3:RESIZE(W(200),H(20))

oMain:SHOWMAXIMIZED()

oMain:SHOW()

QAPPLICATION():EXEC()

return

//****************************************************************************

FUNCTION oCmb1Context(p)

LOCAL oMenu

oMenu:=QMENU()

oMenu:ADDACTION('iTem1')
oMenu:ADDACTION('iTem2')
oMenu:ADDACTION('iTem3')

SWITCH oMenu:EXEC(QCURSOR():POS()):TEXT()

CASE 'iTem1' ; MESSAGE('A') ; EXIT

CASE 'iTem2' ; MESSAGE('B') ; EXIT

CASE 'iTem3' ; MESSAGE('C') ; EXIT

ENDSWITCH

RETURN p

//****************************************************************************

PROCEDURE MESSAGE(c)

LOCAL oBox

oBox := QMESSAGEBOX()

oBox:SETINFORMATIVETEXT(c)
oBox:SETWINDOWTITLE('TESTE')
oBox:EXEC()

RETURN

Ps: Retirei o code para realçar os detalhes.
O "p" enviado para função do menu de contexto é um QPOINT da QT, e ele serve como referência para o objeto chamador (QWIDGET).
Eu não estou usando o mesmo, já que a exibição do menu está ocorrendo na posição do mouse com QCURSOR():POS().
Desculpe se está muito enxuto, é que não gosto de escrever muitas linhas de código.
Água mole em pedra dura tanto bate que até espirra!
Avatar de usuário

MARCELOG
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 546
Data de registro: 15 Mar 2005 16:54
Cidade/Estado: Divinópolis/MG
Curtiu: 0 vez
Mens.Curtidas: 6 vezes

hbqt - contextmenu

Mensagempor sygecom » 12 Mai 2011 12:59

E no mais, o que você está achando da QT ?achou alguma limitação ? alguma dificuldade ?
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
leonardodemachado@hotmail.com

Faça você também sua doação esse fórum é uma lenda viva: http://www.pctoledo.com.br/doacao
Avatar de usuário

sygecom
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 7020
Data de registro: 21 Jul 2006 10:12
Cidade/Estado: Alvorada-RS
Curtiu: 1 vez
Mens.Curtidas: 133 vezes

hbqt - contextmenu

Mensagempor MARCELOG » 12 Mai 2011 13:48

Olá Leonardo,
a promessa QT é a portabilidade gráfica.
Nesse contexto, acho válido o esforço de aprendizagem.
Os princípios são quase os mesmos da hwgui ou minigui, cuja versão 4.0 já utiliza a QT.
Não consegui utilizar (ainda) arquivo resource.
Todavia, como o controle é quase absoluto sobre os objetos criados, vou dispensar algum tempo para aprender e ver a perfomance.

MarceloG
Água mole em pedra dura tanto bate que até espirra!
Avatar de usuário

MARCELOG
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 546
Data de registro: 15 Mar 2005 16:54
Cidade/Estado: Divinópolis/MG
Curtiu: 0 vez
Mens.Curtidas: 6 vezes

hbqt - contextmenu

Mensagempor chrissoares » 20 Jun 2011 14:44

Eu estou voltando a estudar a QT e me lembro que no exemplo do Stanis Luksys, ele faz o uso de resource (Qresource), da uma olhada que você deve conseguir descobrir algo.
Exemplo de QT do Stanis Luksys

Abraços e sucesso com a QT!
Christiano R. Soares
Analista Desenvolvedor
www.bhdados.com.br

'Tudo o que fizerem, façam de todo o coração, como para o Senhor, e não para os homens, sabendo que receberão do Senhor a recompensa da herança. É a Cristo, o Senhor, que vocês estão servindo. '
Colossenses 3:23-24
chrissoares
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 45
Data de registro: 23 Dez 2009 13:35
Cidade/Estado: Belo Horizonte/MG
Curtiu: 4 vezes
Mens.Curtidas: 0 vez




Retornar para QtContribs - HBQT

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 4 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro