crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в Критическая ошибка при выводе текста в делегате
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
Теги
Выровнять по центру
Ссылка на тему
Ссылка на сообщение
Скрытый текст
Сокращение
Код с подсветкой
Offtopic
 
Удалить форматирование
Спец. элементы
Шрифт
Размер
 
Цвет шрифта
 
Отменить ввод
Вернуть ввод
Полужирный
Курсив
Подчеркнутый
 
 
Смайлики
Вставить изображение
Вставить адрес электронной почты
Цитата
Код
Раскрывающийся текст
 
Увеличить отступ
По левому краю
По центру
По правому краю
Вставить список
Вставить список

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
AntonH851 Дата 5.3.2010, 9:08
 
Цитата(Rocky @ 4.3.2010, 0:33) *
Ну я не пробовал ) Во всяком случае если например QImage::pixel() указывать совсем неверные координаты, то программа сначала зависает, выводя в output кучу всего, а может и грохнуться вообще ) Один раз вроде было такое, если я ничего не путаю)

Мда, чето с русским совсем беда у меня ) Чем больше сижу за компом, тем все хуже(


Эх, ошибки так и не нашел к сожалению...
пришлось написать по другому:

    int column_width(23);
    column_width += QFontMetrics(myOption.font).width(post + "/", -1);
    QRect rect = myOption.rect;
    rect.setY(rect.y() + 2);
    rect.setX(rect.x() + 16);
    drawDisplay(painter, myOption, rect, post + "/");

    rect.setX(rect.x() + QFontMetrics(myOption.font).width(post + "/", -1));
    myOption.font.setBold(true);
    drawDisplay(painter, myOption, rect, date + "/");

    rect.setX(rect.x() + QFontMetrics(myOption.font).width(date, -1));
    column_width += QFontMetrics(myOption.font).width(date, -1);
    myOption.font.setBold(false);
    rect.setX(rect.x() + QFontMetrics(myOption.font).width("/", -1));
    column_width += QFontMetrics(myOption.font).width("/" + num, -1);
    if (column_width != view->columnWidth(gtd_ngnum))
    {
        view->setColumnWidth(gtd_ngnum, column_width);
    }
    drawDisplay(painter, myOption, rect, num);


Rocky Дата 4.3.2010, 0:33
  Ну я не пробовал ) Во всяком случае если например QImage::pixel() указывать совсем неверные координаты, то программа сначала зависает, выводя в output кучу всего, а может и грохнуться вообще ) Один раз вроде было такое, если я ничего не путаю)

Мда, чето с русским совсем беда у меня ) Чем больше сижу за компом, тем все хуже(
AntonH851 Дата 4.3.2010, 0:12
 
Цитата(Rocky @ 3.3.2010, 23:26) *
Цитата(AntonH851 @ 3.3.2010, 23:16) *
Да пробовал...
не получилось найти....

Ну такого не бывает. Проверь все ректы на валидность. Просто я смотрю там разницы стоят иногда.. Они точно не отрицательные? К тому же что мешает последовательно комментировать строки, компилить и пробовать запустить? Сразу будет ясно после комменитирования какой строки вылета не будет. Значит в ней и ошибка.


Попробую еще завтра поискать...
А что, если рект неверный такое может быть?
Rocky Дата 3.3.2010, 23:26
 
Цитата(AntonH851 @ 3.3.2010, 23:16) *
Да пробовал...
не получилось найти....

Ну такого не бывает. Проверь все ректы на валидность. Просто я смотрю там разницы стоят иногда.. Они точно не отрицательные? К тому же что мешает последовательно комментировать строки, компилить и пробовать запустить? Сразу будет ясно после комменитирования какой строки вылета не будет. Значит в ней и ошибка.
AntonH851 Дата 3.3.2010, 23:16
 
Цитата(ViGOur @ 3.3.2010, 20:57) *
А если подебажить, на какой именно строке вылетает?


Да пробовал...
не получилось найти....

А как можно настроить цвет текста при выводе методом drawDisplay(painter, myOption, myOption.rect, display_text);
ViGOur Дата 3.3.2010, 20:57
  А если подебажить, на какой именно строке вылетает?
AntonH851 Дата 3.3.2010, 17:04
  Добрый вечер.

Столкнулся с такой проблемой.
в слоте paint вывожу текст в делегате:
    QPainter pt;
    QRect rect = myOption.rect;
    int otstup(20);
    rect.setX(myOption.rect.x() + otstup);
    rect.setWidth(text_width - otstup);
    pt.begin(painter->device());
    QFont font = painter->font();
    font.setBold(false);
    pt.setFont(font);
    const QString p(post + "/");
    pt.drawText(rect.x(), rect.y() + 2, rect.width(), rect.height(), 0, p, &rect);
    otstup += QFontMetrics(pt.font()).width(post + "/", -1);
    rect.setX(myOption.rect.x() + otstup);
    rect.setWidth(text_width - otstup);
    font.setBold(true);
    pt.setFont(font);
    const QString d(date + "/");
    pt.drawText(rect.x(), rect.y(), rect.width(), rect.height(), 0, d, &rect);
    otstup += QFontMetrics(pt.font()).width(date, -1);
    font.setBold(false);
    pt.setFont(font);
    otstup += QFontMetrics(pt.font()).width("/", -1);
    rect.setX(myOption.rect.x() + otstup);
    rect.setWidth(text_width - otstup);
    const QString n(num);
    pt.drawText(rect.x(), rect.y(), rect.width(), rect.height(), 0, n, &rect);
    pt.end();


когда запускаю программу, то либо при прокрутке, либо при нажатии на ячейку где рисуется делегат вылетает критическая ошибка Windows и приложение завершается....

вроде все правильно написал....

если просто вывожу текст
drawDisplay(painter, myOption, myOption.rect, display_text);

то все нармально....

если кто сталкивался с такой проблемой подскажите пожалуйста, как ее можно решить
Просмотр темы полностью (откроется в новом окне)
RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 5.7.2025, 0:10