Você está na página 1de 5

http://blogadvpl.

com/v2/modificando-imagens-padrao-e-tema-doprotheus/3/
http://www.blacktdn.com.br/2012/09/blacktdn-customizando-interfacede.html
http://doc.qt.io/qt-4.8/stylesheet-examples.html

Tabela de componentes (DePara). Vlida para SmartClient 131227A


ou superior.
Componente ADVPL

Equivalent
e Qt

TButtonSButtonTBrowseButtonTBtnBmpTBtnBmp2THB

QPushButton

utton
TCBrowseBrGetDDbMsBrGetDBaseMsSelBrTSBrowse

QTableWidg

TWBrowseVCBrowse

et

TCColumn

QTableWidg
etItem

TCheckBox

QCheckBox

TComboBox

QComboBox

TFolder

QTabBar

TGet

QLineEdit

TGrid

QTableView

TGroup

QGroupBox

TListBox

QListWidget

TMeter

QProgressB
ar

TMsgBar

QStatusBar

TMsgItem

QLabel

TMultiGet

QTextEdit

TPanel

QLabel

Componente ADVPL

Equivalent
e Qt

TRadMenu

QRadioButto
n

TSay

QLabel

TScrollArea

QScrollArea

TScrollBox
TSimpleEditor

QTextEdit

TSlider

QSlider

TSpinBox

QSpinBox

TSplitter

QSplitter

TToolBox

QToolBox

TTree

QTreeWidget

http://blogadvpl.com/v2/que-tal-montar-suas-telas-em-um-formatodiferente-parte-3/
http://tdn.totvs.com/display/framework/Desenhador+MVC

#include "Totvs.ch"
User Function tGetCss()
Local cNome := Space(100) //Irei declarar uma varivel chamada cNome do tipo string para o meu
campo nome
Local cEstiloNom := "" //Irei declarer uma variavel chamada cEstiloNom do tipo string para inserir
meu estilo
//Irei criar uma janela
DEFINE DIALOG oDlg TITLE "Usando estilos CSS no Protheus" FROM 180,180 TO 550,700 PIXEL
/*Para funcionar, preciso utilizar a classe QLineEdit ele ser responsvel para o correto
desenvolvimento do estilo que ser utilizado no meu objeto.
Para quem j conhece CSS, ver que exatamente o mesmo cdigo utilizado para uma pgina
web.
A apresentao de imagens nos objetos criados podem ser resgatados de dentro do repositrio
(RPO), exemplificando ficaria assim: (rpo:imagemqueexistenorepositorio.png)
*/
cEstiloNom := "QLineEdit{ border: 1px solid gray;border-radius: 5px;background-color:
#ffffff;selection-background-color: #ffffff;"
cEstiloNom += "background-image:url(rpo:responsa.png); "
cEstiloNom += "background-repeat: no-repeat;"
cEstiloNom += "background-attachment: fixed;"
cEstiloNom += "padding-left:25px; "

cEstiloNom += "}"
/*Agora criamos o nosso objeto tGet normalmente*/
oNome := TGet():New( 01,10,{|| cNome
},oDlg,200,011,"",,0,,,.F.,,.T.,,.F.,,.F.,.F.,,.F.,.F.,,"cNome",,,,,,,"Nome: ",1 )
/*Neste momento, para definirmos o estilo, usaremos a propriedade SetCss, no qual informaremos
a ela a variavel que contm o estilo que criamos anteriormente.*/
oNome:SetCss(cEstiloNom)
//Finalizamos a janela
ACTIVATE DIALOG oDlg CENTERED
Return

#INCLUDE 'TOTVS.CH'
User Function fBtnCSS()
Local cEstilo1,cEstilo2,cEstilo3 //Crio um estico para cada boto, no necessrio caso todos
sejam iguais
DEFINE DIALOG oDlg TITLE "Usando estilos CSS no Protheus" FROM 180,180 TO 350,700 PIXEL
//Irei utilizar a classe QPushButton, ela responsvel em criar a formatao do boto.
cEstilo1 := "QPushButton {"
//Usando a propriedade background-image, inserimos a imagem que ser utilizada, a imagem
pode ser pega pelo repositrio (RPO)
cEstilo1 += " background-image: url(rpo:totvsprinter_spool.png);background-repeat: none;
margin: 2px;"
cEstilo1 += " border-style: outset;"
cEstilo1 += " border-width: 2px;"
cEstilo1 += " border: 1px solid #C0C0C0;"
cEstilo1 += " border-radius: 5px;"
cEstilo1 += " border-color: #C0C0C0;"
cEstilo1 += " font: bold 12px Arial;"
cEstilo1 += " padding: 6px;"
cEstilo1 += "}"
//Na classe QPushButton:pressed , temos o efeito pressed, onde ao se pressionar o boto ele
muda
cEstilo1 += "QPushButton:pressed {"
cEstilo1 += " background-color: #e6e6f9;"
cEstilo1 += " border-style: inset;"
cEstilo1 += "}"
cEstilo2 := "QPushButton {background-image: url(rpo:totvsprinter_pdf.png);background-repeat:
none; margin: 2px; "
cEstilo2 += " border-style: outset;"
cEstilo2 += " border-width: 2px;"
cEstilo2 += " border: 1px solid #C0C0C0;"
cEstilo2 += " border-radius: 0px;"
cEstilo2 += " border-color: #C0C0C0;"
cEstilo2 += " font: bold 12px Arial;"

cEstilo2
cEstilo2
cEstilo2
cEstilo2
cEstilo2
cEstilo2

+=
+=
+=
+=
+=
+=

" padding: 6px;"


"}"
"QPushButton:pressed {"
" background-color: #e6e6f9;"
" border-style: inset;"
"}"

cEstilo3 := "QPushButton {background-image: url(rpo:totvsprinter_email.png);backgroundrepeat: none; margin: 2px;}"


//Cria-se os botoes normalmente, para mais detalhes das opes do boto acesse o TDN
(http://tdn.totvs.com/display/tec/TButton)
//O espao entre a primeira aspa e o texto do boto, necessrio pois neste espao que a
imagem entra
oBtnImprimir := TButton():New(10,010,"
Imprimir" ,oDlg,{|| Alert('Boto Imprimir com
efeito') },50,20,,,.F.,.T.,.F.,,.F.,,,.F. )
oBtnPDF
:= TButton():New(10,070,"
Gerar PDF"
,oDlg,{|| Alert('Boto Gerar PDF
com efeito') },60,20,,,.F.,.T.,.F.,,.F.,,,.F. )
oBtnEmail := TButton():New(10,140,"
Enviar E-mail"
,oDlg,{|| Alert('Boto Enviar Email com efeito') },60,20,,,.F.,.T.,.F.,,.F.,,,.F. )
/*Neste momento, para definirmos o estilo, usaremos a propriedade SetCss, no qual
informaremos a ela a variavel que contm o estilo que criamos anteriormente.*/
oBtnImprimir:SetCss(cEstilo1)
oBtnPDF:SetCss(cEstilo2)
oBtnEmail:SetCss(cEstilo3)
ACTIVATE DIALOG oDlg CENTERED
Return
#INCLUDE 'TOTVS.CH'
#INCLUDE 'ESTILOS.CH' //Incluo o arquivo que dever ser criado com o nome ESTILOS.CH
User Function fBtnCSS()
DEFINE DIALOG oDlg TITLE "Usando estilos CSS no Protheus" FROM 180,180 TO 350,700 PIXEL

//Cria-se os botoes normalmente, para mais detalhes das opes do boto acesse o TDN
(http://tdn.totvs.com/display/tec/TButton)
//O espao entre a primeira aspa e o texto do boto, necessrio pois neste espao que a
imagem entra
oBtnImprimir := TButton():New(10,010,"
Imprimir" ,oDlg,{|| Alert('Boto Imprimir com
efeito') },50,20,,,.F.,.T.,.F.,,.F.,,,.F. )
oBtnPDF
:= TButton():New(10,070,"
Gerar PDF"
,oDlg,{|| Alert('Boto Gerar PDF
com efeito') },60,20,,,.F.,.T.,.F.,,.F.,,,.F. )
oBtnEmail := TButton():New(10,140,"
Enviar E-mail"
,oDlg,{|| Alert('Boto Enviar Email com efeito') },60,20,,,.F.,.T.,.F.,,.F.,,,.F. )
/*Neste momento, para definirmos o estilo, usaremos a propriedade SetCss, no qual
informaremos a ela a variavel que contm o estilo que criamos anteriormente.*/
oBtnImprimir:SetCss(STYLE0000) //Substituo pela variavel que criei no arquivo estilos.ch
oBtnPDF:SetCss(STYLE0002) //Substituo pela variavel que criei no arquivo estilos.ch
oBtnEmail:SetCss(STYLE0003) //Substituo pela variavel que criei no arquivo estilos.ch
ACTIVATE DIALOG oDlg CENTERED
Return

//Irei utilizar a classe QPushButton, ela responsvel em criar a formatao do boto.


#define STYLE0000 "QPushButton {" +;
" background-image: url(rpo:totvsprinter_spool.png);background-repeat: none;
margin: 2px;" +;
" border-style: outset;" +;
" border-width: 2px;" +;
" border: 1px solid #C0C0C0;" +;
" border-radius: 5px;" +;
" border-color: #C0C0C0;" +;
" font: bold 12px Arial;" +;
" padding: 6px;" +;
"}" +;
"QPushButton:pressed {background-color: #e6e6f9;border-style: inset;}"
#define STYLE0002 "QPushButton {background-image: url(rpo:totvsprinter_pdf.png);backgroundrepeat: none; margin: 2px; " +;
" border-style: outset;" +;
" border-width: 2px;" +;
" border: 1px solid #C0C0C0;" +;
" border-radius: 0px;" +;
" border-color: #C0C0C0;" +;
" font: bold 12px Arial;" +;
" padding: 6px;" +;
"}" +;
"QPushButton:pressed {background-color: #e6e6f9;border-style: inset;}"
#define STYLE0003 "QPushButton {background-image:
url(rpo:totvsprinter_email.png);background-repeat: none; margin: 2px;}"