2017-02-21 36 views
1

Я хочу отобразить HTML в своих формах. Проблема в том, что я должен использовать Boxlayout для размещения моих компонентов. Поэтому, когда я помещаю WebBrowser, у меня будут проблемы с высотой и прокруткой. Я получаю HTML, который я хочу отобразить из веб-службы. Длина содержимого является переменной. Я просто хочу отобразить часть этого ответа. Вот что у меня уже есть:Показать HTML в Boxlayout

enter image description here

веб-браузера ниже кнопки редактирования и заканчивается рядом с ярлыком LBL_LIB_NOM. Как вы можете видеть, веб-браузер слишком высок, и я не могу прокручивать форму, когда я нажимаю на WebBrowser. В этом примере я хотел бы уменьшить размер WebBrowser, чтобы мы могли видеть только Title. Я также хотел бы, если возможно, прокрутить мою форму, когда я нажимаю на WebBrowser, так как я не хочу прокручивать WebBrowser.

Я попробовал несколько вещей, чтобы решить мою проблему:

  • я пытался переопределить метод calcPreferredSize.
  • Я подтверждаю свою форму и свой веб-браузер.
  • Я изменил размер контейнера, используя устаревший метод setPreferedSize. В этом случае контейнер имеет размер, но WebBrowser отображает над другими компонентами.

Обычный ответ, который я видел в других сообщениях, - это установить WebBrowser в BorderLayout, но я не могу этого сделать.

Итак, вот мой вопрос: есть ли какой-либо другой компонент, который я могу использовать для отображения одной строки HTML? Или есть способ заставить webBrowser работать правильно в boxLayout? Должен ли я писать собственный рендеринг HTML?

ответ

1

Я предполагаю, что вы хотите, чтобы расположение ящиков позволяло прокручивать ... Это проблематично.

Веб-представления обычно ожидают прокрутки, и это распространено в собственных виджетах, которые обрабатывают свои собственные события и, таким образом, прокручиваются. Нам сложно знать, когда ваш салфетк предназначен для нас или для родного виджета, и это все же еще сложнее сделать это последовательно переносимым способом.

Есть 3 варианта:

  • Используйте только Codename Один код
  • Используйте макет границы или подобный макет
  • Используйте веб-браузер для всего пользовательского интерфейса этой формы

Если вы хотите использовать первый вариант, this article может быть полезен в качестве отправной точки.

+0

Я использую компонент RichTextView для отображения предварительного просмотра, и я покажу полный HTML в другой форме, используя макет границы. Большое спасибо. – Jonas