Высмотрел в
http://qt.osdn.org.ua/look-qa.htmlсовет, как нарисовать на заголовках столбцах что либо:
bool MyTable::eventFilter(QObject *targetObj, QEvent *event)
{
if (targetObj == (QObject *)horizontalHeader() &&
event->type() == QEvent::Paint)
{
QPainter painter(horizontalHeader());
// код отрисовки
paint.setPen( Qt::blue );
paint.drawLine( 0,0, 5,5);
return true;
} else
return QTable::eventFilter(targetObj, event);
}
Но этот код не работает, потому что условие в if ниразу не выполняется.
Пример работающего кода
bool MyTable::eventFilter(QObject *targetObj, QEvent *event)
{
QPainter paint(horizontalHeader());
// код отрисовки
paint.setPen( Qt::blue );
paint.drawLine( 0,0, 5,5);
return QTable::eventFilter(targetObj, event);
}
Вопрос - что неправильно в условии в первом примере?
Может все оставить как есть во втором примере?
p.s. MyTable - простое наследование от QTable - без каких либо хитростей. Конструкторы просто дублируют базовые.
class MyTable : public QTable
{
public:
MyTable(QWidget *parent = 0, const char *name = 0);
MyTable( int numRows, int numCols, QWidget * parent = 0, const char * name = 0 );
bool MyTable::eventFilter(QObject *targetObj, QEvent *event);
};