我正在尝试设计一个带有border-radius的QTreeWidget
。当我为其指定备用行颜色时,问题就出现了。当我不这样做时,它工作正常,并且滚动期间窗口小部件周围的边界半径始终可见。但是,当我使用备用行颜色设置滚动时,在偶数行位于顶部和底部期间,border-radius保持预期,而在奇数编号行中,它们会被遮蔽,具有小部件的外观和感觉没有边界半径。这是灰色行位于顶部和底部时的样子:
滚动一个单位或奇数个单位后,白色的行在末尾,这就是它的样子:
我该如何解决这个问题?在Windows中,由于滚动条的样式不同,右侧将始终由于滚动窗格而使边框半径黯然失色。有没有办法使它的行为与Mac滚动条一样?
我的样式表非常小:
#myTreeWidget {background-color: #C2C7CB; border-radius: 8px; }
我通过委托设置行的宽度:
class ItemDelegate : public QItemDelegate
{
public:
ItemDelegate()
{}
QSize sizeHint ( const QStyleOptionViewItem & option, const QModelIndex & index ) const
{
return QSize(240,25);
}
};
ItemDelegate *delegate = new ItemDelegate();
myTreeWidget = new QTreeWidget(this);
myTreeWidget->setObjectName(QString::fromUtf8("myTreeWidget"));
myTreeWidget->setAttribute(Qt::WA_MacShowFocusRect,false);
myTreeWidget->setGeometry(QRect(20, 10, 240, 375));
myTreeWidget->headerItem()->setHidden(true);
myTreeWidget->setItemDelegate(delegate);
myTreeWidget->setAlternatingRowColors(true);
我刚观察到一件奇怪的事。如果我从小部件中删除背景颜色,边框半径将完全消失。在任何情况下都不可见!