3

QWebInspector を QT プロジェクトに含めて、コードで使用しようとしました (QT にまだ慣れていないため、完全にはわかりません) 空白の Web インスペクター画面が表示されるので、page() が null を返していると思いますか? どこが間違っているのでしょうか、それとも HTML5 アプリケーションだけですか?

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QtGui>
#include <QSsl>
#include <QSslError>
#include <QNetworkReply>
#include <QtDebug>
#include <QWebInspector>
#include <QGraphicsWebView>
#include <QMessageBox>
#include "Windows.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    //this->setGeometry(50,50, 1280, 768);
    setWindowState(Qt::WindowMaximized);
    //MainWindow::showMaximized();
    this->centralWidget()->setLayout(new QGridLayout);
    m_pWebView = new QWebView(this);

    //Detect any SSL errors from the network reply
    connect(m_pWebView->page()->networkAccessManager(), SIGNAL(sslErrors(QNetworkReply*, const QList<QSslError> & )),
                    this, SLOT(onSslErrors(QNetworkReply*, const QList<QSslError> & )));

    this->centralWidget()->layout()->addWidget(m_pWebView);
    //set position and size
    m_pWebView->load(QUrl("https://csm.nathan"));




    //m_pWebView->show();

    QMenu *trayIconMenu;
       minimizeAction = new QAction("Minimize", this);
       restoreAction = new QAction("Restore", this);
       quitAction = new QAction("Exit", this);

       connect (minimizeAction, SIGNAL(triggered()), this, SLOT(hide()));
       connect (restoreAction, SIGNAL(triggered()),this,SLOT(showMaximized()));
       connect (quitAction, SIGNAL(triggered()), qApp, SLOT(quit()));
       trayIconMenu = new QMenu(this);
       trayIconMenu->addAction (minimizeAction);
       trayIconMenu->addAction (restoreAction);
       trayIconMenu->addAction (quitAction);
       QSystemTrayIcon* systray = new QSystemTrayIcon(this);
       //connect(systray, SIGNAL(messageClicked()), this, SLOT(messageClicked()));
       QIcon icon("csm-logo.png");
       systray->setIcon(icon);
       systray->setContextMenu (trayIconMenu);
       systray->show();
       if(systray->isVisible()){
           systray->showMessage("CytoViewer v1.0", "The CytoViewer has been started!", QSystemTrayIcon::NoIcon, 10000);

           //QMessageBox msgBox;
           //msgBox.setWindowTitle("HELP");
           //msgBox.setInformativeText(m_pWebView->page());
           //msgBox.exec();

           //Enable developer extras in the webviewer settings
           m_pWebView->page()->settings()->setAttribute(QWebSettings::DeveloperExtrasEnabled, true);
           //Instantiate QWebInspector
           QWebInspector inspector;

           inspector.setPage(m_pWebView->page());

           inspector.setVisible(false);
       }

}

void MainWindow::onSslErrors(QNetworkReply* reply, const QList<QSslError> &errors)
{
    qDebug() << "handleSslErrors: ";
    foreach (QSslError e, errors)
    {
        qDebug() << "ssl error: " << e;
    }
    //Suppress any SSL errors
    reply->ignoreSslErrors();
}

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


void MainWindow::closeEvent(QCloseEvent *event)
{
        QMessageBox::information(this, tr("Systray"),
                                 tr("The program will keep running in the "
                                    "system tray. To terminate the program, "
                                    "choose <b>Exit</b> in the context menu "
                                    "of the system tray entry."));
        hide();
        event->ignore();
}

void MainWindow::messageClicked()
 {
    QMessageBox::information(0, "CytoViewer Message", "You're application is up and running!");
 }

Web インスペクタに空白の画面が表示される

4

1 に答える 1

3

への変更

QWebInspector *inspector = new QWebInspector();
inspector->show();

通話の削除を忘れないでください

于 2012-12-04T17:52:53.723 に答える