【问题标题】:How to set QTableWidget cell background color when table unfocused?表格未聚焦时如何设置QTableWidget单元格背景颜色?
【发布时间】:2014-09-11 08:00:19
【问题描述】:

我有一个基于 Qt 的应用程序,其中包含多个 QTableWidget 表。 我的使用场景:

  1. 我单击第一个表格中的一个单元格;焦点移动到点击的单元格;
  2. 我单击第二个表格中的一个单元格;焦点移至单击的单元格/表格。

现在我想设置第一个表格中的单元格的背景颜色,现在没有焦点,我该怎么做?

Qt 版本=4.8.5

【问题讨论】:

    标签: qt qtablewidget


    【解决方案1】:

    使用eventFilter 或子类QTableWidget。如果您专注于某些tableWidget - 重置stylesheet,如果您专注于 - 应用特殊的stylesheet(代码中的示例)

    例如:

    {
    //somewhere in constructor 
    string = ui->tableWidget_2->styleSheet();//save normal stylesheet
    }
    
    
    bool MainWindow::eventFilter(QObject *obj, QEvent *event)
    {
        if(obj == ui->tableWidget_2 && event->type()==QEvent::FocusIn)
            ui->tableWidget_2->setStyleSheet(string);//or set just " "
        if(obj == ui->tableWidget_2 && event->type()==QEvent::FocusOut)
            ui->tableWidget_2->setStyleSheet("QTableWidget::item{background-color: red;}");
    
    return QObject::eventFilter(obj, event);
    }
    

    在标题中:

    protected:
    
         bool eventFilter(QObject *obj, QEvent *event);
    
    private:
         QString string;
    

    如您所见,使用stylesheet,您可以自定义单元格,因此您可以做的不仅仅是更改背景颜色,当然,如果您愿意的话。

    【讨论】:

      猜你喜欢
      • 2012-06-06
      • 2019-10-21
      • 1970-01-01
      • 2010-11-21
      • 2015-06-02
      • 2011-09-18
      • 1970-01-01
      • 1970-01-01
      • 2016-01-10
      相关资源
      最近更新 更多