Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Масштабирование rich - текста а-ля Word в Qt

14K
09 января 2008 года
andrey_hello2007
50 / / 30.05.2007
Здравствуйте. Появилась проблема, поиск не помог.
Библиотека Qt 3.3.4
Написал классы для работы со страницами документа, браузер наследует QScrollView, класс страницы размещаемой в браузере - QTextBrowser.

На главной форме размещается QComboBox по типу как в Word 500%, 200%, 100, 50 и т. д. Страницы размеры изменяют (resize), на ScrollView перераспределяются, а вот как масштабировать содержимое (html) - не представляю. Методы zoomIn() и zoomOut() для масштабирования хотябы с шагом 10% не подходят - все происходит довольно коряво.

Если не найду решение придется подгонять величину масштаба под результат этих функций и написать ближайшее целое, но при таком решении о нормальном масштабировании придется забыть.

Да и еще какойто косяк у методов - после zoomIn() результат zoomOut() (и наоборот) может не всегда возвращать первоначальный вид страницы.

Прикреплю картинку - mainWindow, но это не проект, а сделано для создания моего браузера страниц.

Попробовал добавлять текст в QCanvas и рисовать текст QPainter-ом (drawText) - не поддерживают HTML. QCanvas-ом можно масштабировать хорошо, но текста в виде картинки для работы не достаточно.
14K
09 января 2008 года
andrey_hello2007
50 / / 30.05.2007
Спасибо за разбанивание, лучше быть собой под первоначальным ником, надеюсь в будущем трений не возникнет.
14K
18 января 2008 года
andrey_hello2007
50 / / 30.05.2007
Все доделал кроме масштабирования непосредственно текста.

Код ассистента ничего хитрого не использует:

void TabbedBrowser::zoomIn()
{
currentBrowser()->zoomIn();
}

Косяки я понял (но не как их устранить), под Windows функции zoomIn() и zoomOut() работают хорошо, но когда я свои классы и запускалку компилю под нашу МСВС (Линукс), эти функции кочеряжутся, например результат изменения масштаба в одну сторону не соответствует изменению масштаба на такое же количество шагов в другую сторону, и ещё, что хуже, при увеличении на некоторое колчество раз, функция уменьшения вообще отказывается работать!

Попробую перегруженные функции, с параметром, но сомневаюсь в улучшении результата.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог