如何使 QListView::item:first 和 QListView::item:last 带有圆角

How to make QListView::item:first and QListView::item:last with round corners

提问人:Mika 提问时间:8/10/2023 最后编辑:eyllanescMika 更新时间:8/11/2023 访问量:52

问:

我试图使 QMenu 和 QComboBox 项的角变圆。我有一个结果。但是我不能强迫只有第一个和最后一个项目变得圆润。 因此,它应该看起来像这样:

.

但是使用下面的代码,我只能舍入所有项目。 我试着打电话,但没有帮助。QListView::item:firstQListView::item:last

css
/* ======= QMenu ======= */
QMenu {
    background-color: #FFFFFF;
    border: 2px solid #CCCCCC;
    border-radius: 7px;
    padding: 0px;
}
QMenu::item {
    padding: 5px;
    border-radius: 4px;
}
QMenu::item:selected {
    background-color: #D3E3ED;
    color: #3B3B3B;
}



/* ======= QComboBox ======= */

QComboBox {
    combobox-popup: 0;
    border: 2px solid #CCCCCC;
    border-radius: 7px;
    min-width: 6em;
    padding: 7px;
}
QComboBox:on{
    border-bottom-left-radius: 0px; 
    border-bottom-right-radius: 0px;    
    background-color: #D3E3ED;

}
QComboBox::drop-down{
    border: 0px;
}
QComboBox::down-arrow {
    image: url(:/icons/arrow_down.svg);
    width: 10px;
    height: 10px;
    margin-right: 10px;
}
QComboBox::down-arrow:on {
    image: url(:/icons/arrow_up.svg);
}
QComboBox QListView{
    top: 2px;   
    border: 2px solid #CCCCCC;
    border-bottom-left-radius: 7px; 
    border-bottom-right-radius: 7px;    
    background: #FFFFFF;
    padding:0px;
}
QListView::item:hover{
    background: #D3E3ED;
    color: #3B3B3B
}
QListView::item{
    background: transparent;
    color: #3B3B3B;
    padding: 5px;
    outline: 0;
    border-radius: 4px;
}
QListView{
    outline: 0;
}

是否可以使用清晰的css来制作它?

蟒蛇 python-3.x qtstylesheets pyside6 pyqt6

评论

0赞 musicamante 8/11/2023
不,它不是:根据 QSS 参考文档,QMenu 或抽象项目视图也不支持这些伪状态。对于 QMenu,您需要使用 QProxyStyle(但这样您将无法再使用样式表),对于 QComboBox,您必须为视图使用自定义委托。

答: 暂无答案