当表格未聚焦时,如何设置QTableWidget单元格背景色?
我有一个基于Qt的应用程序,它有多个QTableWidget表。 我的使用场景:当表格未聚焦时,如何设置QTableWidget单元格背景色?,qt,qtablewidget,Qt,Qtablewidget,我有一个基于Qt的应用程序,它有多个QTableWidget表。 我的使用场景: 我单击第一个表中的单元格;焦点移动到单击的单元格 我单击第二个表中的单元格;焦点移动到单击的单元格/表格 现在,我想设置第一个表中的单元格的背景色,这是现在未聚焦的,我如何才能做到这一点 Qt版本=4.8.5使用eventFilter或子类QTableWidget。如果将焦点放在某个表格小部件上-重置样式表,如果将焦点放在外-应用特殊的样式表(代码中的示例) 例如: { //somewhere in constru
Qt版本=4.8.5使用
eventFilter
或子类QTableWidget
。如果将焦点放在某个表格小部件上
-重置样式表
,如果将焦点放在外-应用特殊的样式表
(代码中的示例)
例如:
{
//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;
正如您所看到的,通过样式表
您可以自定义单元格,因此您可以做的不仅仅是更改背景颜色,当然,如果您需要的话