Название: [РЕШЕНО] Редактор текста с постраничным выводом а-ля Word Отправлено: UNION labs от Апрель 30, 2014, 17:39 Всем привет.
Нужен такой текстовый редактор, который может работать с QTextDocument и в то же время отображать текст не сплошняком, как обычный QTextEdit, а по страницам, на подобии ворда. Может быть вам попадался такой компонент? Если нет, подскажите пожалуйста, как бы вы стали реализовывать таковой? Название: Re: Редактор текста с постраничным выводом а-ля Word Отправлено: Hrundel от Май 01, 2014, 11:47 QGraphicsScene и там рисовать страницы с текстом.
Подробнее можно прочесть у Марк Саммерфилд Qt. Профессиональное программирование Разработка кроссплатформенных приложений на С++ Начиная с главы 9 и до конца книги Название: Re: Редактор текста с постраничным выводом а-ля Word Отправлено: _OLEGator_ от Май 01, 2014, 13:03 Судя по документации, у QTextDocument есть весь необходимый функционал:
Код
Название: Re: Редактор текста с постраничным выводом а-ля Word Отправлено: Hrundel от Май 01, 2014, 14:17 Судя по документации, у QTextDocument есть весь необходимый функционал: Круто, я тоже не знал. Даже Layout блоками возможен. Название: Re: Редактор текста с постраничным выводом а-ля Word Отправлено: UNION labs от Май 02, 2014, 17:18 Спасибо, сделал. Если кому-нибудь будет интересно, вот исходники - https://github.com/dimkanovikov/QPagesTextEdit
Название: Re: Редактор текста с постраничным выводом а-ля Word Отправлено: kai666_73 от Май 05, 2014, 14:47 Спасибо, сделал. Если кому-нибудь будет интересно, вот исходники - https://github.com/dimkanovikov/QPagesTextEdit Вау, спасибо за идею. Воспользовался с небольшой корректировкой (размер документа задаю в пикселях). Было бы совсем идеально, если бы можно было "дорастянуть" последнюю страницу до полного размера страницы. Тогда можно было добавить футеры/хидеры. Если у кого есть мысли на этот счет, был бы крайне признателен. Название: Re: Редактор текста с постраничным выводом а-ля Word Отправлено: UNION labs от Май 15, 2014, 05:26 kai666_73, пожалуйста. Почему не выложили свой патч?:)
Мне тоже понадобится данный функционал в будущем, пока просто руки не дошли, т.к. не критично. А кроме этого нужно ещё задание размера страницы в мм, и задание отступов от текста со всех четырёх сторон (т.к. QTextDocument не позволяет задать отступ для каждой стороны). Название: Re: Редактор текста с постраничным выводом а-ля Word Отправлено: kai666_73 от Май 15, 2014, 15:37 kai666_73, пожалуйста. Почему не выложили свой патч?:) Мне тоже понадобится данный функционал в будущем, пока просто руки не дошли, т.к. не критично. А кроме этого нужно ещё задание размера страницы в мм, и задание отступов от текста со всех четырёх сторон (т.к. QTextDocument не позволяет задать отступ для каждой стороны). Пока в процессе... Сделаны настройки: 1. Формата страницы (А3, А4...) 2. Отступов с краев... разные отступы задаются установкой свойств QTextFrameFormat для rootFrame документа 3. Хидеров и футеров 4. Отображение последней страницы целиком ... Выложить проблематично - все это уже вылилось в десяток файло-классов. Из Вашей репы взята, почитай, только идея ::) Будут конкретные вопросы - обращайтесь, про отступы, вроде, уже ответил. Название: Re: Редактор текста с постраничным выводом а- Отправлено: UNION labs от Май 16, 2014, 06:11 Хорошо, спасибо, в ближайшем будущем обращусь. А вы не собираетесь выкладывать проект в общий доступ? Может быть просто оставили бы ссылку?
Название: Re: Редактор текста с постраничным выводом а- Отправлено: kai666_73 от Май 16, 2014, 10:47 Хорошо, спасибо, в ближайшем будущем обращусь. А вы не собираетесь выкладывать проект в общий доступ? Может быть просто оставили бы ссылку? Планирую реализовать дизайнер отчетов на базе QTextEdit-а. Возникла такая необходимость - заказ военных. Так что об общем доступе речи быть не может (( Название: Re: Редактор текста с постраничным выводом а-ля Word Отправлено: UNION labs от Май 19, 2014, 10:01 Ясно, ну тогда расскажите пожалуйста, как вы:
1. сделали задание размера страницы в миллиметрах? 2. дорисовываете страницу? Название: Re: Редактор текста с постраничным выводом а-ля Word Отправлено: kai666_73 от Май 19, 2014, 10:52 Ясно, ну тогда расскажите пожалуйста, как вы: 1. сделали задание размера страницы в миллиметрах? 2. дорисовываете страницу? 1. Реализовал такой вот класс: PageFormat.h Код: class PageFormat PageFormat.cpp Код: static inline double mmToInches(double mm) { return mm * 0.039370147; } 2. В функции рисования едитора (в постраничном режиме) изменил диапазон вертикального скролбара Код: verticalScrollBar()->setRange(0, m_drawPageSize.height() * (document()->pageCount()) - viewport()->size().height()); Название: Re: Редактор текста с постраничным выводом а-ля Word Отправлено: UNION labs от Май 19, 2014, 14:25 Примного благодарен!
Название: Re: [РЕШЕНО] Редактор текста с постраничным выводом а-ля Word Отправлено: _OLEGator_ от Май 19, 2014, 22:57 Код
Напрашивается как минимум на выделение в структуру. Название: Re: [РЕШЕНО] Редактор текста с постраничным выводом а-ля Word Отправлено: gil9red от Май 20, 2014, 00:00 Код
Напрашивается как минимум на выделение в структуру. Или просто использовать для этого класс QMargins (http://qt-project.org/doc/qt-4.8/qmargins.html) ::) Название: Re: [РЕШЕНО] Редактор текста с постраничным выводом а-ля Word Отправлено: _OLEGator_ от Май 20, 2014, 09:14 Или просто использовать для этого класс QMargins (http://qt-project.org/doc/qt-4.8/qmargins.html) ::) Вот, даже писать не надо что-то новое, все доступно из коробки =) Название: Re: [РЕШЕНО] Редактор текста с постраничным выводом а-ля Word Отправлено: kai666_73 от Май 20, 2014, 10:31 Отож набежало грамотных...
А QMargins содержит целые числа, нужны вещественные. Название: Re: [РЕШЕНО] Редактор текста с постраничным выводом а-ля Word Отправлено: Johnik от Май 20, 2014, 12:57 в Qt 5.3 добавлен класс QMarginsF (http://qt-project.org/doc/qt-5/qmarginsf.html)
Название: Re: [РЕШЕНО] Редактор текста с постраничным выводом а-ля Word Отправлено: UNION labs от Май 22, 2014, 09:39 В Qt 5.3 ещё есть и QPageSize однако.
Обновил свой проект. Название: Re: [РЕШЕНО] Редактор текста с постраничным выводом а-ля Word Отправлено: gil9red от Май 22, 2014, 10:51 В Qt 5.3 ещё есть и QPageSize однако. Странно, гугл не нашел QPageSize о.ООбновил свой проект. Название: Re: [РЕШЕНО] Редактор текста с постраничным выводом а-ля Word Отправлено: UNION labs от Май 22, 2014, 16:20 Странно, гугл не нашел QPageSize о.О Просто класс новый, ещё не проиндексировались страницы. Вот ссылка - http://qt-project.org/doc/qt-5/qpagesize.html (http://qt-project.org/doc/qt-5/qpagesize.html) Название: Re: [РЕШЕНО] Редактор текста с постраничным выводом а-ля Word Отправлено: gil9red от Май 23, 2014, 05:44 Странно, гугл не нашел QPageSize о.О Просто класс новый, ещё не проиндексировались страницы. Вот ссылка - http://qt-project.org/doc/qt-5/qpagesize.html (http://qt-project.org/doc/qt-5/qpagesize.html) Название: Re: [РЕШЕНО] Редактор текста с постраничным выводом а-ля Word Отправлено: UNION labs от Май 30, 2014, 14:33 kai666_73, скажите пожалуйста, а вы не решали задачи масштабирования в своём редакторе? А то столкнулся с тем, что это довольно нетривиальная задача, т.к. стандартные zoomIn/zoomOut просто меняют размер шрифта, а нужно так же масштабировать отступы страницы, блоков, изображения и т.п....
Название: Re: [РЕШЕНО] Редактор текста с постраничным выводом а-ля Word Отправлено: kai666_73 от Июнь 01, 2014, 13:33 kai666_73, скажите пожалуйста, а вы не решали задачи масштабирования в своём редакторе? А то столкнулся с тем, что это довольно нетривиальная задача, т.к. стандартные zoomIn/zoomOut просто меняют размер шрифта, а нужно так же масштабировать отступы страницы, блоков, изображения и т.п.... Даже задумываться об этом боюсь :(Если только как-то в купе с QGraphicsView и иже с ним... Название: Re: [РЕШЕНО] Редактор текста с постраничным выводом а-ля Word Отправлено: UNION labs от Июнь 02, 2014, 11:57 Спасибо, тоже уже пришёл к такому выводу, ну будем думать как быть!:)
Название: Re: [РЕШЕНО] Редактор текста с постраничным выводом а-ля Word Отправлено: panAlexey от Июнь 03, 2014, 21:58 Код
Напрашивается как минимум на выделение в структуру. Или просто использовать для этого класс QMargins (http://qt-project.org/doc/qt-4.8/qmargins.html) ::) НУ знаете, готовые классы использовать, это извращение. Название: Re: [РЕШЕНО] Редактор текста с постраничным выводом а-ля Word Отправлено: Dimka Novikov от Декабрь 29, 2014, 16:01 Всё-таки как и предполагали пришлось через QGraphicsXXX делать масштабирование. Если кому-нибудь будет нужно, то посмотреть, как я это сделал можно тут - https://github.com/dimkanovikov/ScalableWrapper
|