Qt6-鼠標移動窗口
新版的Qt6 鼠標事件中函數是有更新了,不過幫助文檔還沒有更新過來。希望官方也要快速同步呦。

在Qt5中代碼
*
* 鼠標按下操作
* 記錄當前坐標
*/
static QPoint last(0,0); //保存坐標
const int TITLE_HEIGHT = 50; //這里也可以使用宏定義,保存標題高度,也就是鼠標點擊區域的高度
void MainWindow::mousePressEvent(QMouseEvent *event)
{
if(event->y() { last = event->globalPos(); } } /* * 鼠標移動函數 * 這里實時修改窗口的坐標 */ void MainWindow::mouseMoveEvent(QMouseEvent *event) { if(event->y() { int dx = event->globalX() - last.x(); int dy = event->globalY() - last.y(); last = event->globalPos(); this->move(this->x()+dx,this->y()+dy); } } /* * 鼠標釋放函數 */ void MainWindow::mouseReleaseEvent(QMouseEvent *event) { if(event->y() { int dx = event->globalX() - last.x(); int dy = event->globalY() - last.y(); this->move(this->x()+dx,this->y()+dy); } } 在Qt6中有部分變化,如下,當時,沿用Qt5中的代碼除了警告是沒有其他問題的。 static QPoint last(0,0); //保存坐標 const int TITLE_HEIGHT = 50; //這里也可以使用宏定義,保存標題高度,也就是鼠標點擊區域的高度 void MainWindow::mousePressEvent(QMouseEvent *event) { if(event->position().y() { last = event->globalPosition().toPoint(); } } void MainWindow::mouseMoveEvent(QMouseEvent *event) { if(event->position().y() { int dx = event->globalPosition().x() - last.x(); int dy = event->globalPosition().y() - last.y(); last = event->globalPosition().toPoint(); this->move(this->x()+dx,this->y()+dy); } } void MainWindow::mouseReleaseEvent(QMouseEvent *event) { if(event->position().y() { int dx = event->globalPosition().x() - last.x(); int dy = event->globalPosition().y() - last.y(); this->move(this->x()+dx,this->y()+dy); } } Qt
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。