Название: QTextBrowser Изменить html в runtime [РЕШЕНО] Отправлено: Aleksey от Сентябрь 27, 2012, 09:04 Здравствуйте.
На маленькой форме нужно организовать выбор товара. Товар - это картинка и текст. Все товары (их не много) должны быть включены в exe файл. (http://i42.fastpic.ru/big/2012/0927/34/0ec22de34a82af6fc031789739582f34.png) Решил все организовать с помощью QTextBrowser и пары кнопок. Научился добавлять в ресурсы программы картинки для html QTextBrowser. Вопрос: можно ли добавить в ресурсы программы набор разных html для каждого товара и как их в runtime загрузить в QTextBrowser? Спасибо за внимание. Название: Re: QTextBrowser Изменить html в runtime Отправлено: Bepec от Сентябрь 27, 2012, 09:10 Мда. У меня рука не поднимается описать все мои чуйства :)
Суй свои товары в qrc. setSource() поможет засунуть в TextBrowser. Название: Re: QTextBrowser Изменить html в runtime Отправлено: Aleksey от Сентябрь 27, 2012, 09:52 Суй свои товары в qrc. setSource() поможет засунуть в TextBrowser. Верес, я сделал так: Засунул html в qrc файл, вот его содержание: Код: <RCC> Затем, при старте формы попробовал загрузить html вот так: Код: MainWindow::MainWindow(QWidget *parent) : После запуска TextBrowser пуст :( Название: Re: QTextBrowser Изменить html в runtime Отправлено: Bepec от Сентябрь 27, 2012, 10:12 Код: setSource(QUrl::fromLocalFile("тутВашПуть")); Название: Re: QTextBrowser Изменить html в runtime Отправлено: Aleksey от Сентябрь 27, 2012, 10:18 Код: setSource(QUrl::fromLocalFile("тутВашПуть")); Верес, большое спасибо. Заработало. Появилась и картинка и текст. Только вместо русских букв почему-то кракозябры, хотя html код я один в один копировал из свойств обьекта QTextBrowser в конструкторе формы. Название: Re: QTextBrowser Изменить html в runtime Отправлено: Bepec от Сентябрь 27, 2012, 10:20 Нууу... А кодеки на русский язык вы установили? :)
Код: #include <QTextCodec> Код: QTextCodec::setCodecForTr(QTextCodec::codecForName("Windows-1251")); Пропиши в мейне. Название: Re: QTextBrowser Изменить html в runtime Отправлено: Aleksey от Сентябрь 27, 2012, 11:28 Нууу... А кодеки на русский язык вы установили? :) Пропиши в мейне. Усп, про кодеки я ничего не знаю. Придется почитать. Код вставил, не работает. При старте выдает runtime ошибку. Чего-то создать не может. В консоли такой текст: terminate called after throwing an instance of 'std::runtime_error' what(): locale::facet::_S_create_c_locale name not valid Название: Re: QTextBrowser Изменить html в runtime Отправлено: Bepec от Сентябрь 27, 2012, 12:03 Упс :) У тебя ж не винда наверно :) UTF-8 везде поставь, должно тогда заработать.
Хотя не уверен, что в QTextBrowser кодировка автоматом не ставится. Ты html код в чём сохраняешь? в какой кодировке? А в заголовке html указываешь кодировку? :) Название: Re: QTextBrowser Изменить html в runtime Отправлено: Aleksey от Сентябрь 27, 2012, 12:54 Верес, у меня винда. Сорри, что не сообщил ранее. Консоль я имел ввиду qtCreator'а.
html я беру и копирую из окошка свойств обьекта QTextBrowser и вставляю в открытый нотепад, затем сохраняю как html. В какой кодировке я это делаю - не знаю. Указания кодировки в таком html нет. Я пробовал его добавлять в строчку "<meta name="qrichtext" content="1" />", указание кодировки: "<meta name="qrichtext" content="1; charset=utf-8"/>". Не помогло. Менял кодировку на другую (windows-1251) - не помогает. А что делает строчка "std::locale loc("russian_russia.1251");"? Похоже, ломается на ней. Я думаю, что преобразование русских букв, которые я пишу в дизайнере форм в свойствах компонентов, преобразуются в юникод на этапе компиляции. То есть в QTextBrowser кодировка автоматом не ставится. Название: Re: QTextBrowser Изменить html в runtime Отправлено: Bepec от Сентябрь 27, 2012, 13:03 В дизайнере все свойства, все компоненты и прочее хранится в Unicode :) Собственно потому у тебя там на кнопочках могут быть русские буковки, без установки кодировки :)
В общем цимус - берёшь в своём браузере сохраняешь эту страницу :) Да да, вот эту! Да да, на которой я пишу :D И суёшь этот html себе в textBrowser. Код: if (видны русские буковки) Название: Re: QTextBrowser Изменить html в runtime Отправлено: Aleksey от Сентябрь 27, 2012, 13:29 Верес, спасибо за идею. :) Сохранил pda.compulenta.ru и QTextBrowser отобразил страничку с русскими буквами. Буду искать определение кодировки.
Название: Re: QTextBrowser Изменить html в runtime Отправлено: Bepec от Сентябрь 27, 2012, 13:39 Код: <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> Вот осталось только определиться в какой кодировке у тебя в html ке текст :D PS а заяца такой откуда? Хочу такого :D Название: Re: QTextBrowser Изменить html в runtime Отправлено: Aleksey от Сентябрь 27, 2012, 13:50 Да.
Вот такой код открывается QTextBrowser нормально: Код: <html> *.htm файл в кодировке windows-1251, надо полагать. Я его редактирую в qt creator. А заяц из гугла. :) Сделал поиск еще раз. Вот, он существует и в не цифровом виде: http://www.1c-interes.ru/catalog/all7154/10902568/ Название: Re: QTextBrowser Изменить html в runtime Отправлено: Bepec от Сентябрь 27, 2012, 13:52 В заголовок темы пихни [РЕШЕНО]. Ну или удали тему :) Таких овродя много ;)
|