使用滚动条在Qt中并排显示图像

时间:2010-11-01 21:57:48

标签: qt

我是Qt新手。我想用Qt并排显示2张图像。使用Qt's Image Viewer Example,我想添加另一个可滚动图像显示,以便两个图像并排显示。

示例代码包含ctor的代码段:

ImageViewer::ImageViewer()
{
   imageLabel = new QLabel;
   imageLabel->setBackgroundRole(QPalette::Base);
   imageLabel->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored);
   imageLabel->setScaledContents(true);

   scrollArea = new QScrollArea;
   scrollArea->setBackgroundRole(QPalette::Dark);
   scrollArea->setWidget(imageLabel);
   setCentralWidget(scrollArea);
   ...

如果我理解正确,我希望imageLabel只是屏幕的一半宽度,而另一半显示另一个QLabel。

我该怎么做?
感谢。

1 个答案:

答案 0 :(得分:5)

如果我理解正确,这里就足够了:

// Left image
imageLabelLeft = new QLabel;
imageLabelLeft->setBackgroundRole(QPalette::Base);
imageLabelLeft->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored);
imageLabelLeft->setScaledContents(true);

scrollAreaLeft = new QScrollArea;
scrollAreaLeft->setBackgroundRole(QPalette::Dark);
scrollAreaLeft->setWidget(imageLabelLeft);

// Right image
imageLabelRight = new QLabel;
imageLabelRight->setBackgroundRole(QPalette::Base);
imageLabelRight->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored);
imageLabelRight->setScaledContents(true);

scrollAreaRight = new QScrollArea;
scrollAreaRight->setBackgroundRole(QPalette::Dark);
scrollAreaRight->setWidget(imageLabelRight);

// Do the layout
QWidget *centralWidget = new QWidget;
QHBoxLayout *layout = new QHBoxLayout(centralWidget);
layout->addWidget(scrollAreaLeft);
layout->addWidget(scrollAreaRight);

setCentralWidget(centralWidget);