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

标签 qt

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

示例代码包含此构造函数片段:

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 显示在另一半上。

我该怎么做?
谢谢。

最佳答案

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

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

关于qt - 在 Qt 中使用滚动条并排显示图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4073438/

相关文章:

c++ - Qt 在背景项上传播绘制事件

c++ - 将 OpenBLAS 与 Qt Creator 项目链接

c++ - Qt Creator 在链接到 OpenCV 时出现错误

c++ - 如何子类化 QStandardItemModel 以使用我自己的 Item 类型?

c++ - Qt中的窗口之间传递信息

qt - undefined reference 错误 FFMPEG + QT + Ubuntu 12.04.2 LTS

qt - unique_ptr 并传递给连接

c++ - QList 中的 boost::shared_ptr 导致段错误

c++ - 如何获取QSqlTableModel中记录的行?

c++ - Qt 5,获取鼠标在屏幕中的位置