gpt4 book ai didi

c++ - 如何从 Qt 上的标题(水平/垂直)QTableWidget 更改背景颜色?

转载 作者:行者123 更新时间:2023-11-28 02:21:46 40 4
gpt4 key购买 nike

我想知道如何从 Qt 上的对象 QTableWidget 更改标题(水平/垂直)的背景颜色。

我已经知道如何一起更改所有 header ,使用:

ui->tableWidget->setStyleSheet("QHeaderView::section {background-color:red}");

但我需要单独更改项目。显然,如果这是可能的。

最佳答案

至少有两种方法可以解决这个问题。非常简单:

只需使用 setHeaderData() 并为特定部分设置特定颜色。

QTableView *tview = new QTableView;

QStandardItemModel *md = new QStandardItemModel(4, 4);
for (int row = 0; row < 4; ++row) {
for (int column = 0; column < 4; ++column) {
QStandardItem *item = new QStandardItem(QString("row %0, column %1").arg(row).arg(column));
md->setItem(row, column, item);
}
}
tview->setModel(md);
tview->model()->setHeaderData(0,Qt::Horizontal,QBrush(QColor("red")),Qt::BackgroundRole);
tview->show();

但不幸的是它不能在某些系统上运行... Qt 使用平台风格。例如,我的 Windows 不允许更改标题的颜色。所以这段代码在我的机器上不起作用。幸运的是,通过改变全局样式可以很容易地解决这个问题。所以下一个代码有效:

//... same code ...
tview->show();
QApplication::setStyle(QStyleFactory::create("Fusion"));

如果您不想更改样式,那么您应该创建自己的HeaderView。可能类似于 here .

关于c++ - 如何从 Qt 上的标题(水平/垂直)QTableWidget 更改背景颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32147213/

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