2014-07-14 3 views
0

크기 조정 정책에 대한 Qt 문서를 읽었으나 Qlabel의 새 크기에 맞게 이미지 크기를 변경하는 시나리오를 어떻게 얻을 수 있습니까? .새로운 GUI 창 크기에 맞게 이미지 크기가 변경됨

mainLayout: 
    toplayout: 
     QLabel 
     QPushButton 

가 지금은 cv::Mat 이미지가 내 GUI 구조입니다. 나는 QPixmap로 개종했다.
Window::Window(QWidget *parent): QDialog(parent) 
{ 
    // Widgets 
    browserButton = new QPushButton(tr("Open")); 
     imageLabel = new QLabel; 

    imageLabel->setAlignment(Qt::AlignHCenter); 
    imageLabel->setScaledContents(true); 


    // Connect Actions 
    connect(browserButton, SIGNAL(clicked()), this, SLOT(browserClicked())); 

    // Layouts 
    QVBoxLayout *topLayout = new QVBoxLayout; 
    topLayout->addWidget(imageLabel); 
    topLayout->addWidget(browserButton); 

    // Main Layout 
    QVBoxLayout *mainLayout = new QVBoxLayout; 
    mainLayout->addLayout(topLayout); 
    setLayout(mainLayout); 
    setWindowTitle("Image Browser"); 
} 

void Window::browserClicked() 
{ 
    // Get file name as QString 
    QString fileName = QFileDialog::getOpenFileName(this, 
                tr("Open Image"), 
                NULL, 
                tr("Image Files (*.png *.jpeg *.jpg *.bmp)")); 

    // Read file name as String not QString and store the image   
    m_original_CVimg = cv::imread(fileName.toStdString()); 

    imageLabel->setPixmap(this->cvMatToQPixmap(m_original_CVimg)); 

} 

나는 이미지의 크기를 사용자가 윈도우의 크기를 변경할 때마다 크기를 조정하고자하는 버튼입니다. 창을 확장하면 이미지도 확장되지만 창을 축소하면 문제가됩니다. 창의 크기는 이미지의 크기로 제한됩니다. 어떤 제안이든지

+0

QLayout을 사용하지 않는 이유는 무엇입니까? – reggie

+0

@reggie_jimac, 실제로 저는 책을 팔로우하고 있습니다. 지금까지 전문가는 아니지만 간단한 GUI를 할 수 있습니다. – CroCo

답변