crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> BBCode Editor
XpycT
  опции профиля:
сообщение 25.7.2009, 7:32
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 43
Регистрация: 7.7.2009
Пользователь №: 883

Спасибо сказали: 0 раз(а)




Репутация:   0  


Есть ли готовые реализации редактора BBCode? Пытался гуглить - находил одни лишь wysiwyg .
Если нет - хоть подскажите как поставить теги вокруг выделенного слова в Text Edit'e. :huh:

Как вариант - я думал о использовании js редактора а QtWebKit, но как я понимаю это мне прийдется встраивать все явовские скрипты в ресурсы....или я не так понял?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 25.7.2009, 8:35
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(XpycT @ 25.7.2009, 11:32) *
реализации редактора BBCode?
Цитата(XpycT @ 25.7.2009, 11:32) *
Если нет - хоть подскажите как поставить теги вокруг выделенного слова в Text Edit
а обязательно BBCode?
В чём значальная задача?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
XpycT
  опции профиля:
сообщение 25.7.2009, 9:41
Сообщение #3


Студент
*

Группа: Участник
Сообщений: 43
Регистрация: 7.7.2009
Пользователь №: 883

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(Litkevich Yuriy @ 25.7.2009, 8:35) *
а обязательно BBCode?
В чём значальная задача?

Желательно. Не очень хочется парсить HTML на выходе, дабы заменить его на BB-теги.
Задача заключается в обычном удаленном редакторе новостей с тегами , и т.п..
В доках в примере Text Edit есть проверка выделения текста(как я понял):
QTextCursor cursor = textEdit->textCursor();
     if (!cursor.hasSelection())
         cursor.select(QTextCursor::WordUnderCursor);

Но что-то я не особо получается потом вставить теги по бокам выделенного текста.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
XpycT
  опции профиля:
сообщение 26.7.2009, 11:58
Сообщение #4


Студент
*

Группа: Участник
Сообщений: 43
Регистрация: 7.7.2009
Пользователь №: 883

Спасибо сказали: 0 раз(а)




Репутация:   0  


Вопрос закрыт - разобрался :

QTextCursor cursor=editor->textCursor();
    QString tmpString="";
    if(cursor.hasSelection()){
         tmpString=cursor.selectedText();
         cursor.beginEditBlock();
         cursor.insertText("[B]");
         cursor.insertText(tmpString);
         cursor.insertText("[/B]");
         cursor.endEditBlock();
    }

На выходе получается выделенный текст в теге :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
XpycT
  опции профиля:
сообщение 26.7.2009, 20:56
Сообщение #5


Студент
*

Группа: Участник
Сообщений: 43
Регистрация: 7.7.2009
Пользователь №: 883

Спасибо сказали: 0 раз(а)




Репутация:   0  


Всетаки вопрос открыт. Помогите разобраться с увеличением/уменьшением высоты текстового поля :).
Хочу сделать как в вебовских редакторах кнопки, по клику на которые высота поля увеличивается (как пример на форуме в верхнем правом углу стрелки вверx и вниз.). Но в результате у меня поле заезжает за форму :(. Вот скрин как получается:
Прикрепленное изображение

На кнопки повесил такой код:
void BBCode::changeZoom(QAction *a){
    int newheight=size().height();
    if(a==zi){
      newheight+=200;
  }else if(a==zo && newheight > 300){
      newheight-=200;
  }
  resize(width(),newheight);
}


PS виджет наследник от QTextEdit :rolleyes:

Сообщение отредактировал XpycT - 26.7.2009, 20:57
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 27.7.2009, 5:59
Сообщение #6


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(XpycT @ 27.7.2009, 0:56) *
Но в результате у меня поле заезжает за форму
а у родительского виджета не фиксированый размер?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
XpycT
  опции профиля:
сообщение 27.7.2009, 10:00
Сообщение #7


Студент
*

Группа: Участник
Сообщений: 43
Регистрация: 7.7.2009
Пользователь №: 883

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(Litkevich Yuriy @ 27.7.2009, 5:59) *
а у родительского виджета не фиксированый размер?

Пробовал и фиксированый и нет. Если скрыть какой-либо элемент, то окно ресайзится, а вот если я ставлю новый размер TextEdit'a через setGeometry(), то поле попросту игнорирует layout'ы.

Да и еще такой вопрос. У меня в виджете два ToolBar'a, но кроме как задать им начальную позицию по х() и у() не получается (без координат они налажуются друг на друга). Хотелось бы расширить виджет, дабы пользователь мог сам добавлять тулбары и кнопки для BB-кодов, но не знаю как правильнее их добавить, так как исходя из "самого нижнего" тулбара у меня выставляется setViewportMargins и setContentsMargins для текстового поля и скролбара. Можно ли как-то "прилеплять" тулбары, чтобы не привязываться к их координатам (типа как в дизайнере при их создании они лепятся друг под другом).
Надеюсь выразился понятно :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 27.7.2009, 10:22
Сообщение #8


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(XpycT @ 27.7.2009, 14:00) *
меня в виджете два ToolBar'a,
этот тип виджета, на сегодняшний день, управляется только в классе QMainWindow. В нём реализован соответсвующий компоновщик.
Поэтому, либо используй QMainWindow, либо смотри его реализацию и сделай на основе него свой компоновщик.


Цитата(XpycT @ 27.7.2009, 14:00) *
Если скрыть какой-либо элемент, то окно ресайзится, а вот если я ставлю новый размер TextEdit'a через setGeometry(), то поле попросту игнорирует layout'ы.
что-то не так у тебя с компоновкой.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 4.12.2024, 0:35