1/* Customize any plain widget that is a child of a QMainWindow. */ 2QMainWindow > .QWidget { 3 background-color: gainsboro; 4 background-image: url(:/images/pagefold.png); 5 background-position: top right; 6 background-repeat: no-repeat 7} 8 9/* Provide a padding for the layout inside the frame. The frame 10 exists only to provide a padding for the top-right image, so we 11 explicitly disable the border. */ 12#mainFrame { 13 padding-right: 30px; 14 border-style: none; 15 border-image: none; /* since we set a border-image below */ 16} 17 18/* mainFrame won't have this border-image since we have 19 explicitly set it to 'none' using a more specific selector. */ 20QFrame, QLineEdit, QComboBox[editable="true"], QSpinBox { 21 border-image: url(:/images/frame.png) 4; 22 border-width: 3; 23} 24 25QLabel { 26 border: none; 27 border-image: none; 28 padding: 0; 29 background: none; 30} 31 32/* Make text in message boxes selectable. */ 33QMessageBox { 34 /* LinksAccessibleByMouse | TextSelectableByMouse */ 35 messagebox-text-interaction-flags: 5; 36} 37 38/* Set the selection colors for all widgets. */ 39QWidget { 40 selection-color: black; 41 selection-background-color: Silver; 42 color: black; 43} 44 45/* Make the entire row selected in item views. */ 46QAbstractItemView { 47 show-decoration-selected: 1; 48} 49 50/* Nice WindowsXP-style password character for password line edits. */ 51QLineEdit[echoMode="2"] { 52 lineedit-password-character: 9679; 53} 54 55/* Customize tooltips. */ 56QToolTip { 57 background-color: rgb(200,200,255); 58 border-color: darkslategray; 59 border-width: 1px; 60 border-style: solid; 61 padding: 3px; 62 font: bold; 63 border-radius: 3px; 64 opacity: 200; 65} 66 67/* Customize radio buttons. */ 68 69QRadioButton { 70 spacing: 5px; 71} 72 73QRadioButton::indicator { 74 width: 13px; 75 height: 13px; 76} 77 78QRadioButton::indicator::unchecked { 79 image: url(:/images/radiobutton_unchecked.png); 80} 81 82QRadioButton::indicator:unchecked:hover { 83 image: url(:/images/radiobutton_unchecked_hover.png); 84} 85 86QRadioButton::indicator:unchecked:pressed { 87 image: url(:/images/radiobutton_unchecked_pressed.png); 88} 89 90QRadioButton::indicator::checked { 91 image: url(:/images/radiobutton_checked.png); 92} 93 94QRadioButton::indicator:checked:hover { 95 image: url(:/images/radiobutton_checked_hover.png); 96} 97 98QRadioButton::indicator:checked:pressed { 99 image: url(:/images/radiobutton_checked_pressed.png); 100} 101 102/* Customize arrows. */ 103 104*::down-arrow, *::menu-indicator { 105 image: url(:/images/down_arrow.png); 106 width: 7px; 107 height: 7px; 108} 109 110*::down-arrow:disabled, *::down-arrow:off { 111 image: url(:/images/down_arrow_disabled.png); 112} 113 114*::up-arrow { 115 image: url(:/images/up_arrow.png); 116 width: 7px; 117 height: 7px; 118} 119 120*::up-arrow:disabled, *::up-arrow:off { 121 image: url(:/images/up_arrow_disabled.png); 122} 123 124/* Customize push buttons and comboboxes. Our read-only combobox 125 is very similar to a push button, so they share the same border image. */ 126 127QPushButton { 128 min-width: 4em; 129} 130 131QPushButton, QComboBox[editable="false"], 132QComboBox[editable="true"]::drop-down { 133 border-image: url(:/images/pushbutton.png) 5; 134 border-width: 5; 135} 136 137QPushButton:hover, QComboBox[editable="false"]:hover, 138QComboBox[editable="true"]::drop-down:hover, QMenuBar::item:hover { 139 border-image: url(:/images/pushbutton_hover.png) 5; 140 border-width: 5; 141} 142 143QPushButton:pressed, QComboBox[editable="false"]:on, 144QComboBox[editable="true"]::drop-down:on, QMenuBar::item:on { 145 border-image: url(:/images/pushbutton_pressed.png) 5; 146 border-width: 5; 147} 148 149/* Customize read-only comboboxes. */ 150 151QComboBox[editable="false"] { 152 padding-left: 3px; 153 padding-right: 20px; /* space for the arrow */ 154} 155 156QComboBox[editable="false"]::drop-down { 157 subcontrol-origin: padding; 158 subcontrol-position: top right; 159 width: 15px; 160 border-left-style: solid; 161 border-left-color: darkgray; 162 border-left-width: 1px; 163} 164 165QComboBox[editable="false"]::down-arrow { 166 subcontrol-origin: content; 167 subcontrol-position: center; 168 position: relative; 169 left: 1px; /* 1 pixel dropdown border */ 170} 171 172/* The combobox arrow is on when the popup is open. */ 173QComboBox[editable="false"]::down-arrow:on { 174 position: relative; 175 top: 1px; 176 left: 2px; 177} 178 179/* Customize editable comboboxes. */ 180 181QComboBox[editable="true"] { 182 padding-right: 16px; 183} 184 185QComboBox[editable="true"]::drop-down { 186 subcontrol-origin: border; 187 subcontrol-position: top right; 188 width: 13px; 189 position: absolute; 190 top: 2px; 191 bottom: 2px; 192 right: 2px; 193} 194 195QComboBox[editable="true"]::drop-down, 196QComboBox[editable="true"]::drop-down:hover, 197QComboBox[editable="true"]::drop-down:on { 198 border-width: 0px; 199 border-left-width: 3px; /* we need only left and center part */ 200} 201 202/* Shift the arrow when it's open. */ 203QComboBox[editable="true"]::down-arrow:on { 204 position: relative; 205 top: 1px; 206 left: 1px; 207} 208 209/* Customize check boxes. */ 210QCheckBox { 211 spacing: 5px; 212} 213 214QCheckBox::indicator { 215 width: 13px; 216 height: 13px; 217} 218 219QCheckBox::indicator:unchecked { 220 image: url(:/images/checkbox_unchecked.png); 221} 222 223QCheckBox::indicator:unchecked:hover { 224 image: url(:/images/checkbox_unchecked_hover.png); 225} 226 227QCheckBox::indicator:unchecked:pressed { 228 image: url(:/images/checkbox_unchecked_pressed.png); 229} 230 231QCheckBox::indicator:checked { 232 image: url(:/images/checkbox_checked.png); 233} 234 235QCheckBox::indicator:checked:hover { 236 image: url(:/images/checkbox_checked_hover.png); 237} 238 239QCheckBox::indicator:checked:pressed { 240 image: url(:/images/checkbox_checked_pressed.png); 241} 242 243/* Customize the size grip. */ 244QSizeGrip { 245 image: url(:/images/sizegrip.png); 246 width: 16px; 247 height: 16px; 248} 249 250/* Customize the menu bar. */ 251QMenuBar { 252 border-image: none; 253 border-style: none; 254 border-width: 1px; 255 border-bottom-style: solid; 256 border-bottom-color: darkslategray; 257 padding: 2px; 258} 259 260/* Customize spin boxes. */ 261 262QSpinBox { 263 padding-right: 15px; 264} 265 266QSpinBox::up-button { 267 subcontrol-origin: border; 268 subcontrol-position: top right; 269 270 width: 16px; /* 16 + 2*1px border-width = 15px padding + 3px parent border */ 271 border-image: url(:/images/spinup.png) 1; 272 border-width: 1px; 273} 274 275QSpinBox::up-button:hover { 276 border-image: url(:/images/spinup_hover.png) 1; 277} 278 279QSpinBox::up-button:pressed { 280 border-image: url(:/images/spinup_pressed.png) 1; 281} 282 283QSpinBox::down-button { 284 subcontrol-origin: border; 285 subcontrol-position: bottom right; 286 287 width: 16px; 288 border-image: url(:/images/spindown.png) 1; 289 border-width: 1px; 290 border-top-width: 0; 291} 292 293QSpinBox::down-button:hover { 294 border-image: url(:/images/spindown_hover.png) 1; 295} 296 297QSpinBox::down-button:pressed { 298 border-image: url(:/images/spindown_pressed.png) 1; 299} 300