У меня есть 5 кнопок (pushButton_i) i = 1, 2, 3, 4, 5. Я хочу перетащить мышь (кнопка нажата), а затем установить текст проверенных кнопок на «Да», в противном случае на « НЕТ». Я попробовал следующий код, но в результате: Когда я нажимаю кнопку мыши, а затем немного ее передвигаю, текст всех кнопок устанавливается на «НЕТ». Это мой код:
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QString>
#include<QEvent>
#include <QMouseEvent>
#include <QDebug>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::mouseMoveEvent(QMouseEvent *event)
{
QString key;
for (int i=1;i<=5;i++){
key = QString("pushButton_%1").arg(i);
QPushButton *button = ui->centralwidget->findChild<QPushButton*>(key);
QRect widgetRect = button->geometry();
widgetRect.moveTopLeft(button->parentWidget()->mapToGlobal(widgetRect.topLeft()));
if (button->rect().contains(event->pos())) button->setText("Yes");
else button->setText("No");
}
}
Может кто-нибудь объяснить мне, что происходит?