Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Bramme
0 / 0 / 1
Регистрация: 11.10.2012
Сообщений: 60
#1

Сигнал-слот - C++

16.11.2013, 21:25. Просмотров 425. Ответов 4
Метки нет (Все метки)

Всем привет. Хотел уточнить один факт, допустим дан код:
Класс pole.h
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class pole : public QFrame
{
    Q_OBJECT
 
public:
    explicit pole(QWidget *parent = 0);
 
protected:
    virtual void mousePressEvent(QMouseEvent *make_step_event);
 
signals:
    void make_step_clicked();
 
private slots:
    void on_stepbuttonClicked();
    
private:
    QPushButton *make_step;
Реализация класса pole.h
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include "pole.h"
 
void pole::mousePressEvent(QMouseEvent *make_step_event)
{
    if (make_step_event->button()==Qt::LeftButton)
        emit make_step_clicked();
}
 
pole::pole(QWidget *parent) :
    QFrame(parent), m_ui(new Ui::pole)
{
    m_ui->setupUi(this);
    connect(make_step,SIGNAL(clicked()),this,SLOT(on_stepbuttonClicked()));
}
 
void pole::on_stepbuttonClicked()
{
    QCoreApplication::exit(1);
}
Так вот, хотелось бы понять, являются ли сигналы clicked() и make_step_clicked() идентичными(т.е. просто разные формы записи). Ведь в функции connect мы подаем сигнал clicked(), а в заголовочном файле сигнал нажатия обозначен как make_step_clicked().
До этого с Qt не был знаком, поэтому элементарные вещи могу не знать.
Заранее спасибо.
http://www.cyberforum.ru/cpp-beginners/thread189646.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.11.2013, 21:25
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Сигнал-слот (C++):

Звуковой сигнал!
#include <ctime> #include <stdio.h> #include <locale.h> #include <string>...

Входной сигнал
Алгоритм обработки входной информации – алгоритм не рекурсивной цифровой...

Сигнал с usb
Объясните чайнику, пожалуйста. Как принимать сигнал с USB? Если можно, то с...

Сигнал SIGABRT
Почему выдает SIGABRT вот код test.cpp: #include "obj.h" int main() {...

Сигнал об обновлении данных
День добрый. Нужен совет. Допустим у нас есть класс CS_Setting. И мы...

4
stima
495 / 345 / 93
Регистрация: 22.03.2011
Сообщений: 1,107
Завершенные тесты: 2
16.11.2013, 21:38 #2
Цитата Сообщение от Bramme Посмотреть сообщение
До этого с Qt не был знаком, поэтому элементарные вещи могу не знать.
Вы понимаете, как бредово это звучит.

А ответ нет. QPushButton имеет сигнал clicked
0
OhMyGodSoLong
~ Эврика! ~
1245 / 994 / 74
Регистрация: 24.07.2012
Сообщений: 2,002
16.11.2013, 21:39 #3
clicked() — сигнал QPushButton.
make_step_clicked() — сигнал pole.
Это разные сигналы.
0
Bramme
0 / 0 / 1
Регистрация: 11.10.2012
Сообщений: 60
16.11.2013, 22:02  [ТС] #4
Цитата Сообщение от OhMyGodSoLong Посмотреть сообщение
clicked() — сигнал QPushButton.
make_step_clicked() — сигнал pole.
Это разные сигналы.
Если убрать определение сигнала make_step_clicked() и функцию mousePressEvent, то выдаст ошибку. Я так и не могу понять, как сигнал make_step_clicked() распознается

Могу ли я просто заменить make_step_clicked() на clicked()?
0
stima
495 / 345 / 93
Регистрация: 22.03.2011
Сообщений: 1,107
Завершенные тесты: 2
16.11.2013, 22:34 #5
Обьясню.

Разработчки данного кода подразумевал, что у него есть некторый фрейм (pole) на котором размещена кнопка make_step.

Далее он захотел чтобы по нажатию на кнопку выполнялась определенная логика, поэтому он подписал событие QPushButton на обработчик on_stepbuttonClicked.

Но этого ему было не достаточно. Он также захотел, чтобы при клике левой кнопкой мыши на область pole тоже выполнялся обработчик on_stepbuttonClicked.
1
16.11.2013, 22:34
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.11.2013, 22:34
Привет! Вот еще темы с решениями:

Не подается звуковой сигнал
В общем, должен написать будильник, основную часть сделал, но не подается...

Сигнал, Индекс массива
Не получается задать сигнал // информационные символы double...

Графический сигнал в Dev C++
Задание в общем виде следующее:...

Звуковой сигнал биппера! (C++)
Здравствуйте, у меня такая проблема, как заставить биппер подать голос! cout...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru