0
#include "framecapture.h"

#include <iostream>
#include <QtWidget>

int main(int argc, char * argv[])
{
    if (argc != 3) {
        std::cout << "Capture a web page and save its internal frames in different images" << std::endl << std::endl;
        std::cout << "  framecapture <url> <outputfile>" << std::endl;
        std::cout << std::endl;
        std::cout << "Notes:" << std::endl;
        std::cout << "  'url' is the URL of the web page to be captured" << std::endl;
        std::cout << "  'outputfile' is the prefix of the image files to be generated" << std::endl;
        std::cout << std::endl;
        std::cout << "Example: " << std::endl;
        std::cout << "  framecapture qt.nokia.com trolltech.png" << std::endl;
        std::cout << std::endl;
        std::cout << "Result:" << std::endl;
        std::cout << "  trolltech.png (full page)" << std::endl;
        std::cout << "  trolltech_frame1.png (...) trolltech_frameN.png ('N' number of internal frames)" << std::endl;
        return 0;
    }

    QUrl url = QUrl::fromUserInput(QString::fromLatin1(argv[1]));
    QString fileName = QString::fromLatin1(argv[2]);

    QApplication a(argc, argv);
    FrameCapture capture;
    QObject::connect(&capture, SIGNAL(finished()), QApplication::instance(), SLOT(quit()));
    capture.load(url, fileName);

    return a.exec();
}

我找不到 QtWidget 文件或目录。当我使用 QWidget 时,它会说

/home/me/qtwebkit-examples-and-demos/examples/webkit/framecapture-build-desktop/../framecapture/main.cpp:68:错误:变量“QApplication a”具有初始化程序但类型不完整

/home/me/qtwebkit-examples-and-demos/examples/webkit/framecapture-build-desktop/../framecapture/main.cpp:70:错误:嵌套名称说明符中使用的类型“QApplication”不完整

我不知道为什么git://gitorious.org/+qt-developers/qt/qtwebkit-examples-and-demos-staging.git中的示例都不起作用。它似乎总是抱怨#includes 找不到所需的组件。

4

1 回答 1

1

您只需包含 QApplication。那是:

#include <QApplication>

如果我没记错的话,<QtWidget>无论如何都没有这样的包含文件。那应该是<QWidget>。鉴于具体的例子,我希望一般包括<QtGui>代替。

于 2012-07-10T08:36:01.087 回答