わかりましたので、ブラウザで画像のサイズを変更し、ウィンドウの中央に配置しながらアスペクト比を維持するqtで画像を表示したいと思います。アスペクト比を使用してサイズ変更を正しく機能させることができますが、Qt::AlignCenter に合わせると、qwidget のサイズが変更されなくなります (固定サイズのままです)。したがって、基本的に、どちらのオプションも機能させることができますが、一緒にすることはできません。
私がやろうとしていることの良い例は、matlab の imshow() 関数です。これにより、縦横比を維持しながら画像のサイズが変更され、画像がウィンドウの中央に配置されます。私が持っているコードは次のようなものです:
void roilayout::resizeEvent(QResizeEvent *event)
{
QSize p(roiview->refimage->size());
p.scale(roiview->view->size(), Qt::KeepAspectRatio);
roiview->view->resize(p);
}
そしてコンストラクターで:
roiview = new roiwindow;
roiview->view->setViewportUpdateMode(QGraphicsView::FullViewportUpdate);
roiview->view->setCursor(Qt::CrossCursor);
roiview->view->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
roiview->view->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
QHBoxLayout *layoutContainer = new QHBoxLayout;
layoutContainer->addWidget(roiview->view);
setLayout(layoutContainer);
グーグルで検索しましたが、何も見つかりませんでした。また、少し前に同様の質問をしましたが、回答から、私は質問を十分に明確にしなかったようです。ありがとう。