Ejemplos de CSS
En este capítulo vamos a explicar de forma práctica cómo personalizar la interfaz de nuestras aplicaciones usando hojas de estilo dinámicas (CSS).
Ejemplo documentado de personalización de objetos visuales y controles
En el ejemplo siguiente podemos ver documentados y personalizados los objetos visuales y controles de una aplicación Velneo. Esta CSS es un buen recurso formativo sobre la personalización de objetos y controles de aplicaciones Velneo.
Este y el resto de los ejemplos de este capítulo son aplicables a los comandos de instrucción de proceso interfaz: establecer hoja de estilo CSS, interfaz: establecer hoja de estilo CSS filescript y a la creación de CSS para aplicar a objetos en edición.
/* --------------------------------------------------------------------------------
INDICE
- QCalendarWidget CALENDARIO
- QCheckBox BOTON CHECK
- QComboBox COMBOBOX
- QDateEdit CAJA DE EDICIÓN DE CAMPO FECHA MODO DE EDICIÓN FECHA
- QDateTime CAJA DE VISUALIZACIÓN CAMPO FECHA Y HORA
- QDateTimeEdit CAJA DE EDICIÓN DE CAMPO FECHA Y HORA
- QDialog VENTANA EN CUADRO DE DIÁLOGO
- QDockWidget DOCK
- QDoubleSpinBox CAJA DE EDICIÓN DE CAMPO NUMÉRICO CON BOTONES ARRIBA Y ABAJO
- QFrame MARCO
- QGroupBox CAJA DE GRUPO
- QHeaderView CABECERA DE REJILLAS Y ÁRBOLES
- QLabel ETIQUETA DE TEXTO
- QLineEdit CAJA DE EDICIÓN DE TEXTO EN UNA LINEA
- QMainWindow VENTANA PRINCIPAL
- QMenu MENU CONTEXTUAL
- QMenuBar BARRA DE MENU (Solo afecta a Windows)
- QMessageBox VENTANA DE MENSAJE
- QNumberSpinBox CAJA DE EDICIÓN DE CAMPO NUMÉRICO CON BOTONES ARRIBA Y ABAJO
- QProgressBar BARRA DE PROGRESO
- QPushButton BOTÓN
- QRadioButton BOTÓN DE RADIO
- QScrollBar BARRA DE SCROLL VERTICAL Y HORIZONTAL
- QSlider DESLIZADOR
- QSpinBox CAJA DE EDICIÓN DE CAMPO NUMÉRICO CON UN BOTÓN
- QSplitter SPLITTER
- QStatusBar BARRA DE ESTADO
- QTabWidget SEPARADOR DE FORMULARIOS (PESTAÑAS)
- QTableView REJILLA
- QTextEdit CAJA DE EDICIÓN DE TEXTO MULTI-LINEA
- QTimeEdit CAJA DE EDICIÓN DE HORA
- QTitanGrid REJILLA AVANZADA
- QToolBar BARRA DE HERRAMIENTAS
- QTooltip TOOLTIP
- QTreeView QTREEVIEW - ARBOL VISOR Y MENU ARBOLADO
- QWidget#qt_calendar CALENDARIO
- VBoundFieldEdit CAJA DE EDICIÓN DE CAMPO PUNTERO A MAESTRO
- VDateLineEdit CAJA DE EDICIÓN DE CAMPO FECHA MODO DE EDICIÓN ALFANUMÉRICO
- VCFootView PIE DE REJILLA
- VListBox LISTBOX
- VCPVControlCasillero CASILLERO
- VCOverlayShadow OVERLAY
-------------------------------------------------------------------------------- */
/* --------------------------------------------------------------------------------
QCheckBox - BOTÓN CHECK
QRadioButton - BOTÓN DE RADIO
-------------------------------------------------------------------------------- */
QCheckBox, QRadioButton {
color: #212121; }
QCheckBox:hover, QRadioButton:hover {
color: #039BE5; }
QCheckBox:focus, QRadioButton:focus {
color: #039BE5; }
QCheckBox:disabled, QRadioButton:disabled {
color: #808080; }
/* --------------------------------------------------------------------------------
QComboBox - COMBOBOX
QDateEdit - CAJA DE EDICIÓN DE CAMPO FECHA MODO DE EDICIÓN FECHA
QDateTime - CAJA DE VISUALIZACIÓN CAMPO FECHA Y HORA
QDateTimeEdit - CAJA DE EDICIÓN DE CAMPO FECHA Y HORA
QDoubleSpinBox - CAJA DE EDICIÓN DE CAMPO NUMÉRICO CON BOTONES ARRIBA Y ABAJO
QNumberSpinBox - CAJA DE EDICIÓN DE CAMPO NUMÉRICO CON BOTONES ARRIBA Y ABAJO
QSpinBox - CAJA DE EDICIÓN DE CAMPO NUMÉRICO CON UN BOTÓN
QTimeEdit - CAJA DE EDICIÓN DE HORA
VBoundFieldEdit - CAJA DE EDICION DE CAMPO PUNTERO A MAESTRO
VDateLineEdit - CAJA DE EDICIÓN DE CAMPO FECHA MODO DE EDICIÓN ALFANUMÉRICO
VListBox - LISTBOX
-------------------------------------------------------------------------------- */
VDataCatcherEdit, QComboBox, QDateEdit, VDateLineEdit, QDateTime, QDateTimeEdit, QDoubleSpinBox, QNumberSpinBox, QSpinBox, QTimeEdit, VBoundFieldEdit, vBoundFieldEditBrowser, VDateLineEdit,VListBox {
background-color: #F1F3F2;
border: 0px solid #F1F3F2;
border-radius: 0px;
color: #212121;
height: 36px;
padding-left: 12px;
padding-right: 12px;
selection-background-color: #01579B;
selection-color: #FFFFFF; }
VDataCatcherEdit:hover, QComboBox:hover, QDateEdit:hover, VDateLineEdit:hover, QDateTime:hover, QDateTimeEdit:hover, QDoubleSpinBox:hover, QNumberSpinBox:hover, QSpinBox:hover, QTimeEdit:hover, VBoundFieldEditBrowser:hover,VBoundFieldEdit:hover, VListBox:hover {
background-color: #E0E0E0;
border: 0px 1px 0px 0px solid #01579B; }
VDataCatcherEdit:focus, QComboBox:focus, QDateEdit:focus, VDateLineEdit:focus, QDateTime:focus, QDateTimeEdit:focus, QDoubleSpinBox:focus, QNumberSpinBox:focus, QSpinBox:focus, QTimeEdit:focus, VBoundFieldEditBrowser:focus, VBoundFieldEdit:focus, VListBox:focus {
border-bottom: 1px solid #01579B; }
VDataCatcherEdit:disabled, QComboBox:disabled, QDateEdit:disabled, VDateLineEdit:disabled, QDateTime:disabled, QDateTimeEdit:disabled, QDoubleSpinBox:disabled, QNumberSpinBox:disabled, QSpinBox:disabled, QTimeEdit:disabled, VBoundFieldEditBrowser:disabled,VBoundFieldEdit:disabled, VListBox:disabled {
background-color: #FAFAFA;
color: #808080; }
QDateEdit::up-button, VDateLineEdit::up-button, QDateTime::up-button, QDateTimeEdit::up-button, QTimeEdit::up-button, VBoundFieldEditBrowser::up-button, VBoundFieldEdit::up-button {
border: none;
image: url(":/Resources/tg_moverarriba.png");
width: 16px; }
QDateEdit::down-button, VDateLineEdit::down-button, QDateTime::down-button, QDateTimeEdit::down-button, QTimeEdit::down-button, VBoundFieldEditBrowser::down-button, VBoundFieldEdit::down-button {
border: none;
image: url(":/Resources/tg_moverabajo.png");
width: 16px; }
VDataCatcherEdit::drop-down, QComboBox::drop-down, QDateEdit::drop-down, VDateLineEdit::drop-down, QDateTime::drop-down, QDateTimeEdit::drop-down, VBoundFieldEditBrowser::drop-down, VBoundFieldEdit::drop-down, QTimeEdit::drop-down {
border: none;
image: url(":/Resources/tg_moverabajo.png");
width: 16px; }
/* EN PRINCIPIO NO AFECTAN */
QNumberSpinBox:up-button, QDoubleSpinBox:up-button, QSpinBox:up-button {
border: none;
image: url(":/Resources/tg_moverarriba.png"); }
QNumberSpinBox:down-button, QDoubleSpinBox:down-button, QSpinBox:down-button {
border: none;
image: url(":/Resources/tg_moverabajo.png"); }
VBoundFieldEditBrowser QToolButton {
background-color: #F5F5F5; }
VBoundFieldEditBrowser QToolButton:hover {
background-color: #E0E0E0; }
/* --------------------------------------------------------------------------------
QDialog - Cuadro de diálogo
-------------------------------------------------------------------------------- */
QDialog QPushButton {
min-width: 120;
text-transform: none;
}
/* --------------------------------------------------------------------------------
QDockWidget - DOCK
-------------------------------------------------------------------------------- */
QDockWidget {
color: transparent;
font-size: 10px;
min-width:10px;
width: 210px; }
QDockWidget::title {
background: #FFFFFF;
color: #212121;
margin: 0px;
padding: 0px;
text-align: center; }
QDockWidget::close-button {
image: none;
position: absolute;
subcontrol-origin: margin;
subcontrol-position: top right;
top: 0px; left: 0px; bottom: 0px;
width: 0px; }
QDockWidget::float-button {
image: none;
position: absolute;
subcontrol-origin: margin;
subcontrol-position: top right;
top: 0px; left: 0px; bottom: 0px;
width: 0px; }
/* --------------------------------------------------------------------------------
QFrame - MARCO
-------------------------------------------------------------------------------- */
QFrame {
background: rgba(255, 255, 255, 100%);
border: 0px; }
/* --------------------------------------------------------------------------------
QGroupBox - CAJA DE GRUPO
-------------------------------------------------------------------------------- */
QGroupBox {
background: #FAFAFA;
border: 0px solid #212121;
border-radius: 5px;
font-size: 12px;
font-weight: bold;
margin-top: 20px;
padding: 5px; }
QGroupBox::title {
color: #212121;
padding-top: -5px;
padding-left: 5px;
subcontrol-origin: margin; }
/* --------------------------------------------------------------------------------
QHeaderView - CABECERA DE REJILLAS Y ARBOLES
-------------------------------------------------------------------------------- */
QHeaderView::section:horizontal {
background: #FFFFFF;
border: none;
border-bottom: 1px solid #E0E0E0;
border-right: 5px solid transparent;
color: #01579B;
font-weight: bold;
margin-top: 10px;
min-height: 20px; }
QHeaderView::section:vertical {
background: #FFFFFF;
border: none;
border-bottom: 1px solid #E0E0E0;
border-right: 5px solid transparent;
color: #01579B;
font-weight: bold;
margin-top: 10px;
min-height: 20px; }
/* --------------------------------------------------------------------------------
La clase siguiente hace que no se destaquen las cabeceras horizontal y vertical al ganar el foco
-------------------------------------------------------------------------------- */
QHeaderView{
qproperty-highlightSections: false;
}
/* --------------------------------------------------------------------------------
QLabel - ETIQUETA DE TEXTO
-------------------------------------------------------------------------------- */
QLabel {
background-color: transparent;
color: #808080;
font-size: 12px;
text-transform: uppercase; }
/* TITULOS DE LOS FORMULARIOS Y MENUS */
QLabel#TXT_TIT {
color: #01579B;
font-size: 32px;
text-transform: none; }
QLabel#TXT_SUB_TIT, QLabel#TXT_SUB_TIT_2 {
color: #01579B;
font-size: 16px;
text-transform: none; }
QLabel#TXT_CAS {
font-size: 10px;
text-transform: none; }
QLabel#EMP {
font-size: 16px; }
QLabel#USR {
font-size: 12px; }
/* MENSAJE ERROR */
QLabel#NAME_VAC, QLabel#EML_ERR {
alignement: right;
background: transparent;
color: #E27249;
font-size: 10px;
text-transform: uppercase;
padding-left: -1px;
padding-top: 1px; }
/* MENSAJE DUPLICADO*/
QLabel#NAME_DUP, QLabel#EML_DUP {
alignement: right;
background: transparent;
color: #6388C1;
font-size: 10px;
padding-top: 1px;
text-transform: uppercase; }
/* --------------------------------------------------------------------------------
QLineEdit - CAJA DE EDICIÓN DE TEXTO EN UNA LINEA
QTextEdit - CAJA DE EDICIÓN DE TEXTO MULTI-LINEA
-------------------------------------------------------------------------------- */
QLineEdit, QTextEdit {
background-color: #F1F3F2;
border: 0px solid #212121;
border-radius: 0px;
color: #212121;
height: 36px;
padding-left: 12px;
padding-right: 12px;
selection-background-color: #01579B;
selection-color: #FFFFFF; }
QLineEdit:hover, QTextEdit:hover {
background-color: #F1F3F2;
border: 0px solid #01579B; }
QLineEdit:focus, QTextEdit:focus {
background-color: #F1F3F2;
border-bottom: 1px solid #01579B; }
QLineEdit:disabled, QTextEdit:disabled {
background-color: #FAFAFA;
color: #808080; }
/* CONTROL DE EDICIÓN DE TEXTOS A BUSCAR EN MENUS */
QLineEdit#TXT_BUS {
qproperty-placeholderText: 'Texto a buscar'; }
/* FORMULARIO ALTA CONTACTO > TEXTO EDIT NOMBRE Y NOMBRE COMERCIAL */
QLineEdit#NAME_CON {
qproperty-placeholderText: 'Nombre contacto';
qproperty-text: 'Nombre contacto'; }
QLineEdit#NOM_COM {
margin-left: 10px; }
QTextEdit#MOTIVO {
height: 36px; }
/* --------------------------------------------------------------------------------
QMainWindow - VENTANA PRINCIPAL
-------------------------------------------------------------------------------- */
QMainWindow {
background: #FFFFFF;
border: 0px; }
QMainWindow::separator {
background: #FFF;
border-left: 1px solid #CECECE;
border-right: 1px solid #CECECE;
height: 5px;
width: 5px; }
QMainWindow::separator:hover {
background: #CECECE; }
/* --------------------------------------------------------------------------------
QMenu - MENU CONTEXTUAL
-------------------------------------------------------------------------------- */
QMenu {
background-color: #FFF;
border: 1px solid #CECECE;
color: #333333;
margin: 0px;
padding: 5px; }
QMenu::item {
border: 1px solid transparent;
margin: 1px;
padding: 5px 30px 5px 20px; }
QMenu::item:selected {
background-color: #E1F5FE;
color:#000; }
QMenu::separator {
background-color: #CECECE;
height: 1px;
margin: 0px; }
/* --------------------------------------------------------------------------------
QMenuBar - BARRA DE MENU (Solo afecta a Windows)
-------------------------------------------------------------------------------- */
QMenuBar {
background-color: #FFF;
border-bottom: 1px solid #CECECE;
min-height:20px; }
QMenuBar::item:selected {
background-color: #CECECE;
color: #000; }
QMenuBar::item:hover {
background: #333333;
color: #FFF; }
/* --------------------------------------------------------------------------------
QMessageBox - VENTANA DE MENSAJE
QDialog - VENTANA EN CUADRO DE DIÁLOGO
-------------------------------------------------------------------------------- */
QMessageBox, QDialog {
background-color: #FFF; }
QMessageBox QPushButton {
min-width: 120;
text-transform: none; }
/* --------------------------------------------------------------------------------
QProgressBar - BARRA DE PROGRESO
-------------------------------------------------------------------------------- */
QProgressBar {
background-color: #FFF;
border: 1px solid #E0E0E0;
border-radius: 2px;
color: #212121;
height: 30px;
text-align: center; }
QProgressBar::chunk {
background-color: #C5CAE9; }
/* --------------------------------------------------------------------------------
QPushButton - BOTÓN
-------------------------------------------------------------------------------- */
QPushButton {
background-color: #FFFFFF;
border: 1px solid #01579B;
border-radius: 3px ;
color: #01579B;
font-size: 14px;
font-weight: medium;
height: 36px;
text-align: center;
width: 120px;
qproperty-iconSize: 18px; }
QPushButton:hover {
background-color: #F5F5F5; }
QPushButton:focus {
background-color: #F5F5F5;
border: 2px solid #01579B; }
QPushButton:pressed {
background-color: #F5F5F5;
border: 2px solid #01579B; }
QPushButton:disabled {
background-color: #FFFFFF;
border: 0px solid #C1C1C1;
color: #C1C1C1; }
QPushButton::menu-indicator {
image: none;
width: 0px; }
/* BOTÓN ACEPTAR */
QPushButton#BTN_ACE, QPushButton#BTN_ALT_BUS {
background-color: #01579B;
color: #FFFFFF; }
QPushButton:hover#BTN_ACE, QPushButton:hover#BTN_ALT_BUS {
background-color: #01579B;
color: #E1F5FE; }
QPushButton:focus#BTN_ACE, QPushButton:focus#BTN_ALT_BUS {
border: 2px solid #212121; }
QPushButton:pressed#BTN_ACE, QPushButton:pressed#BTN_ALT_BUS {
border: 2px solid #212121; }
QPushButton:disabled#BTN_ACE, QPushButton:disabled#BTN_ALT_BUS {
background-color: #C1C1C1;
border: 0px;
color: #FFFFFF; }
/* BOTÓN BUSCAR */
QPushButton#BTN_ALT_BUS {
background-color: #01579B;
color: #FFFFFF;
radius: 3px; }
QPushButton#BTN_ALT_CHG_BUS {
background-color: #FFFFFF;
border: 1px solid #01579B;
color: #01579B;
font-size: 14px;
height: 36px;
radius: 3px;
width: 240px; }
QPushButton#BTN_CNC, QPushButton#BTN_CNC_2, QPushButton#BTN_DUP, QPushButton#BTN_SUP {
background-color: #FFFFFF;
border: 1px solid #01579B;
color: #01579B;
font-size: 18px;
height: 48px;
radius: 3px; }
QPushButton#BTN_BUS_MEN {
background-color: #FFFFFF;
border: 1px solid #01579B;
color: #01579B;
height: 36px;
radius: 3px; }
/* BOTÓN AMPLIAR, BOTÓN BUSCAR, BOTÓN MENU y BOTÓN REDUCIR */
QPushButton#BTN_AMP, QPushButton#BTN_AYU, QPushButton#BTN_BUS, QPushButton#BTN_MEN, QPushButton#BTN_RED {
border-radius: 0px;
qproperty-iconSize: 18px; }
/* --------------------------------------------------------------------------------
QScrollBar - BARRA DE SCROLL VERTICAL Y HORIZONTAL
-------------------------------------------------------------------------------- */
QScrollBar:vertical {
background: #FFFFFF;
border-radius: 6px;
padding-left: 2px;
padding-right: 2px;
width: 12px; }
QScrollBar:horizontal {
background: #FFFFFF;
border-radius: 6px;
padding-bottom: 2px;
padding-top: 2px;
height: 12px; }
QScrollBar:vertical:hover {
background: #F5F5F5; }
QScrollBar:horizontal:hover {
background: #F5F5F5; }
QScrollBar::handle:vertical {
background: #C1C1C1;
border: 2px solid transparent;
border-radius: 4px;
min-height: 90px; }
QScrollBar::handle:horizontal {
background: #C1C1C1;
border: 2px solid transparent;
border-radius: 4px;
min-width: 90px; }
QScrollBar::handle:hover {
background: #808080;
border: 2px solid transparent; }
QScrollBar::add-line:vertical {
background: none;
border: none; }
QScrollBar::sub-line:vertical {
background: none;
border: none; }
QScrollBar::add-line:horizontal {
background: none;
border: none; }
QScrollBar::sub-line:horizontal {
background: none;
border: none; }
/* --------------------------------------------------------------------------------
QScrollBar - Recuadro de intersección entre las scrollbar horizontal y vertical
-------------------------------------------------------------------------------- */
QAbstractScrollArea::corner {
background: transparent;
border: transparent; }
/* --------------------------------------------------------------------------------
QSlider - DESLIZADOR