在设置QComboBox的下拉框样式设置border-radius这个属性后会有黑色边角,是因为QComboBox的view中的窗口属性干扰导致,属于设置样式后还需要设置该窗口的属性才能生效,代码如下:
ui->comboBox_rand->view()->window()->setWindowFlags(Qt::Popup|Qt::FramelessWindowHint|Qt::NoDropShadowWindowHint);
ui->comboBox_rand->view()->window()->setAttribute(Qt::WA_TranslucentBackground);
// 此部分为设置下拉框边缘阴影,根据个人需要设置
QGraphicsDropShadowEffect *shadowRand = new QGraphicsDropShadowEffect(this);
shadowRand->setOffset(0, 0);
shadowRand->setColor(QColor("#444444"));
shadowRand->setBlurRadius(15);
ui->comboBox_rand->view()->setGraphicsEffect(shadowRand);
设置前效果:

设置后效果:

附QcomboBox样式设计:
QComboBox{
border-style:none;
background-color:transparent;
border: 1px solid #D2D2D2;
border-radius: 4px;
}
QComboBox:hover {
border: 1px solid #AAADB6;
}
QComboBox QAbstractItemView {
border: 1px solid #AAADB6;
border-radius: 4px;
outline:none;
color: #5A5A5A;
background-color:#FFFFFF;
}
QComboBox QAbstractItemView::item{
border-bottom:1px solid #F3F3F3;
border-radius: 4px;
font-weight: 400;
color: #5A5A5A;
background-color:#FFFFFF;
}
QComboBox QAbstractItemView::item:selected{
border-radius: 4px;
background-color: #AA0082F1;
}
QComboBox QAbstractItemView::item:hover{
border-radius: 4px;
background-color: #AA0082F1;
}
QComboBox::down-arrow {
width: 14px;
height: 14px;
border-image: url(:/evaluationWidget/image/QuestionTypeOperationWidget/down.png);
}
QComboBox::down-arrow:on{
width: 14px;
height: 14px;
border-image: url(:/evaluationWidget/image/QuestionTypeOperationWidget/up.png);
}
QComboBox::drop-down{
background:transparent;
padding-right:10px;
}
QScrollBar::handle:vertical {
background: #F0F0F0;
border: 0px solid grey;
border-radius: 8px;
width: 6px;
}
QScrollBar::vertical {
border-width: 0px;
border-style: flat;
border-color: #F0F0F0;
width: 6px;
border-radius:3px;
}
QScrollBar::add-line:vertical
{
width: 0px;
}
QScrollBar::sub-line:vertical
{
width: 0px;
}
QScrollBar::add-page:vertical
{
background-color: #FFFFFF;
}
QScrollBar::sub-page:vertical
{
background-color: #FFFFFF;
}