使用QScrollArea时发生错误

时间:2013-06-02 08:59:48

标签: qt

#include <QtCore>
#include <QtGui>
#include <QLabel>
#include <QScrollArea>
#include <QScrollBar>
#include <QFileDialog>
#include"QDebug"
#include<math.h>
#include<QApplication>
QScrollArea* scrollarea = new QScrollArea;

MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
ui->label->setBackgroundRole(QPalette::Base);
ui->label->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored);
ui->label->setScaledContents(true);

scrollarea->setBackgroundRole(QPalette::Dark);
scrollarea->setWidget(ui->label);
setCentralWidget(scrollarea);
QImage img("D:\\picture.jpg");
ui->label->setPixmap(QPixmap::fromImage(img));
}

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

我是Qtcreator的新手。 我尝试添加滚动条到标签。但是当我跑步时,它会发生错误: QWidget:必须在QPaintDevice之前构造QApplication 我该怎么做才能解决这个问题

1 个答案:

答案 0 :(得分:1)

QScrollArea* scrollarea = new QScrollArea;

您在创建QScrollArea之前构建全局QApplication。使其成为MainWindow的成员变量。