У меня есть две кнопки: 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
Как проверить, нажата ли какая-либо кнопка в Qt ⇐ C++
Программы на C++. Форум разработчиков
-
Anonymous
1728681016
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
Подробнее здесь: [url]https://stackoverflow.com/questions/79079721/how-to-check-if-any-of-buttons-is-clicked-in-qt[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия