我在跟蹤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