Image gets clipped while changing orientation using Qt -
hi all,
i wnt develop imageviewer using qt. m trying resize big images scaling them. problem , when change screen orientation part of image gets clipped , if open image in landscape mode, default size of image remains small when change portrait mode. doin wrong?
please me out. heres code dat hv written
imageviewer::imageviewer() { setattribute(qt::wa_deleteonclose); qaction *back = new qaction(this); back->settext(qstring("back")); connect(back,signal(triggered()),this,slot(close())); back->setsoftkeyrole(qaction::positivesoftkey); addaction(back);
imagelabel = new qlabel(); imagelabel->setsizepolicy(qsizepolicy::expanding,qsizepolicy::expanding); imagelabel->setalignment(/*qt::alignleft|*/qt::aligncenter); qwidget *widget = new qwidget; layout=new qstackedlayout(); layout->addwidget(imagelabel); widget->setlayout(layout); setcentralwidget(widget); }
void imageviewer::showimage(qstring filepath) { qimagereader reader; reader.setfilename(filepath); qsize imagesize = reader.size(); imagesize.scale(size(), qt::keepaspectratio); reader.setscaledsize(imagesize); qimage image = reader.read(); imagelabel->setpixmap(qpixmap::fromimage(image)); imagelabel->adjustsize(); }
you should re-implement qlabel's resizeevent or install event filter , handle qresizeevent there content of showimage method should go handler of resize event. using size() of imageviewer widget (which seems derived qmainwindow), it's better use imagelabel.size(); or best qresizeevent::size() prevent problem if change ui layout in future.
Comments
Post a Comment