Я знаю, что это очень специфический вопрос, связанный с 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.
Любые идеи?