Russian Qt Forum
Ноябрь 23, 2024, 13:44 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: вопрос по QTableWidget  (Прочитано 6988 раз)
Alexu007
Гость
« Ответ #15 : Ноябрь 13, 2014, 23:12 »

ну так работай над собой, а не морские бои пиши
А чё морской бой? Не так уж и просто написать. Но сейчас я пишу другую штуковину: поиск наиболее короткого пути. В общем всё работает, но есть одна непонятка в таблице. На первом рисунке всё правильно. Но если в таблице появляется курсор (синий квадратик рис. 2) - то эта ячейка перестаёт перекрашиваться в другие цвета, цифра 17 на рис. 3 должна быть красная, а не чёрная. Код, заполняющий таблицу:

Код
C++ (Qt)
void Widget::fnPrintTable(void)
{
   QString str;
   int x;
 
 
   for(int i = 0; i < ROUMAX; i++)
   {
       for(int j = 0; j < COLMAX; j++)
       {
 
           if (buf[i][j] == suf[i][j]) continue;
 
           suf[i][j] = buf[i][j];
 
           QFont font;
           QColor color;
 
           QTableWidgetItem *item = new QTableWidgetItem();
 
           x = 0;
           if(buf[i][j] > 499) x = 500;
 
           str = QString::number(buf[i][j] - x);
 
           if(buf[i][j] == 0)    str = "";
           if(buf[i][j] == 1000) {str = "X";}
           if(buf[i][j] == 2000) {str = "B";}
           if(buf[i][j] == 3000) {str = "E";}
 
 
           if(buf[i][j] > 999)
           {
               font.setPointSize(12);
               font.setBold(true);
               color.setAlpha(255);
           }
 
           if((buf[i][j] > 499) && (buf[i][j] < 999))
           {
               font.setPointSize(7);
               font.setBold(false);
               color.setRed(255);
           }
 
           if(buf[i][j] < 499)
           {
               font.setPointSize(7);
               font.setBold(false);
               color.setBlue(255);
           }
 
 
           //QTableWidgetItem *item = new QTableWidgetItem();
 
           item->setFont(font);
           item->setForeground(color);
           item->setText(str);
 
           ui->tableWidget->setItem(i, j, item);
        }
   }
}
Записан
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.155 секунд. Запросов: 20.