Отображение изображений бок о бок в Qt с полосами прокрутки - PullRequest
3 голосов
/ 02 ноября 2010

Я новичок в Qt. Я хочу отображать 2 изображения рядом, используя Qt. Используя Пример просмотра изображений Qt , я хочу добавить еще один прокручиваемый дисплей изображений, чтобы оба изображения отображались рядом.

Пример кода имеет этот фрагмент для 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 Ответ

5 голосов
/ 02 ноября 2010

Если я правильно понимаю, этого здесь должно хватить:

// 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...