Qt 决定忽略函数?
Qt decided to ignore functions?
所以我有这个无框架项目 windows 为了在屏幕上移动它们,为每个 window:
制作了这样的功能
window.h
private:
Ui::MainWindow *ui;
void main_mousePressEvent(QMouseEvent *event);
void main_mouseMoveEvent(QMouseEvent *event);
int m_nMouseClick_X_Coordinate;
int m_nMouseClick_Y_Coordinate;
window.cpp
void MainWindow::main_mousePressEvent(QMouseEvent *event) {
m_nMouseClick_X_Coordinate = event->position().x();
m_nMouseClick_Y_Coordinate = event->position().y();
//qDebug() << m_nMouseClick_X_Coordinate << " 1 " << m_nMouseClick_Y_Coordinate;
}
void MainWindow::main_mouseMoveEvent(QMouseEvent *event) {
move(event->globalPosition().x()-m_nMouseClick_X_Coordinate,event->globalPosition().y()-m_nMouseClick_Y_Coordinate);
//qDebug() << m_nMouseClick_X_Coordinate << " 2 " << m_nMouseClick_Y_Coordinate;
}
在我重新启动计算机并再次 运行 程序之前效果很好...出于某种原因 windows 现在不要移动,知道发生了什么事吗?
P.S。 Qt 版- 6
也许是个愚蠢的问题,但是您是否启用了鼠标跟踪?例如。 setMouseTracking(true);
在 window 构造函数中。
此外,根据您的实施,即使您没有按下鼠标,window 也会不断移动。我这样做的方法是覆盖两个函数:onMousePressEvent()
和 onMouseReleaseEvent()
,并创建一个变量 isMousePressed
,它将在移动 [=19] 之前在 mouseMoveEvent()
中检查=].
所以我有这个无框架项目 windows 为了在屏幕上移动它们,为每个 window:
制作了这样的功能window.h
private:
Ui::MainWindow *ui;
void main_mousePressEvent(QMouseEvent *event);
void main_mouseMoveEvent(QMouseEvent *event);
int m_nMouseClick_X_Coordinate;
int m_nMouseClick_Y_Coordinate;
window.cpp
void MainWindow::main_mousePressEvent(QMouseEvent *event) {
m_nMouseClick_X_Coordinate = event->position().x();
m_nMouseClick_Y_Coordinate = event->position().y();
//qDebug() << m_nMouseClick_X_Coordinate << " 1 " << m_nMouseClick_Y_Coordinate;
}
void MainWindow::main_mouseMoveEvent(QMouseEvent *event) {
move(event->globalPosition().x()-m_nMouseClick_X_Coordinate,event->globalPosition().y()-m_nMouseClick_Y_Coordinate);
//qDebug() << m_nMouseClick_X_Coordinate << " 2 " << m_nMouseClick_Y_Coordinate;
}
在我重新启动计算机并再次 运行 程序之前效果很好...出于某种原因 windows 现在不要移动,知道发生了什么事吗?
P.S。 Qt 版- 6
也许是个愚蠢的问题,但是您是否启用了鼠标跟踪?例如。 setMouseTracking(true);
在 window 构造函数中。
此外,根据您的实施,即使您没有按下鼠标,window 也会不断移动。我这样做的方法是覆盖两个函数:onMousePressEvent()
和 onMouseReleaseEvent()
,并创建一个变量 isMousePressed
,它将在移动 [=19] 之前在 mouseMoveEvent()
中检查=].