我在跟踪QMainWindow
中的鼠标移动时遇到问题。我有一个切换按钮buttonGenerate
。这里是当按钮处于启用状态为MainWindow
QMainWindow无法跟踪鼠标与setMouseTracking()
class MainWindow : public QMainWindow, private Ui::MainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
protected:
void mouseMoveEvent(QMouseEvent *);
private slots:
void on_buttonGenerate_toggled(bool checked);
};
void MainWindow::mouseMoveEvent(QMouseEvent *event)
{
label_5->setText(tr("%1 %2 %3")
.arg(event->x())
.arg(event->y())
.arg(hasMouseTracking()));
event->ignore();
}
void MainWindow::on_buttonGenerate_toggled(bool checked)
{
buttonGenerate->setText(checked
? tr("Stop")
: tr("Start"));
setMouseTracking(checked);
}
代码,鼠标应该被跟踪,并跟踪是否启用不应label_5
显示其X & Y坐标一起。当按钮关闭时,鼠标跟踪应该关闭并且label_5未更新。不是这种情况。
无论按钮是否被按下,鼠标都没有被跟踪。只有当我按住鼠标按钮时,label_5
才会更新,这无关于setMouseTracking(bool)
是否处于活动状态。
任何有识之士将不胜感激。
你是否确认'on_buttonGenerate_toggled'中的'checked'在你期望的时候是'true'? – 2012-03-09 17:57:39
是的,切换时'%3'参数为1。 – nerozehl 2012-03-09 17:58:44
但是你只能看到,当你按下鼠标按钮时 - 它触发我作为一个可能性,鼠标按下临时设置“hasMouseTracking”为1。所以我会验证它在'on_buttonGenerate_toggled'。 – 2012-03-09 18:01:24