Tengo un problema con el seguimiento de los movimientos del mouse en un QMainWindow
. Tengo un botón de alternar buttonGenerate
. Aquí está el código para el MainWindow
QMainWindow no rastrea el mouse con 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);
}
Cuando el botón se activa en, el ratón debe ser localizado y sus X & coordenadas Y junto con el hecho de seguimiento está habilitado o no debe aparecer en el label_5
. Cuando el botón está desactivado, el rastreo del mouse debe estar desactivado y label_5 no actualizado. Este no es el caso.
Independientemente de si se presiona el botón, no se está siguiendo el mouse. Solo cuando mantengo presionado un botón del mouse, se actualizará label_5
, independientemente de si setMouseTracking(bool)
está activo.
Cualquier observación sería muy apreciada.
¿Ha verificado que 'checked' en' on_buttonGenerate_toggled' es 'true' cuando espera que lo sea? –
Sí, el argumento '% 3' es 1 cuando se alterna. – nerozehl
Pero solo lo ve cuando presiona el botón del mouse, me parece una posibilidad que la pulsación del mouse establezca temporalmente 'hasMouseTracking' en 1. Así que lo verificaría en 'on_buttonGenerate_toggled'. –