1

私は QT を初めて使用します。QT を使用して、画像をロードし、ユーザーが注釈を付けられるようにする画像手動注釈ツールを開発したいと考えています。画像ビューアのデモを見て、QLabel を使用して画像を表示することにしましたが、ここに問題があります。メイン ウィンドウ (表示画像のみ、ツールバーはフローティング) を、読み込まれた画像のサイズに合わせて自動調整できるようにしたい。画像ビューアのコードを次のように変更します。

ImageViewer::ImageViewer()
{
    imageLabel = new QLabel;
    imageLabel->setBackgroundRole(QPalette::Base);
    imageLabel->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
    imageLabel->setScaledContents(false);
    setCentralWidget(imageLabel);

    createActions();
    createMenus();

    setWindowTitle(tr("Image Viewer"));
    resize(sizeHint());
}

void ImageViewer::open()
{

    QString fileName = QFileDialog::getOpenFileName(this,
                                    tr("Open File"), QDir::currentPath());
    if (!fileName.isEmpty()) {
        QImage image(fileName);
        if (image.isNull()) {
            QMessageBox::information(this, tr("Image Viewer"),
                                     tr("Cannot load %1.").arg(fileName));
            return;
        }

        imageLabel->setPixmap(QPixmap::fromImage(image));
        imageLabel->adjustSize();

    }
}

このコードでは、メイン ウィンドウ (QLabel) は大きな画像に合わせて拡大できますが、小さなサイズの画像を読み込むと、この画像のサイズに縮小できません。ここで何が問題なのですか?

どうもありがとうございました。

4

4 に答える 4

0

問題は設定しているサイズ ポリシーにあると思います。QSizePolicy::Expanding の代わりに QSizePolicy::Minimum を試してください。

于 2012-07-13T14:58:11.480 に答える