Мне нужен QTreeWidget с прозрачным фоном, чтобы он имел тот же цвет, что и родной светло-серый фон окна.Это прекрасно работает, установив прозрачный фон.
Проблема в том, что если я это сделаю, свиток станет не родным.Фон QTreeWidget по умолчанию "белый", и если я не изменю его, полоса прокрутки будет выглядеть как родная.Однако, если я изменю фон на «прозрачный», полоса прокрутки теряет свой собственный вид.
Чтобы продемонстрировать это, я поместил два QTreeWidget рядом друг с другом, один с белым фоном по умолчанию, показывающим собственную полосу прокрутки, иодин с фоном, измененным на прозрачный, показывающий несобственную полосу прокрутки: снимок экрана
Вот код:
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
QHBoxLayout* layout = new QHBoxLayout(this);
ui->centralWidget->setLayout(layout);
QTreeWidget* tree1 = new QTreeWidget();
QTreeWidget* tree2 = new QTreeWidget();
layout->addWidget(tree1);
layout->addWidget(tree2);
// add ten items to each tree widget
for(int i=0; i<10; i++){
QString item_text = "item " + QString::number(i);
QTreeWidgetItem* item1 = new QTreeWidgetItem();
item1->setText(0, item_text);
tree1->addTopLevelItem(item1);
QTreeWidgetItem* item2 = new QTreeWidgetItem();
item2->setText(0, item_text);
tree2->addTopLevelItem(item2);
}
// change the background color of tree2 to the window color
// this leads to a non native scroll bar for tree2
tree2->setStyleSheet("background-color: transparent;");
}
Как сделать так, чтобы прозрачный фон сохранял собственную полосу прокрутки?