facilitando a criação de menu em QT

Aqui você poderá oferecer suas Contribuições, Dicas e Tutoriais (Texto ou Vídeo) que sejam de interesse de todos.

Moderador: Moderadores

Avatar do usuário
dbsh
Usuário Nível 3
Usuário Nível 3
Mensagens: 128
Registrado em: 14 Jul 2004 14:19
Localização: ES

facilitando a criação de menu em QT

Mensagem por dbsh »

Código: Selecionar todos

#command QT MENU BARRA <ownd> TO <mb> [MESSAGE <msg>] => ;
    <mb> := QMenuBar( <ownd> )[;<mb>:<msg>]

#command QT MENU BARRA <ownd> TO <mb> => ;
    <mb> := QMenuBar( <ownd> )

#command QT MENU <m> OPCAO <o> SUBMENU <v> [MESSAGE <msg>]=> ;
    <v> := QMenu(); <v>:setTitle(<(o)>); <m>:addMenu( <v> )[;<v>:<msg>]

#command QT MENU <m> OPCAO <o> SUBMENU <v> => ;
    <v> := QMenu(); <v>:setTitle(<(o)>); <m>:addMenu( <v> )

#command QT MENU <m> OPCAO <o> ACAO <a> TO <v> [MESSAGE <msg>] => ;
    <v> := QAction( <m> ); <v>:setText(<(o)>); <v>:connect( "triggered(bool)", <{a}>); <m>:addAction( <v> )[;<v>:<msg>]

#command QT MENU <m> OPCAO <o> ACAO <a> TO <v> => ;
    <v> := QAction( <m> ); <v>:setText(<(o)>); <v>:connect( "triggered(bool)", <{a}>); <m>:addAction( <v> )

#command QT MENU <v> SEPARADOR => <v>:addSeparator()

PROCEDURE Main()

LOCAL oWnd
LOCAL oMenuBar
LOCAL oMenuCad, oMenuFin, oMenuAjuda
LOCAL oMenuProduto, oMenuCadSair
LOCAL oMenuFinCPag, oMenuAjudaOnLine
LOCAL oMenuTabelas, oMenuTabelasCfop, oMenuTabelasCst
LOCAL oMenuProdutoCadastro, oMenuProdutoGrupo
LOCAL oMenuFinCPagMov, oMenuFinCPagRel

hbqt_errorsys()

oWnd := QMainWindow()
oWnd:reSize( 800, 600 )
oWnd:setWindowTitle( "System One" )

qt menu barra oWnd to oMenuBar message resize( 800, 30 ) //message setEnabled( .f. ) //desativa todo menu
    qt menu oMenuBar opcao "Cadastro" submenu oMenuCad message setStyleSheet( "background-color: yellow" ) //message setEnabled( .f. ) //desativa o menu cadastro e seus submenus
        qt menu oMenuCad opcao "Produto" submenu oMenuProduto
            qt menu oMenuProduto opcao "Cadastro de produto" acao MenuExecuta( "Cadastro de produto" ) TO oMenuProdutoCadastro
            qt menu oMenuProduto opcao "Cadastro de grupo" acao MenuExecuta( "Cadastro de grupo" ) TO oMenuProdutoGrupo
            qt menu oMenuProduto separador 
            qt menu oMenuProduto opcao "Tabelas" submenu oMenuTabelas
                qt menu oMenuTabelas opcao "CFOP" acao MenuExecuta( "Tabela CFOP" ) TO oMenuTabelasCfop  message setEnabled( .f. ) //desativa opcao
                qt menu oMenuTabelas opcao "CST" acao MenuExecuta( "Tabela CST" ) TO oMenuTabelasCst message setVisible( .t. )    //esconde opcao
        qt menu oMenuCad separador
        qt menu oMenuCad opcao "Sair" acao Sair() TO oMenuCadSair
    qt menu oMenuBar opcao "Financeiro" submenu oMenuFin
        qt menu oMenuFin opcao "Contas a Pagar" submenu oMenuFinCPag
            qt menu oMenuFinCPag opcao "Movimento" acao MenuExecuta( "Incluir/alterar/excluir Contas a Pagar" ) TO oMenuFinCPagMov
            qt menu oMenuFinCPag opcao "Relatorio" acao MenuExecuta( "Relatorio Contas a Pagar" ) TO oMenuFinCPagRel
    qt menu oMenuBar opcao "Ajuda" submenu oMenuAjuda
        qt menu oMenuAjuda opcao "On Line" acao MenuExecuta( "Ajuda" ) to oMenuAjudaOnLine

oWnd:Show()
QApplication():exec()

RETURN


PROCEDURE MenuExecuta( sOpcao )
AlertaOk( sOpcao )
RETURN


PROCEDURE Sair()
QApplication():Quit()
RETURN
010011110010000001110011011101010110001101100101011100110111001101101111001000001110100100100000011000110110111101101110011100110111010001110010011101011110110101100100011011110010000001100001001000000110111001101111011010010111010001100101
01001101011000010111001001100011011011110111001100100000010000010110111001110100011011110110111001101001011011110010000001000100011001010010000001000010011011110110111001101001
0101010001100101011011000011101000100000001010000011001000110111001010010011100100101101001110010011100000110100001100110010110100110101001100100011100100110000
Claudio Soto
Colaborador
Colaborador
Mensagens: 566
Registrado em: 27 Ago 2012 12:31
Localização: Uruguay
Contato:

facilitando a criação de menu em QT

Mensagem por Claudio Soto »

Hola Dbsh.
Muy buena iniciativa. :))
Hace mucho tiempo que estoy por desarrollar un conjunto de sentencias #xcommand/#xtraslate para hacer la interfaz visual de HbQt mas sencilla con una sintaxis similar a la de Clipper para animar a mas personas a usar HbQt, pero por una cuestión u otra fui postergando el proyecto.
Saludos,
Claudio Soto.
Saludos.
Dr. Claudio Soto
(Uruguay)
http://srvet.blogspot.com
Avatar do usuário
dbsh
Usuário Nível 3
Usuário Nível 3
Mensagens: 128
Registrado em: 14 Jul 2004 14:19
Localização: ES

facilitando a criação de menu em QT

Mensagem por dbsh »

declarando so uma varialvel

Código: Selecionar todos

#command QT MENU BARRA <ownd> TO <mb> [MESSAGE <msg>] => ;
    <mb> := QMenuBar( <ownd> )[;<mb>:<msg>]

#command QT MENU BARRA <ownd> TO <mb> => ;
    <mb> := QMenuBar( <ownd> )

#command QT MENU <m> OPCAO <o> SUBMENU <v> [MESSAGE <msg>]=> ;
    <v> := QMenu(); <v>:setTitle(<(o)>); <m>:addMenu( <v> )[;<v>:<msg>]

#command QT MENU <m> OPCAO <o> SUBMENU <v> => ;
    <v> := QMenu(); <v>:setTitle(<(o)>); <m>:addMenu( <v> )

#command QT MENU <m> OPCAO <o> ACAO <a> TO <v> [MESSAGE <msg>] => ;
    <v> := QAction( <m> ); <v>:setText(<(o)>); <v>:connect( "triggered(bool)", <{a}>); <m>:addAction( <v> )[;<v>:<msg>]

#command QT MENU <m> OPCAO <o> ACAO <a> TO <v> => ;
    <v> := QAction( <m> ); <v>:setText(<(o)>); <v>:connect( "triggered(bool)", <{a}>); <m>:addAction( <v> )

#command QT MENU <v> SEPARADOR => <v>:addSeparator()

PROCEDURE Main()
LOCAL oWnd
LOCAL oMenu

hbqt_errorsys()

oWnd := QMainWindow()
oWnd:reSize( 800, 600 )
oWnd:setWindowTitle( "System One" )

oMenu := Menu( oWnd )

oWnd:Show()
QApplication():exec()

RETURN

FUNCTION Menu( oWnd )
LOCAL oMenu := { => }

qt menu barra oWnd to oMenu[ "Barra" ] message resize( 800, 30 ) //message setEnabled( .f. ) //desativa todo menu
    qt menu oMenu[ "Barra" ] opcao "Cadastro" submenu oMenu[ "Cad" ] message setStyleSheet( "background-color: yellow" ) //message setEnabled( .f. ) //desativa o menu cadastro e seus submenus
        qt menu oMenu[ "Cad" ] opcao "Produto" submenu oMenu[ "Produto" ]
            qt menu oMenu[ "Produto" ] opcao "Cadastro de produto" acao MenuExecuta( "Cadastro de produto" ) TO oMenu[ "ProdutoCadastro" ]
            qt menu oMenu[ "Produto" ] opcao "Cadastro de grupo" acao MenuExecuta( "Cadastro de grupo" ) TO oMenu[ "ProdutoGrupo" ]
            qt menu oMenu[ "Produto" ] separador 
                qt menu oMenu[ "Produto" ] opcao "Tabelas" submenu oMenu[ "Tabelas" ]
                    qt menu oMenu[ "Tabelas" ] opcao "CFOP" acao MenuExecuta( "Tabela CFOP" ) TO oMenu[ "TabelasCfop" ]  message setEnabled( .f. ) //desativa opcao
                    qt menu oMenu[ "Tabelas" ] opcao "CST" acao MenuExecuta( "Tabela CST" ) TO oMenu[ "TabelasCst" ] message setVisible( .t. )    //esconde opcao
    qt menu oMenu[ "Cad" ] separador
    qt menu oMenu[ "Cad" ] opcao "Sair" acao Sair() TO oMenu[ "CadSair" ]
    qt menu oMenu[ "Barra" ] opcao "Financeiro" submenu oMenu[ "Fin" ]
        qt menu oMenu[ "Fin" ] opcao "Contas a Pagar" submenu oMenu[ "FinCPag" ]
            qt menu oMenu[ "FinCPag" ] opcao "Movimento" acao MenuExecuta( "Incluir/alterar/excluir Contas a Pagar" ) TO oMenu[ "FinCPagMov" ]
            qt menu oMenu[ "FinCPag" ] opcao "Relatorio" acao MenuExecuta( "Relatorio Contas a Pagar" ) TO oMenu[ "FinCPagRel" ]
    qt menu oMenu[ "Barra" ] opcao "Ajuda" submenu oMenu[ "Ajuda" ]
        qt menu oMenu[ "Ajuda" ] opcao "On Line" acao MenuExecuta( "Ajuda" ) to oMenu[ "AjudaOnLine" ]

RETURN oMenu

PROCEDURE MenuExecuta( sOpcao )
LOCAL uRet

uRet := QMessageBox()
uRet:setInformativeText( sOpcao )
uRet:setWindowTitle( "System One" )
uRet:exec()

uRet := NIL

RETURN


PROCEDURE Sair()
QApplication():Quit()
RETURN

010011110010000001110011011101010110001101100101011100110111001101101111001000001110100100100000011000110110111101101110011100110111010001110010011101011110110101100100011011110010000001100001001000000110111001101111011010010111010001100101
01001101011000010111001001100011011011110111001100100000010000010110111001110100011011110110111001101001011011110010000001000100011001010010000001000010011011110110111001101001
0101010001100101011011000011101000100000001010000011001000110111001010010011100100101101001110010011100000110100001100110010110100110101001100100011100100110000
Responder