QWebView absturz

Alles rund um die Programmierung mit Qt
Antworten
DBGTMaster
Beiträge: 190
Registriert: 19. August 2010 10:00

QWebView absturz

Beitrag von DBGTMaster »

Hallo,

wollte mich eben mit QWebView ein wenig spielen, ich bringe mein Programm aber nur zum Absturz..

Folgende Version funktioniert:

Code: Alles auswählen

#include <QtGui/QApplication>
#include "MainWindow.h"

#include <QWebView>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    QWebView view;
    view.setUrl(QUrl("http://www.google.at"));

    view.show();

    return a.exec();
}
Und folgende Version stürzt mein Programm immere wieder ab:

main.cpp:

Code: Alles auswählen

#include <QtGui/QApplication>
#include "MainWindow.h"

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

    return a.exec();
}
MainWindow.h

Code: Alles auswählen

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

namespace Ui {
    class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

private:
    Ui::MainWindow *ui;

private slots:
    void initWindow();
};

#endif // MAINWINDOW_H
MainWindow.cpp:

Code: Alles auswählen

#include "MainWindow.h"
#include "ui_MainWindow.h"

#include <QTimer>

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{

    QTimer::singleShot(0, this, SLOT(initWindow()));
}

void MainWindow::initWindow() {

    ui->webView->load( QUrl("http:/www.google.at")  );
    ui->webView->show()
}

MainWindow::~MainWindow()
{
    delete ui;
}

Code: Alles auswählen

/********************************************************************************
** Form generated from reading UI file 'MainWindow.ui'
**
** Created: Mon 5. Sep 09:04:11 2011
**      by: Qt User Interface Compiler version 4.7.3
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/

#ifndef UI_MAINWINDOW_H
#define UI_MAINWINDOW_H

#include <QtCore/QVariant>
#include <QtGui/QAction>
#include <QtGui/QApplication>
#include <QtGui/QButtonGroup>
#include <QtGui/QHeaderView>
#include <QtGui/QMainWindow>
#include <QtGui/QMenuBar>
#include <QtGui/QStatusBar>
#include <QtGui/QToolBar>
#include <QtGui/QWidget>
#include <QtWebKit/QWebView>

QT_BEGIN_NAMESPACE

class Ui_MainWindow
{
public:
    QWidget *centralWidget;
    QWebView *webView;
    QMenuBar *menuBar;
    QToolBar *mainToolBar;
    QStatusBar *statusBar;

    void setupUi(QMainWindow *MainWindow)
    {
        if (MainWindow->objectName().isEmpty())
            MainWindow->setObjectName(QString::fromUtf8("MainWindow"));
        MainWindow->resize(576, 513);
        centralWidget = new QWidget(MainWindow);
        centralWidget->setObjectName(QString::fromUtf8("centralWidget"));
        webView = new QWebView(centralWidget);
        webView->setObjectName(QString::fromUtf8("webView"));
        webView->setGeometry(QRect(10, 10, 551, 431));
        webView->setUrl(QUrl("http://www.google.at/"));
        webView->setZoomFactor(0.5);
        MainWindow->setCentralWidget(centralWidget);
        menuBar = new QMenuBar(MainWindow);
        menuBar->setObjectName(QString::fromUtf8("menuBar"));
        menuBar->setGeometry(QRect(0, 0, 576, 21));
        MainWindow->setMenuBar(menuBar);
        mainToolBar = new QToolBar(MainWindow);
        mainToolBar->setObjectName(QString::fromUtf8("mainToolBar"));
        MainWindow->addToolBar(Qt::TopToolBarArea, mainToolBar);
        statusBar = new QStatusBar(MainWindow);
        statusBar->setObjectName(QString::fromUtf8("statusBar"));
        MainWindow->setStatusBar(statusBar);

        retranslateUi(MainWindow);

        QMetaObject::connectSlotsByName(MainWindow);
    } // setupUi

    void retranslateUi(QMainWindow *MainWindow)
    {
        MainWindow->setWindowTitle(QApplication::translate("MainWindow", "MainWindow", 0, QApplication::UnicodeUTF8));
    } // retranslateUi

};

namespace Ui {
    class MainWindow: public Ui_MainWindow {};
} // namespace Ui

QT_END_NAMESPACE

#endif // UI_MAINWINDOW_H
Lasse ich in der MainWindow.cpp die 2 Zeilem vom QWebView in der initWindow Methode weg, so startet es Problemlos, ansosnten sagt der Debugger:

Segmentation fault..

Code: Alles auswählen

0	QWebView::page() const	C:\QtSDK\Desktop\Qt\4.7.3\mingw\lib\QtWebKitd4.dll	0	0x9beeaf2	
1	QWebView::load(QUrl const&)	C:\QtSDK\Desktop\Qt\4.7.3\mingw\lib\QtWebKitd4.dll	0	0x9bef001	
2	MainWindow::initWindow	MainWindow.cpp	16	0x4015f5	
3	MainWindow::qt_metacall	moc_MainWindow.cpp	72	0x401812	
4	QMetaObject::metacall	qmetaobject.cpp	237	0x6a205ff8	
5	QMetaCallEvent::placeMetaCall	qobject.cpp	535	0x6a210c9d	
6	QObject::event	qobject.cpp	1217	0x6a212ba8	
7	QWidget::event	qwidget.cpp	8718	0x957e20	
8	QMainWindow::event	qmainwindow.cpp	1480	0xcf3970	
9	QApplicationPrivate::notify_helper	qapplication.cpp	4462	0x90bd88	
10	QApplication::notify	qapplication.cpp	4427	0x90bc08	
11	QCoreApplication::notifyInternal	qcoreapplication.cpp	731	0x6a201540	
12	QCoreApplication::sendEvent	qcoreapplication.h	215	0x6a268258	
13	QCoreApplicationPrivate::sendPostedEvents	qcoreapplication.cpp	1372	0x6a2025eb	
14	qt_internal_proc	qeventdispatcher_win.cpp	497	0x6a2248e7	
15	USER32!IsDialogMessageW	C:\Windows\syswow64\user32.dll	0	0x76e96238	
16	??		0	0x17046c	
17	??		0	0x401	
18	??		0	



lG
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: QWebView absturz

Beitrag von Christian81 »

setupUi() vergessen ...
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
DBGTMaster
Beiträge: 190
Registriert: 19. August 2010 10:00

Re: QWebView absturz

Beitrag von DBGTMaster »

Christian81 hat geschrieben:setupUi() vergessen ...
danke schön :)...
Antworten