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

Сигнал-слот

16.11.2013, 21:25. Просмотров 437. Ответов 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 не был знаком, поэтому элементарные вещи могу не знать.
Заранее спасибо.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.11.2013, 21:25
Ответы с готовыми решениями:

Определить, сигнал какого цвета сигнал горит для пешеходов в этот момент.
3. Работа светофора для пешеходов запрограммирована следующим образом: в начале каждого часа в...

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

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

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

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

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

А ответ нет. QPushButton имеет сигнал clicked
0
OhMyGodSoLong
~ Эврика! ~
1247 / 996 / 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

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

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

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


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

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

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