代码之家  ›  专栏  ›  技术社区  ›  Adi Shavit

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

qt
  •  3
  • Adi Shavit  · 技术社区  · 15 年前

    我是个新手。我想使用Qt并排显示两个图像。使用 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 回复  |  直到 15 年前
        1
  •  5
  •   bjoern.bauer    15 年前

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

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