Russian Qt Forum
Сентябрь 30, 2024, 18:34 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Отображение html-текста с рисунками в QTextEdit  (Прочитано 6087 раз)
Goshman
Гость
« : Март 06, 2012, 17:42 »

Добрый день!

Нужно отобразить html-текст с рисунками в Qt приложении. Тескт сохранен из формата MSWord как web-страница.
Набросал тестовое приложение.

textEditTest.pro:
Код:
QT       += core gui

TARGET = textEditTest
TEMPLATE = app


SOURCES += main.cpp\
        widget.cpp

HEADERS  += widget.h

main.cpp:
Код:
#include <QtGui/QApplication>
#include "widget.h"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Widget w;
    w.show();

    return a.exec();
}

widget.cpp:
Код:
#include "widget.h"
#include <QPushButton>
#include <QFileDialog>
#include <QTextStream>
#include <QTextEdit>

Widget::Widget(QWidget *parent)
    : QWidget(parent)
{
    resize(640, 480);

    QTextEdit *te = new QTextEdit(this);
    te->setGeometry(10, 10, 620, 400);
    connect(this, SIGNAL(setHtml(QString)), te, SLOT(setHtml(QString)));

    QPushButton *btn = new QPushButton("Load HTML text", this);
    btn->setGeometry(10, 420, 100, 50);
    connect(btn, SIGNAL(clicked()), this, SLOT(clicked()));
}

void Widget::clicked()
{
    QString FileName = QFileDialog::getOpenFileName(this);
    if (FileName.isEmpty()) return;
    QFile f(FileName);
    if (!f.open(QIODevice::ReadOnly)) return;

    QTextStream ts(&f);
    QString s = ts.readAll();
    f.close();

    emit setHtml(s);
}

widget.h:
Код:
#ifndef WIDGET_H
#define WIDGET_H

#include <QtGui/QWidget>

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = 0);
    ~Widget();

signals:
    void setHtml(const QString &text);

private slots:
    void clicked();
};

#endif // WIDGET_H

При загрузке файла текст отображается нормально, а вот вместо рисунков - серые размытые квадратики.
Что я делаю не так?
« Последнее редактирование: Март 06, 2012, 18:24 от Goshman » Записан
k0p4
Гость
« Ответ #1 : Март 06, 2012, 17:58 »

Скорее всего картинка не подгрузилась. Проверь в дебаге стринг с ХТМЛем. И попробуй отобразить ХТМЛ в браузере.
Записан
Goshman
Гость
« Ответ #2 : Март 06, 2012, 18:18 »

Скорее всего картинка не подгрузилась. Проверь в дебаге стринг с ХТМЛем. И попробуй отобразить ХТМЛ в браузере.
В примере WebKil/HTML Previewer все корректно...
Записан
Bepec
Гость
« Ответ #3 : Март 06, 2012, 22:32 »

НЕДОСТОВЕРНАЯ ИНФОРМАЦИЯ:
Я нечётко помню, где то там спряталось свойство, разрешающее ссылки.

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

Но к большому сожалению я не могу его вспомнить, а так же помогло это в той давней программе, или нет.
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #4 : Март 07, 2012, 07:50 »

Что я делаю не так?
Перегрузи
Код
C++ (Qt)
QVariant QTextEdit::loadResource ( int type, const QUrl & name ) [virtual]

2 Bepec:
не понимаю смысл твоих ответов, в которых ответов-то по-сути и нет.
« Последнее редактирование: Март 07, 2012, 07:52 от GreatSnake » Записан

Qt 5.11/4.8.7 (X11/Win)
Bepec
Гость
« Ответ #5 : Март 07, 2012, 08:04 »

1) АП темы. И не спорь, тут более 30% тем забыты, из-за того что никто ничего не написал.
2) Даю пусть и недостоверную, но информацию. Как помню.
3) Пытаюсь помочь.

Плохие у меня мотивации или хорошие?
Записан
Goshman
Гость
« Ответ #6 : Март 08, 2012, 10:17 »

Перегрузи
Код
C++ (Qt)
QVariant QTextEdit::loadResource ( int type, const QUrl & name ) [virtual]
Я не совсем понимаю (вернее - сосем не понимаю), что писать внутри этой функции.

Да и изначальная проблема скорее всего с Qt не связана. Пол линуксом этот код работает. Скорее всего косяк системы. Она сильно забита всяким хламом. Одних Qt, собраных под MinGW и под MSVS, штук 5...
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.09 секунд. Запросов: 23.