No artigo de hoje, vamos demonstrar em como aumentar as dimensões e fonte de um TCheckBox.
Se você já precisou instanciar um TCheckBox, o aumento de tamanho, não é só ajustar a fonte e o atributo de altura.
O que precisa ser feito, é a utilização do método SetCss.
E nele você passa como QCheckBox. Abaixo um fonte de exemplo:
//Bibliotecas
#Include "TOTVS.ch"
/*/{Protheus.doc} User Function zTstCheck
Exemplo de como modificar TCheckBox com CSS
@type Function
@author Atilio
@since 03/04/2023
@see https://tdn.totvs.com/display/tec/TCheckBox
/*/
User Function zTstCheck()
Local aArea := FWGetArea()
Local nCorFundo := RGB(238, 238, 238)
Local nJanAltura := 187
Local nJanLargur := 253
Local cJanTitulo := 'Exemplo TCheckBox'
Local lDimPixels := .T.
Local lCentraliz := .T.
Local nObjLinha := 0
Local nObjColun := 0
Local nObjLargu := 0
Local nObjAltur := 0
Private cFontNome := 'Tahoma'
Private oFontPadrao := TFont():New(cFontNome, , -12)
Private oDialogPvt
Private bBlocoIni := {|| /*fSuaFuncao()*/ } //Aqui voce pode acionar funcoes customizadas que irao ser acionadas ao abrir a dialog
//objeto0
Private oChkObj0
Private lChkObj0 := .F.
Private cChkObj0 := 'CheckBox padrão'
//objeto1
Private oChkObj1
Private lChkObj1 := .F.
Private cChkObj1 := 'Teste CSS Médio'
//objeto2
Private oChkObj2
Private lChkObj2 := .F.
Private cChkObj2 := 'Teste CSS'
//objeto3
Private oBtnObj3
Private cBtnObj3 := 'Confirmar'
Private bBtnObj3 := {|| MsgInfo('Primeiro [' + cValToChar(lChkObj0) + '], Segundo [' + cValToChar(lChkObj1) + '], Terceiro [' + cValToChar(lChkObj2) + ']', 'Atencao')}
//Cria a dialog
oDialogPvt := TDialog():New(0, 0, nJanAltura, nJanLargur, cJanTitulo, , , , , , nCorFundo, , , lDimPixels)
//objeto0 - usando a classe TCheckBox
nObjLinha := 5
nObjColun := 7
nObjLargu := 110
nObjAltur := 30
oChkObj0 := TCheckBox():New(nObjLinha, nObjColun, cChkObj0, {|u| Iif(PCount() > 0 , lChkObj0 := u, lChkObj0)}, oDialogPvt, nObjLargu, nObjAltur, , /*bLClicked*/, oFontPadrao, /*bValid*/, /*nClrText*/, /*nClrPane*/, , lDimPixels)
//objeto1 - usando a classe TCheckBox
nObjLinha := 25
nObjColun := 7
nObjLargu := 110
nObjAltur := 30
oChkObj1 := TCheckBox():New(nObjLinha, nObjColun, cChkObj1, {|u| Iif(PCount() > 0 , lChkObj1 := u, lChkObj1)}, oDialogPvt, nObjLargu, nObjAltur, , /*bLClicked*/, oFontPadrao, /*bValid*/, /*nClrText*/, /*nClrPane*/, , lDimPixels)
oChkObj1:SetCSS(;
"QCheckBox {" +;
" color: #2E8E3B; " +;
" font-size: 14px;" +;
"}" +;
"QCheckBox::indicator {" +;
" width: 15px; " +;
" height: 15px;" +;
"}" ;
)
//objeto2 - usando a classe TCheckBox
nObjLinha := 45
nObjColun := 7
nObjLargu := 200
nObjAltur := 30
oChkObj2 := TCheckBox():New(nObjLinha, nObjColun, cChkObj2, {|u| Iif(PCount() > 0 , lChkObj2 := u, lChkObj2)}, oDialogPvt, nObjLargu, nObjAltur, , /*bLClicked*/, oFontPadrao, /*bValid*/, /*nClrText*/, /*nClrPane*/, , lDimPixels)
oChkObj2:SetCSS(;
"QCheckBox { background-repeat: no-repeat; "+;
" outline :none; "+;
" padding-top: 0px; "+;
" font:bold; "+;
" font-size: "+FWResAdjSize(35)+"px; "+;
" padding: 25px; "+;
" color: #656565; "+;
" border: none;} "+;
"QWidget { border-width: 0px ;}"+;
" QCheckBox::indicator { "+;
" width: "+FWResAdjSize(17)+"px;"+;
" height: "+FWResAdjSize(17)+"px;}";
)
//objeto3 - usando a classe TButton
nObjLinha := 70
nObjColun := 7
nObjLargu := 110
nObjAltur := 15
oBtnObj3 := TButton():New(nObjLinha, nObjColun, cBtnObj3, oDialogPvt, bBtnObj3, nObjLargu, nObjAltur, , oFontPadrao, , lDimPixels)
//Ativa e exibe a janela
oDialogPvt:Activate(, , , lCentraliz, , , bBlocoIni)
FWRestArea(aArea)
Return
E abaixo um print de como ficou:
Obs.: A única coisa que não consegui pessoal, foi aumentar o quadrado do check.
Referências:
https://tdn.totvs.com/display/tec/Construtor+TCheckBox%3ANew
Bom pessoal, por hoje é só.
Um grande abraço a todos e até a próxima.
