Aumentar tamanho de um TCheckBox

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:

Exemplo aumentando o tamanho do TCheckBox

Exemplo aumentando o tamanho do TCheckBox

 

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.

Dan (Daniel Atilio)
Cristão de ramificação protestante. Especialista em Engenharia de Software pela FIB, graduado em Banco de Dados pela FATEC Bauru e técnico em informática pelo CTI da Unesp. Entusiasta de soluções Open Source e blogueiro nas horas vagas. Autor e mantenedor do portal Terminal de Informação.

Deixe uma resposta

Terminal de Informação