Unable to set geometry in Qt

I get an error message with setGeometryin a very simple program in Qt5.

int main(int argc, char *argv[])
{

    QApplication a(argc, argv);

    QLabel* m_photo = new QLabel;
    m_photo->setPixmap(QPixmap("test.jpg"));
    m_photo->show();

    return a.exec();
}

Error: setGeometry: cannot set geometry 6x16 + 640 + 300 to QWidgetWindow / 'QLabelClassWindow. Resulting geometry: 160x16 + 640 + 300 (frame: 9, 38, 9, 9, custom margin: 0, 0, 0, 0, minimum size: 0x0, maximum size: 16777215x16777215).

I see Qt adding a custom widget to the layout , but I did not understand this comment.
What am I doing wrong?

+4
source share
1 answer

, , setGeometry(), . :

m_photo->setGeometry(200,200,200,200);

: , . QPixmap width() height

    QLabel* m_photo = new QLabel;
    QPixmap px("G:/2/qt.jpg");
    m_photo->setPixmap(px);
    m_photo->setGeometry(200,200,px.width(),px.height());
    m_photo->show();

.

, . , ! ? : , (test.jpg) exe , Qt ( Qt )

: test.jpg pixmap (, "G:/2/test.jpg"). : , .

    QLabel* m_photo = new QLabel;
    QPixmap px("G:/2/qt.jpg");
    if(!px.isNull())
    {
    m_photo->setPixmap(px);
    m_photo->show();
    }
    else
        qDebug() << "Cannot find picture";

?

+2
source

All Articles