Qt居中顯示圖片,圖過大則出現滾動條(ui方式)的兩種方法Label+ScrollArea、GraphicsView


方式一:Label+ScrollArea

窗簾與窗戶(界面上拖入ScrollArea控件,會默認帶個窗簾)

注意,默認的這個窗簾的 MinimumSize 超過窗戶大小,才出現滾動條。(注意是MinimumSize而非Size)

但是,正常的理解是Size超過窗戶就應該出現滾動條。當指定自己的窗簾時,如label,就符合常理了。

【拖入控件】

界面上拖入ScrollArea控件、Label控件(注意不要放入ScrollArea控件中,因為它要當窗簾,而不是掛在默認的窗簾上)

【屬性設置】如果覺得label控件太占位置,可以把大小設置為0,0

scrollArea:不勾選widgetResizable,sizeAdjustPolicy改為AdjustToContents,alignment改為AlignHCenter、AlignVCenter
label:不勾選scaledContents(圖像適應控件),geometry的寬度、高度設置為0(如果覺得label控件太占位置)

【代碼】

 QImage *img=new QImage; img->load("D:/豎長.bmp"); //載入圖像 ui->label->setPixmap(QPixmap::fromImage(*img)); //圖像顯示在label上 ui->label->adjustSize(); //控件適應圖像(注意必須放到上一句代碼之后) ui->scrollArea->setWidget(ui->label); //設置label為scrollArea的窗簾

 

方式二:GraphicsView

一個控件等效於方式一的兩個控件。也有種窗簾、窗戶的感覺。

什么屬性都不用設置,直接拖控件寫代碼。

 QGraphicsScene *scene=new QGraphicsScene(); //創建場景,載入圖像 scene->addPixmap(QPixmap("D:/豎長.bmp")); ui->graphicsView->setScene(scene); //用控件顯示這個場景

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM