【问题标题】:QT4 using QMdiArea and QScrollArea strange usage troubleQT4 使用 QMdiArea 和 QScrollArea 奇怪的使用麻烦
【发布时间】:2011-10-07 12:23:23
【问题描述】:

这是我正在做的:主窗口与 MdiArea,我添加一个滚动区域小部件(包含图像标签)作为子窗口到 MdiArea。它不起作用(图片不显示)。

这是我的代码:

MainWindow::MainWindow(QWidget *parent) :
  QMainWindow(parent),
  ui(new Ui::MainWindow)
{
  ui->setupUi(this);

  QScrollArea sa;
  QPixmap *image = new QPixmap("2.jpg");
  QLabel* imageLabel = new QLabel();
  imageLabel->setPixmap(*image);
  sa.setWidget(imageLabel);
  sa.show();
  ui->mdiArea->addSubWindow(&sa);
}

但是当我直接使用QLabel 作为子窗口时,即将最后一行替换为:

ui->mdiArea->addSubWindow(imageLabel);

效果很好。

有人知道为什么会这样吗?

【问题讨论】:

    标签: qt qt4.7


    【解决方案1】:
    QScrollArea sa;
    

    这在堆栈上声明了一个QScrollArea。它在构造函数完成后立即被销毁。使用new 分配它,就像您为其他小部件所做的那样,它应该开始工作了。

    QScollArea *sa = new QScrollArea;
    ...
    ui->mdiArea->addSubWindow(sa);
    

    (并将sa. 更改为sa->。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-05-06
      • 2021-01-01
      • 1970-01-01
      • 2021-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多