如何更改PyQt5中的滚动条箭头键?

2024-05-19 07:06:06 发布

您现在位置:Python中文网/ 问答频道 /正文

使用以下代码设置垂直Qscrollbar的样式。其外观/结果如所附照片所示。我想将上下箭头从正方形改为顶部的实际上箭头(三角形),底部的下箭头(倒三角形)。如何获得它

enter image description here

   QScrollBar:vertical {
   background: rgb(220,220,220);
   width: 15px;
   margin: 22px 0 22px 0; }

   QScrollBar::handle:vertical {
   background: rgb(169,169,169);
   min-height: 10px; }
   
   QScrollBar::add-line:vertical {
   border: 0px solid grey;
   background: rgb(220,220,220);
   height: 20px;
   subcontrol-position: bottom;
   subcontrol-origin: margin; }

   QScrollBar::sub-line:vertical {
   border: 0px solid red;
   background: rgb(220,220,220);
   height: 20px;
   subcontrol-position: top;
   subcontrol-origin: margin;}
   
   QScrollBar::up-arrow:vertical, QScrollBar::down-arrow:vertical {
   border: 0px solid red;
   display: ᐃ
   width: 5px;
   height: 5px;
   background:black;}

Tags: marginlinepositionrgbredorigin箭头width
2条回答

除了手动为箭头提供图像外,您还可以尝试不同的窗口样式。如果在应用程序中使用Designer,则可以从表单…预览中预览样式->;风格在文档中很难找到,但是如果你look here,有一些样式

在代码中,您可以在应用程序级别执行此操作:

if __name__ == '__main__':
    app = QApplication(sys.argv)
    app.setStyle(QStyleFactory.create('fusion'))

您必须使用图像来获取箭头图标

QScrollBar::right-arrow,
QScrollBar::left-arrow,
QScrollBar::up-arrow,
QScrollBar::down-arrow {
    width: 12px;
    height: 12px;
    background: black;
}

QScrollBar::right-arrow {
    image: url("://icons/theme-dark/caret_right.svg");
}
QScrollBar::left-arrow {
    image: url("://icons/theme-dark/caret_left.svg");
}
QScrollBar::up-arrow {
    image: url("://icons/theme-dark/caret_up.svg");
}
QScrollBar::down-arrow {
    image: url("://icons/theme-dark/caret_down.svg");
}

图像可以是Qt支持的任何格式(png、jpg、gif等)。上面的URL语法使用嵌入在包含的Qt资源文件中的图像(但它们也可以是file://URL,或实际的网络请求(http/s等))

您不需要:vertical:horizontal限定符(元素已经是“定向的”)。另外,您使用display的方式是不正确的,而且Qt无论如何也不支持它(我想这也是您的意思)

相关问题 更多 >

    热门问题