Russian Qt Forum

Qt => Qt Script, QtWebKit => Тема начата: Saboteur от Апрель 15, 2011, 09:29



Название: QtWebKit и Flash. Red Hat EL5.
Отправлено: Saboteur от Апрель 15, 2011, 09:29
Добрый день!

ОС: Red Hat сервер 5.5 32 битный.
Qt 4.7.2.

Собирал так: ./configure -static -nomake demos -nomake examples -webkit -gtkstyle -glib -no-sql-sqlite -no-sql-sqlite2 -prefix /usr/local/Trolltech/Qt-4.7.2_Static

Суть проблемы: простая форма с WebView блюет в консоль Gtk'шными эррорами при попытке открыть страничку с флешем. Точнее окно флеша появляется, начинаются критикалы и оно уничтожается, выглядит это примерно вот так:
Код:
(<unknown>:17532): Gdk-CRITICAL **: gdk_window_get_origin: assertion `GDK_IS_WINDOW (window)' failed

(<unknown>:17532): Gdk-CRITICAL **: gdk_window_get_origin: assertion `GDK_IS_WINDOW (window)' failed

(<unknown>:17532): Gdk-WARNING **: GdkWindow 0x250016f unexpectedly destroyed

Плагины в вебките активированы:
Код:
QWebSettings::globalSettings()->setAttribute(QWebSettings::JavascriptEnabled, true);
QWebSettings::globalSettings()->setAttribute(QWebSettings::PluginsEnabled, true);

Версия плагина 10.0.45.2.

И тестовые странички, вроде http://www.adobe.com/software/flash/about/ сообщают что плагин установлен.

Пробовал все версии с 9 по 10.2.153. С плагинами версий 9 и 10.0.ХХ происходит вышеописанная картина. с 10.1 и выше сайты с флешем мне вообще говорят, что плагин не установлен. Хотя в strace видно, что он libflashplayer находит.

В убунте эта же программа нормально проигрывает флеш.

Помогите  кто-нибудь :o много чего пробовал, ничего не помогло.





Название: Re: QtWebKit и Flash. Red Hat EL5.
Отправлено: zoro86 от Май 03, 2011, 15:03
ну у меня только под версию 10.0.45.2 и работает

.h

Код:
#ifndef BROWSER_H
#define BROWSER_H

#include <QWidget>
#include <QtGui/QIcon>
#include <QtCore/QUrl>
#include "WebViewObj.h"

class ExtWebView;

class browser : public QWidget
{
    Q_OBJECT


public:
browser(QWidget *parent = 0);
void loadFile(const QString& strFile);

//protected:
//        void mousePressEvent(QMouseEvent* event);
        void contextMenuEvent(QContextMenuEvent *event){
            return;
        }
private:
        ExtWebView *view;

};

#endif

.cpp

Код:
#include <QtGui>
#include <QtCore/QSettings>
#include <QtWebKit>
#include <QPixmap>
#include "browser.h"

browser::browser(QWidget *parent): QWidget(parent)
{
    view = new ExtWebView(this);

  QHBoxLayout *ley = new QHBoxLayout();
  ley->addWidget(view);
  ley->setMargin(0);
  ley->setSpacing(0);
 
  setLayout(ley);
//  setFixedSize(292,540);
}

//void browser::mousePressEvent(QMouseEvent* event)
//{
//    if(event->button() == Qt::RightButton)
//        return;
//}

void browser::loadFile(const QString& strFile)
{

view->load(QUrl(strUrl));


        QSettings settings;
        settings.beginGroup(QLatin1String("websettings"));

        QWebSettings *defaultSettings = QWebSettings::globalSettings();
        QString standardFontFamily = defaultSettings->fontFamily(QWebSettings::StandardFont);
        int standardFontSize = defaultSettings->fontSize(QWebSettings::DefaultFontSize);
        QFont standardFont = QFont(standardFontFamily, standardFontSize);
        standardFont = qVariantValue<QFont>(settings.value(QLatin1String("standardFont"), standardFont));
        defaultSettings->setFontFamily(QWebSettings::StandardFont, standardFont.family());
        defaultSettings->setFontSize(QWebSettings::DefaultFontSize, standardFont.pointSize());

        QString fixedFontFamily = defaultSettings->fontFamily(QWebSettings::FixedFont);
        int fixedFontSize = defaultSettings->fontSize(QWebSettings::DefaultFixedFontSize);
        QFont fixedFont = QFont(fixedFontFamily, fixedFontSize);
        fixedFont = qVariantValue<QFont>(settings.value(QLatin1String("fixedFont"), fixedFont));
        defaultSettings->setFontFamily(QWebSettings::FixedFont, fixedFont.family());
        defaultSettings->setFontSize(QWebSettings::DefaultFixedFontSize, fixedFont.pointSize());

        defaultSettings->setAttribute(QWebSettings::JavascriptEnabled, settings.value(QLatin1String("enableJavascript"), true).toBool());
        defaultSettings->setAttribute(QWebSettings::PluginsEnabled, settings.value(QLatin1String("enablePlugins"), true).toBool());

        QUrl url = settings.value(QLatin1String("userStyleSheet")).toUrl();
        defaultSettings->setUserStyleSheetUrl(url);


        settings.endGroup();

}

давай почту я тебе скину... плагин


Название: Re: QtWebKit и Flash. Red Hat EL5.
Отправлено: Saboteur от Май 06, 2011, 08:46
Флеш начал проигрываться в WebView при создании компонента без родителя (первый раз я просто кидал его на форму)  ;) и только на версии плагина 10.0.36.2