Qt resizeEvent 控件居中設置


 

在Qt中我們有時需要讓一個控件在窗口居中或是在父控件中居中,而且在窗口拉伸時仍然保持正中央的位置。這里介紹一種方法,用到了主窗口的響應函數resizeEvent(QResizeEvent* event),這個響應函數在窗口的大小改變時會自動調用,該函數如下:

 

void MainWindow::resizeEvent(QResizeEvent* event)
{
   QMainWindow::resizeEvent(event);
   // Your code here
}

 

需要注意的是,在主程序窗口生成時,會首先調用下這個函數,這個函數可以返回主窗口的大小,但是不能准確的返回上面的控件的大小,這可能是個bug,所以我們如果想要找到上面的一個控件的正中間的位置,需要根據主窗口的大小的值來定位中間控件的中心。

 

void MainWindow::resizeEvent(QResizeEvent* event)
{
   QMainWindow::resizeEvent(event);
   // Your code here
   int width = ui->centralWidget->width(), height = ui->centralWidget->height();
   ui->item->move(width * 0.25 - 80, (height - 320) / 2 - 8);
   ui->item->move(width * 0.25 - 80, (height - 320) / 2 - 8);
}

 


免責聲明!

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



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