Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > [QT4] закрасить ячейку QTableWidget


Автор: devmstr 2.12.2007, 00:01
Как закрасить ячейку QTableWidget или изменить цвет границы одной ячейки?

Смотрел в сторону:
Код

paintEvent

Но как я понял, для того что бы его использовать нужно перегрузить класс таблицы, но это не желательно....

Модератор: отредактировал название темы.

Автор: JackYF 2.12.2007, 00:17
Цитата(devmstr @  2.12.2007,  00:01 Найти цитируемый пост)
Но как я понял, для того что бы его использовать нужно перегрузить класс таблицы, но это не желательно.... 

унаследуйся от QTableWidget и переопредели paintEvent.

Автор: bsa 2.12.2007, 00:33
QTableWidgetItem::setBackground()

Автор: Любитель 2.12.2007, 00:39
Цитата(devmstr @  2.12.2007,  00:01 Найти цитируемый пост)
Как закрасить ячейку

Код

table->item(row, column)->setBackground(Qt::red);


Цитата(devmstr @  2.12.2007,  00:01 Найти цитируемый пост)
цвет границы одной ячейки

В чистом виде - только своя прорисовка.

Автор: devmstr 2.12.2007, 16:12
bsa
Любитель
Большое спасибо, мне именно это и нужно было, так как наследовать класс было не удобно!

Автор: Acer 7.8.2008, 09:36
Привет, тема вроде подходит для моего вопроса... Проблема в том, что у меня не изменяется цвет ячеек.. вот код:
Код

void RDataTable::updateRow(int cur, int t){
    /** Set text to 5th item **/
    this->item( cur, 4 )->setText( trUtf8( this->getTypeStr( t ) ) );

    /** generate tooltip text **/
    std::string s;
    s = "";
    s = "<html><h3>";
    s += this->getTypeStr( t );
    s += "</h3></html>";

    /** Set tooltip text **/
    this->item( cur, 4 )->setToolTip( trUtf8( s.c_str() ) );

    /** Update background color **/
    for ( int i = 0; i < RDT_COLS; i++ ){
        this->item( cur, i )->setBackgroundColor( this->getColor( cur ) );
    }

    /** Choose next **/
    this->selectRowNext();
}

Текст устанавливается, тултип устанавливается, а вот бэкграунд нет... В чем ошибка?

Автор: JackYF 7.8.2008, 12:53
Цитата(Acer @  7.8.2008,  08:36 Найти цитируемый пост)
RDT_COLS

Это что?

Автор: Acer 7.8.2008, 13:29
Цитата(JackYF @ 7.8.2008,  12:53)
Цитата(Acer @  7.8.2008,  08:36 Найти цитируемый пост)
RDT_COLS

Это что?

колчиество столбцов

Автор: Любитель 7.8.2008, 14:33
1. Проверь, что возвращает getColor(cur)
2. Замени setBackgroundColor на setBackground(QBrush(color)). Первый метод объвлен как устаревший.

Автор: Acer 8.8.2008, 09:41
Нашел ошибку. Спасибо

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)