首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QTableWidget,不同单元格的不同选择颜色

QTableWidget,不同单元格的不同选择颜色
EN

Stack Overflow用户
提问于 2019-07-24 16:56:03
回答 1查看 184关注 0票数 2

我想为QTableWidget的不同单元格选择不同的颜色。

要更改整个表格的选择颜色,我可以使用

代码语言:javascript
复制
QTableWidget* table = new QTableWidget;
table->setStyleSheet("QTableWidget::item{selection-background-color:#ff0000;}");

要设置单个单元格的常用背景颜色,可以用以下方式编写:

代码语言:javascript
复制
table->setItem(row, column, new QTableWidgetItem(""));
table->item(row, column)->setBackgroundColor(QColor(255,255,0));

但是我找不到任何关于不同单元格的不同选择颜色的信息。

求求你救命!

EN

回答 1

Stack Overflow用户

发布于 2019-07-24 20:58:27

这对我来说是一个非常有趣的问题,我写了一个例子))我使用委托来解决这个问题

代码语言:javascript
复制
class MyDelegate : public QItemDelegate
{
  public:
    MyDelegate( QObject *parent ) : QItemDelegate( parent ) { }
    void paint( QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index ) const;

};

void MyDelegate::paint( QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index ) const
{
     QItemDelegate::paint( painter, option, index );

     QColor background = QColor(rand()%255, rand()%255, rand()%255);
     QColor background2 = QColor(255, 255, 255);

     painter->fillRect(option.rect, background);

     if (option.state & QStyle::State_Selected) {
            painter->fillRect(option.rect, background);
        } else {
            painter->fillRect(option.rect, background2);
        }

}

它将如何工作?对于每个选择,它将为所选项目生成一种新的颜色

委托集成

代码语言:javascript
复制
int main(int argc, char *argv[])
{

    QApplication a(argc, argv);

    QTableWidget* m_pTableWidget = new QTableWidget();
    m_pTableWidget->setRowCount(10);
    m_pTableWidget->setColumnCount(10);

    for (int i = 0; i < m_pTableWidget->rowCount(); ++i) {
        m_pTableWidget->setItemDelegateForRow(i, new MyDelegate(m_pTableWidget));

    }
    m_pTableWidget->show();

    return a.exec();
}

结果

您可以更改代码并为某些项目指定特定的颜色。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57178983

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档