【问题标题】:Error occurs when use a QScrollArea使用 QScrollArea 时发生错误
【发布时间】:2013-06-02 08:59:47
【问题描述】:
#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 我该怎么做才能解决这个问题

【问题讨论】:

  • 向我们展示您的main()。
  • #include "mainwindow.h" #include int main(int argc, char *argv[]) { QApplication a(argc, argv);主窗口 w; w.show();返回 a.exec(); } 这是我的 main()

标签: qt


【解决方案1】:
QScrollArea* scrollarea = new QScrollArea;

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

【讨论】:

  • 那么请接受(这是我的答案旁边的勾号),否则搜索与您相同问题的人会看到您的问题但认为它尚未解决。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-07
  • 2023-03-12
  • 2017-11-06
  • 1970-01-01
  • 1970-01-01
  • 2023-04-02
相关资源
最近更新 更多