Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Bramme
0 / 0 / 0
Регистрация: 11.10.2012
Сообщений: 60
#1

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

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

Входной сигнал - C++
Алгоритм обработки входной информации – алгоритм не рекурсивной цифровой фильтрации имеет вид: {y}_{n}=\sum_{i=0}^{K}{b}_{i}{x}_{n-1} ...

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

Сигнал SIGABRT - C++
Почему выдает SIGABRT вот код test.cpp: #include "obj.h" int main() { Obj hun("/home/nikita/untitled.obj"); ...

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

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

Сигнал, Индекс массива - C++
Не получается задать сигнал // информационные символы double *x0 = new double; for (int q = 0;q < M; q++){ ...

Звуковой сигнал биппера! (C++) - C++
Здравствуйте, у меня такая проблема, как заставить биппер подать голос! cout << "\a\a\a\a\a\a\a\a\a\a\a\a\a\a" <<endl; Вроде все...

Звуковой сигнал при выводе символа - C++
Случайно наткнулся на такую вещь. Преобразую целое число(именно семерка) в символ и вывожу его при помощи cout. Программа компилится,...

Послать сигнал серверу о результатах поиска - C++
Доброй ночи. Вот хочу в свой код добавить, чтобы он после того как завершился поиск если он что то нашёл то посылал определённый сигнал...

Звуковой сигнал \a : как это работает в программировании? - C++
Как \a работает в программировании? Приведите пример плз.


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
stima
449 / 298 / 20
Регистрация: 22.03.2011
Сообщений: 966
Завершенные тесты: 2
16.11.2013, 21:38     Сигнал-слот #2
Цитата Сообщение от Bramme Посмотреть сообщение
До этого с Qt не был знаком, поэтому элементарные вещи могу не знать.
Вы понимаете, как бредово это звучит.

А ответ нет. QPushButton имеет сигнал clicked
OhMyGodSoLong
~ Эврика! ~
1243 / 992 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
16.11.2013, 21:39     Сигнал-слот #3
clicked() — сигнал QPushButton.
make_step_clicked() — сигнал pole.
Это разные сигналы.
Bramme
0 / 0 / 0
Регистрация: 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()?
stima
449 / 298 / 20
Регистрация: 22.03.2011
Сообщений: 966
Завершенные тесты: 2
16.11.2013, 22:34     Сигнал-слот #5
Обьясню.

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

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

Но этого ему было не достаточно. Он также захотел, чтобы при клике левой кнопкой мыши на область pole тоже выполнялся обработчик on_stepbuttonClicked.
Yandex
Объявления
16.11.2013, 22:34     Сигнал-слот
Ответ Создать тему
Опции темы

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