gpt4 book ai didi

c++ - 背景更改时带有非 native 滚动条的 QTreeWidget

转载 作者:行者123 更新时间:2023-11-30 03:20:40 26 4
gpt4 key购买 nike

我需要一个具有透明背景的 QTreeWidget,以便它具有与 native 浅灰色窗口背景相同的颜色。通过将背景设置为透明可以很好地工作。

问题是,如果我这样做,滚动将变得非本地外观。 QTreeWidget 的默认背景是“白色”,如果我不更改它,滚动条看起来确实是原生的。但是,如果我将背景更改为“透明”,滚动条就会失去其原始外观。

为了演示这一点,我将两个 QTreeWidget 并排放置,一个默认的白色背景显示 native 滚动条,另一个背景更改为透明,显示非 native 滚动条:screenshot

enter image description here

代码如下:

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;");
}

如何让透明背景保持原生滚动条?

最佳答案

我终于找到了解决方案。我需要将背景颜色的定义限制在 QTreeWidget 中:

tree2->setStyleSheet("QTreeWidget {background-color: transparent;}");

关于c++ - 背景更改时带有非 native 滚动条的 QTreeWidget,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52706135/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com