Qt resizeEvent 控件居中設置

 

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

 

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

 

須要注意的是,在主程序窗口生成時,會首先調用下這個函數,這個函數能夠返回主窗口的大小,可是不能準確的返回上面的控件的大小,這多是個bug,因此咱們若是想要找到上面的一個控件的正中間的位置,須要根據主窗口的大小的值來定位中間控件的中心。ui

 

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);
}
相關文章
相關標籤/搜索