在Qt中如何使用滚动条并实现图片并排显示

3
我是一个Qt新手。我想使用Qt来显示两张并排的图片。使用Qt的图像查看器示例,我想添加另一个可滚动的图像显示,这样两张图片就可以并排显示。
示例代码在构造函数中有以下片段:
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个回答

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);

太好了!它起作用了。正是我想要的。我猜这与QHBoxLayout和setCentralWidget()有关,但我不知道如何将所有东西组装在一起。感谢Bjoern。 - Adi Shavit

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接