Mam problem ze śledzeniem ruchów myszy w QMainWindow
. Mam przycisk przełącznika buttonGenerate
. Oto kod na MainWindow
QMainWindow nie śledzenia myszy z 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);
}
Gdy przycisk zostanie przełączony na mysz powinny być śledzone, a jej współrzędne X & Y wraz z czy śledzenie jest włączone czy nie powinny być wykazywane w label_5
. Gdy przycisk jest wyłączony, śledzenie myszy powinno być wyłączone, a etykieta_5 niezaktualizowana. Nie o to chodzi.
Bez względu na to, czy przycisk jest naciśnięty, mysz nie jest śledzona. Dopiero, gdy przytrzymam przycisk myszy, aktualizacja zostanie zaktualizowana i nie ma znaczenia, czy aktywna jest funkcja setMouseTracking(bool)
.
Każdy wgląd byłby bardzo doceniony.
Czy zweryfikowałeś, że 'checked' w' on_buttonGenerate_toggled' ma wartość 'true', kiedy się tego spodziewasz? –
Tak, argument '% 3' ma wartość 1 po włączeniu. – nerozehl
Ale widzisz tylko, że kiedy naciskasz przycisk myszy - wydaje mi się, że mysz może chwilowo ustawić 'hasMouseTracking' na 1. Więc zweryfikuję to w' on_buttonGenerate_toggled'. –