1
我有一個基於Qt的應用程序和多個QTableWidget表。 我的使用場景:如何設置QTableWidget單元格背景顏色時表不聚焦?
- 我點擊第一個表格中的一個單元格;焦點移動到點擊單元格;
- 我點擊第二個表格中的一個單元格;焦點移動到單擊的單元格/表格中。
現在我想設置第一個表格中的單元格的背景顏色,它現在沒有重點,我該怎麼做?
版本的Qt 4.8.5 =
我有一個基於Qt的應用程序和多個QTableWidget表。 我的使用場景:如何設置QTableWidget單元格背景顏色時表不聚焦?
現在我想設置第一個表格中的單元格的背景顏色,它現在沒有重點,我該怎麼做?
版本的Qt 4.8.5 =
使用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
你可以定製你的單元格,所以你可以做更多的事情比改變背景顏色,當然,如果你想這樣做。