Здравствуйте, гость ( Вход | Регистрация )
wiz29 | Дата 18.4.2012, 15:32 |
Да наверное так и есть, скачал не ту версию. | |
Steklova Olga | Дата 18.4.2012, 14:43 |
Да, wiz29, теперь заработало, ура-а-а! Благодарю! Только в drawDisplay надо внести изменение, которое Вы раньше уже вносили, а сейчас забыли (видимо, взяли не последний прикрепленный файл из сообщения 9, а предпоследний из сообщения 7):
И правильнее будет написать
|
|
wiz29 | Дата 18.4.2012, 12:56 |
Этот вариант рабочий, если где то будет что то криво, то нужно исправлять функцию делегата, вычисляющую предпочтительные размеры для ячейки. | |
Steklova Olga | Дата 18.4.2012, 11:41 |
wiz29, код тестового примера по прежнему можно взять в Вами прикрепленном файле в 9-ом сообщении этой темы. Надо только внести следующее изменение в код:
|
|
wiz29 | Дата 18.4.2012, 11:25 |
Нужен код тестового проекта, к сожалению у меня его не сохранилось. | |
Steklova Olga | Дата 18.4.2012, 11:06 |
wiz29, извините, пожалуйста, но Ваш код все-таки не всегда срабатывает. Посмотрите, что получается при увеличении ширины окна: |
|
Steklova Olga | Дата 5.4.2012, 18:43 |
Snake174, или Вы не правы, или я не знаю... То, что написано у Вас в коде совсем не подходит. Посмотрите: mymodel1.h
mymodel1.cpp (привожу два варианта метода data)
mainwindow.h
mainwindow.cpp
|
|
Steklova Olga | Дата 5.4.2012, 17:03 |
Благодарю, Вас, wiz29 ! Теперь просмотр поля типа VARCHAR(1000) в QTableView чудно работает ! P.S. внесла дополнение в свое сообщение 8 |
|
wiz29 | Дата 5.4.2012, 15:46 |
что в Вашем примере надо поменять, чтобы при просмотре представления цвет текста в выбранной строке в колонке с делегатом становился (как это принято) белым, а не так, как сейчас (черным) (см. рис)? Модификация. |
|
Steklova Olga | Дата 5.4.2012, 15:07 |
Спасибочки, wiz29, Вы очень умный! При просмотре текст теперь отображается так, как было задумано. Вот только я еще даже не смотрела класс QPainter. Посмотрю. Надо мне хотя-бы книжку Земскова "Qt на примерах" полностью прочитать, а не писать программу интуитивно, бегая по верхам помощи (по классам Qt), книжек, форума и googlе Есть только маленький вопросик сейчас: что в Вашем примере надо поменять, чтобы при просмотре представления цвет текста в выбранной строке в колонке с делегатом становился (как это принято) белым, а не так, как сейчас (черным) (см. рис)? 1. На будущее, если делать представление редактируемым, то недостаточно переопределить только createEditor и drawDisplay так, как сейчас. 2. Сейчас мое представление не редактируемое, поэтому переопределение createEditor в этом варианте я убрала, как совершенно не нужное. 3. Рассказываю дальше, зачем все это надо. У меня в таблице БД сохраняется переписка двух абонентов (их сообщения друг другу в виде простого текста (не html), время посылки сообщения, ID написавшего сообщение абонента). В соотв. с моим алгоритмом, в процессе переписки эту таблицу отображать не надо. После окончания переписки (я знаю, когда это произойдет) надо отобразить таблицу сообщений. Сначала надо отобразить все сообщения. После этого можно будет их сортировать / фильтровать (это я знаю, как сделать). Но вот я думаю, что, так как сообщения могут быть достаточно длинными, хорошо бы было предусмотреть возможность двух вариантов отображения сообщений и переключения между ними с помощью группы кнопок "Сокращенно", "Полностью". Сначала отобразить все сообщения в первом варианте, сокращенно (каждое - в одну строку, с "..."), при нажатии кнопки "Полностью" отобразить все сообщения во втором варианте, полностью, при нажатии кнопки "Сокращенно" вернуться к первому варианту. Мне кажется, это было бы очень удобно. Принимаются предложения, как прикрутить к имеющемуся коду сокращенный вариант. А перерисовку может сократить как-то? Или не стоит об этом беспокоиться? Например, не постоянно пересчитывать, как отобразить текст в процессе изменения размера окна, а сделать это сначала при первом отображении таблицы сообщений, а следующий раз (в случае изменения размера окна) сделать по окончании изменения размера окна, при отпускании мыши. И еще, пока что, открыт вопрос, как корректно сохранять сообщения неизвестной заранее длины в БД Firebird 2.1 и отображать их потом в представлении (там проблемы с русским текстом и, видимо, с драйвером), об этом моя тема тут. Если бы этот вопрос решился, то я вместо работы с сообщениями длиной не более 1000 символов, перешла бы к работе с сообщениями, неограниченными по длине. Так надо по алгоритму. И тогда эта ветка программы была бы доделана. |
|
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 29.3.2024, 9:58 |