Как проверить, нажата ли какая-либо кнопка в QtC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Как проверить, нажата ли какая-либо кнопка в Qt

Сообщение Anonymous »

У меня есть две кнопки: ZeroButton и oneButton. Я создаю их список и хочу, чтобы при нажатии одной из кнопок отображался «щелчок» на метке. Я пытаюсь проверить, щелкнут ли один из них с помощью contains(), и, мб, в этом нет необходимости (без него это тоже не работает), но я добавляю qobject в qpushbutton с помощью qobject_cast(sender())
Я пробовал это:
QList *buttons = new QList();
buttons->append(ui->zeroButton);
buttons->append(ui->oneButton);

if(buttons->contains(qobject_cast(sender()))))
{
ui->labelAnswer->setText("click");
}

но это не работает.
Я ожидаю, что labelAnswer будет изменен при «нажатии»
главного окна. ч:
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include
#include

QT_BEGIN_NAMESPACE
namespace Ui {
class MainWindow;
}
QT_END_NAMESPACE

class MainWindow : public QMainWindow
{
Q_OBJECT

public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();

private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H

mainwindow.cpp:
#include "mainwindow.h"
#include "./ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
QList *buttons = new QList();
buttons->append(ui->zeroButton);
buttons->append(ui->oneButton);

if(buttons->contains(sender()))
{
//QObject *object = new QObject(sender());
ui->labelAnswer->setText("click");
//delete object;
//object = nullptr;
}
}

MainWindow::~MainWindow()
{
delete ui;
}

main.cpp:
#include "mainwindow.h"

#include

int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}

mainwindow.ui:


MainWindow


true



0
0
180
272




0
0




180
272




180
272



MainWindow





20
10
141
41



true


cum


Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter





120
170
41
41



C


buttonGroup




true



20
50
41
41



1


buttonGroup





70
50
41
41



2


buttonGroup





120
50
41
41



3


buttonGroup





70
170
41
41



+


buttonGroup





20
90
41
41



4


buttonGroup





70
90
41
41



5


buttonGroup





121
90
41
41



6


buttonGroup





20
130
41
41



7


buttonGroup





70
130
41
41



8


buttonGroup





120
130
41
41



9


buttonGroup





20
170
41
41



0


buttonGroup






0
0
180
24













Подробнее здесь: https://stackoverflow.com/questions/790 ... cked-in-qt
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»