【翻译 + 整理】Qt样式表详解(9):子控件

1、::add-line,滚动条下按钮(垂直)/右按钮(水平)。例:

QScrollBar::add-line:vertical {
	height:50px;
	width:50px;
	subcontrol-position: bottom; 
	subcontrol-origin: margin;
}

 

QScrollBar::add-line:horizontal {
	height:50px;
	width:50px;
	subcontrol-position: right;
	subcontrol-origin: margin;
}

2、::add-page,滑块和add-line之间的部分。

3、::branchQTreeView的前面部分:

例:

QTreeView::branch {
         background:red;
}

4、::chunkQProgressBar的大块:

5、::close-buttonQDockWidget的关闭按钮或QTabBar的选项卡上的关闭按钮,QTabWidget使用的前提是设置setTabsClosable(true)。例:

 QTabBar::close-button {
     image: url(:/D:/a.png);
     subcontrol-position: left;
 }

6、::cornerQAbstractScrollArea两个滚动条之间的夹角区域:

例:

QScrollArea::corner {
     image: url(:/D:/a.png);
}

 7、::down-arrow,下箭头。

  • QComboBox、QSpinBox、QDoubleSpinBox、QTimeEdit、QDateEdit、QDateTimeEdit:
     QComboBox::down-arrow {
         image: url(:/D:/a.png);
     }
    
     QSpinBox::down-arrow {
         image: url(:/D:/a.png);
     }

  • QHeaderView的表头排序箭头的下箭头(设置setSortingEnabled(true)开启表头排序)。例:

     QHeaderView::down-arrow {
         image: url(:/D:/a.png);
     }

  • QScrollBar垂直滚动条的下箭头,在add-line上。例:

      QScrollBar::add-line:vertical {
          border: 2px solid grey;
          background: #32CC99;
          height: 20px;
          subcontrol-position: bottom;
          subcontrol-origin: margin;
      }
    
      QScrollBar::down-arrow:vertical {
          border: 2px solid grey;
          width: 13px;
          height: 13px;
          background: white;
      }

  • QToolButton设置箭头类型中的下箭头:
 QToolButton::down-arrow {
     image: url(:/D:/a.png);
 }

8、::down-buttonQSpinBox的下按钮。例:

QSpinBox::down-button{
	background:red;
}

 

9、::drop-downQComboBox的下拉箭头部分。例:

QComboBox::drop-down {
      background: red;
}

 

10、::float-buttonQDockWidget的浮动按钮(点击此按钮QDockWidget会成为浮动的窗口)。例:

QDockWidget::float-button{
    background: red;
}

11、::grooveQSlider的槽部分。

例:

QSlider::groove:horizontal{ 
	background: green; 
	height: 20px; 
	border-radius: 3px; 
}

QSlider::sub-page:horizontal {
	height: 8px; 
	border-radius: 3px;
	background: #ec62a1;
}

QSlider::handle:horizontal {
	width: 13px; 
	margin-top: -3px; 
	margin-bottom: -3px; 
	border-radius: 6px;
	background: #ec62a1;
}

12、::indicator,指示器,指示选中状态。

  • QAbstractItemView
itemChild->setCheckable(true);//QStandardItem * itemChild
QTreeView::indicator:unchecked { 
	background-color: #d7d6d5
}

  • QCheckBox、QRadioButton
QCheckBox::indicator:unchecked { 
	background-color: red;
}

QRadioButton::indicator:unchecked { 
	background-color: red;
    border-radius:8px;
}

  • QMenu
QMenu::item
{
    padding: 2px 20px 10px 10px;
}

QMenu::indicator
{
    width:32px;
    height:32px;
}

QMenu::indicator:unchecked
{
    border-image: url(:/image/uncheck.png);
}

QMenu::indicator:checked
{
    border-image: url(:/image/check.png);
}

  • QGroupBox,先设置可选中:setCheckable(true)。
QGroupBox::indicator:unchecked { 
	background-color: red;
}

13、::handle,滑块。QScrollBar、QSlider、QSplitter的滑块。例:

    QSplitter *splitter = new QSplitter(this);
    QListView *listview = new QListView;
    QTreeView *treeview = new QTreeView;
    QTextEdit *textedit = new QTextEdit;
    splitter->addWidget(listview);
    splitter->addWidget(treeview);
    splitter->addWidget(textedit);
    splitter->setStyleSheet("QSplitter::handle{background-color: red;}"
                            "QSplitter::handle:hover{background-color: rgb(200, 100, 100);}"
                            "QSplitter::handle:pressed{background-color: rgb(70, 70, 70);}");
    splitter->handle(1)->setAttribute(Qt::WA_Hover, true);//加上hover才能起作用
    splitter->handle(2)->setAttribute(Qt::WA_Hover, true);
    splitter->setHandleWidth(20);

14、::icon

15、::item,一个项目。

  • QAbstractItemView
QTableView::item:selected, QListView::item:selected, QTreeView::item:selected {
	color: #000000;
	background: #fcf1f5; 
}

QTableView::item:hover, QListView::item:hover, QTreeView::item:hover {
	color: #000000;
	background: #fcf1f4;
}

QTableView::item, QListView::item, QTreeView::item {
	padding: 5px; 
	margin: 0px; 
}

  • QMenu
QMenu{
    background-color:#ffffff;
    font-size:18px;
}

QMenu::item{
    padding: 2px 10px 10px 10px;
}

QMenu::item:selected{
    color: #FFFFFF;
    background: #20c9b3;
}

一个菜单项即一个item。 

  • QMenuBar

一个菜单即一个item。

  •  QStatusBar

可以向QStatusBar添加小部件,一个小部件即一个item。例:

    QStatusBar * statuBar = new QStatusBar();
    statuBar->addWidget(new QPushButton("xxx1"));
    statuBar->addWidget(new QPushButton("xxx2"));

    statuBar->setStyleSheet("QStatusBar{background:green;}"
                            "QStatusBar::item {border: 10px solid red;border-radius: 3px;}");

16、::left-arrow。

  • QScrollBar(水平方向)的左箭头,与::down-arrow类似。
  • QToolButton设置箭头类型中的左箭头:
 QToolButton::left-arrow {
     image: url(:/D:/a.png);
 }

17、::left-corner,

18、::menu-arrowQToolButton的菜单的箭头:

使用的前提是QToolButton设置了菜单和菜单弹出模式。例:

    QMenu * menu = new QMenu;
    menu->addAction("xxxx1");
    menu->addAction("xxxx2");
    ui->toolButton->setMenu(menu);

    ui->toolButton->setPopupMode(QToolButton::ToolButtonPopupMode::MenuButtonPopup);
 QToolButton{
    border: 2px solid #8f8f91;
    border-radius: 6px;
    background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
                                      stop: 0 #f6f7fa, stop: 1 #dadbde);
 }

 QToolButton::menu-arrow{
    background-color:red;
 }

  QToolButton::menu-arrow:open{
    background-color:green;
}

19、::menu-buttonQToolButton的菜单按钮,使用前提同上

例:

  QToolButton {
      border: 2px solid #8f8f91;
      border-radius: 6px;
      background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
                                        stop: 0 #f6f7fa, stop: 1 #dadbde);
  }

  QToolButton::menu-button {
	  background-color:blue;
  }

20、::menu-indicatorQPushButton的菜单指示器。使用前提是QPushButton设置了菜单。例:

    QMenu * menu = new QMenu(ui->pushButton);
    menu->addAction("xxxx1")->setCheckable(true);
    menu->addAction("xxxx2")->setCheckable(true);

    ui->pushButton->setMenu(menu);
QPushButton QMenu::item
{
    padding: 20px 20px 20px 60px;
}

QPushButton QMenu::indicator
{
    width:32px;
    height:32px;
}

QPushButton QMenu::indicator:unchecked
{
    border-image: url(:/D:/uncheck.png);
}

QPushButton QMenu::indicator:checked
{
    border-image: url(:/D:/check.png);
}

21、::right-arrow。

  • QScrollBar的右箭头(水平),与::down-arrow类似。
  • QToolButton设置右箭头类型的右箭头
 QToolButton::right-arrow {
     image: url(:/D:/a.png);
 }

  • QMenu有子菜单时打开子菜单的箭头。例:
    QMenu * menu = new QMenu(ui->pushButton);
    menu->addAction("xxxx1")->setCheckable(true);
    menu->addAction("xxxx2")->setCheckable(true);
    QMenu * menu2 = new QMenu(menu);
    menu2->addAction("xxxxx333");
    menu->addMenu(menu2);

    ui->pushButton->setMenu(menu);
QPushButton QMenu::right-arrow{
    background-color: red;
}

22、::paneQTabWidget的边框部分。例:

QTabWidget::pane { 
    border: 7px solid red;
	border-radius:7px;
}

23、::right-corner

24、::scrollerQTabBar上标签太多时出现的滚动按钮。成对出现。

25、::sectionQHeaderView的表头部分。例:

 QHeaderView::section {
     background-color: green;
     color: white;
     padding-left: 4px;
     border: 1px solid red;
 }

 QHeaderView::section:checked
 {
     background-color: red;
 }

 

26、::separator,菜单的分隔符。

27、::sub-line,滚动条上按钮(垂直)/左按钮(水平),和::add-line对应。

28、::sub-page,滑块和sub-line之间的部分,和::add-page对应。

29、::tabQTabBar、QToolBox的选项卡。

30、::tab-bar, 用于控制QTabBar在QTabWidget中的位置。例1:

 QTabWidget::tab-bar {
     alignment: center;
 }

例2:

 QTabWidget::tab-bar {
     left: 25px;
 }

31、::tear, QTabBar标签过多且当前标签不是第一个时就会出现。例:

QTabBar::tear {
     image: url(:/D:/a.png);
 }

32、::tearoff,QMenu的可卸下指示器,点击这个子控件可以让菜单脱落成为一个小窗口,使用的前提是设置:setTearOffEnabled(true)。例:

    QMenu * menu = new QMenu(ui->pushButton);

    menu->addAction("xxxx1");
    menu->addAction("xxxx2");
    menu->setTearOffEnabled(true);
    ui->pushButton->setMenu(menu);
QPushButton QMenu::item{
    padding: 20px 20px 20px 20px;
}

QPushButton QMenu::tearoff{
	background:red;
}

33、::text

34、::titleQGroupBoxQDockWidget的标题,例1:

QGroupBox::title{
	background:red;
}

例2:

QDockWidget::title{
	background:red;
}

35、::up-arrow,上箭头,与::down-arrow对应相似。

36、::up-button,上按钮,与::down-button对应相似。

  • 8
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值