Я знаю, что это очень специфический вопрос, связанный с C ++ и Qt, но, возможно, кто-то может мне помочь, в любом случае ...
См. Код ниже: я хочу отобразить изображение в области прокрутки. Порт просмотра области прокрутки должен иметь определенный начальный размер. Это означает, что если размер изображения больше исходного размера порта просмотра, полосы прокрутки будут видны, в противном случае - нет.
// create label for displaying an image
QImage image( ":/test.png" );
QLabel *label = new QLabel( this );
label->setPixmap( image.toPixmap() );
// put label into scroll area
QScollArea *area = new QScrollArea( this );
area->setWidget( label );
// set the initial size of the view port
// NOTE: This is what I'd like to do, but this method does not exist :(
area->setViewPortSize( QSize( 300, 300 ) );
Должна быть возможность изменить размер всего приложения, чтобы порт представления имел другой размер, чем исходный.
К сожалению, мне не удалось выяснить, как установить размер порта просмотра. Механизм компоновки Qt, похоже, устанавливает размер по умолчанию для порта представления, но до сих пор я не смог его изменить. Установка нового размера с помощью
area->setMinimumSize( QSize( 300, 300 ) );
фактически установит требуемый размер, но тогда область прокрутки теряет способность уменьшаться до размера, меньшего, чем 300x300.
Есть идеи?