Russian Qt Forum
Ноябрь 22, 2024, 22:20 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Свои сигнал и слот  (Прочитано 12594 раз)
Eretic
Гость
« : Июль 15, 2012, 23:58 »

Приветствую всех кто зашёл в темку!

Есть 2 класса. В одном есть сигнал во втором слот.
Приведу код:

two.h:

Код:
#ifndef TWO_H
#define TWO_H

#include <QtCore>

class two
{
public:
    two();
signals:
    void mySignal(); // сигнал
};

#endif // TWO_H

mainwindow.h:

Код:
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QtCore>
#include "two.h"

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT
   
public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
   
private:
    Ui::MainWindow *ui;

public slots:
    void mySlot(); // слот
};

#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);
    two *t =new two();
    QObject::connect(t,SIGNAL(mySignal()),this,
                     SLOT(mySlot()));                    // ошибка здесь

}

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

void MainWindow::mySlot(){}

Ошибка:
Цитировать
C:\Users\Eretic\gui\testApp-build-desktop-Qt_4_8_1_for_Desktop_-_MinGW__Qt_SDK_________\..\testApp\mainwindow.cpp:11: ошибка: no matching function for call to 'MainWindow::connect(two*&, const char*, MainWindow* const, const char*)'

Объясните пожалуйста что не так делаю.
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #1 : Июль 16, 2012, 00:13 »

попробуй писать connect а не QObject::connect
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
sidsukana
Гость
« Ответ #2 : Июль 16, 2012, 06:23 »

Код:
class two : public QObject
{
Q_OBJECT

public:
    two();
signals:
    void mySignal(); // сигнал
};
Записан
Eretic
Гость
« Ответ #3 : Июль 16, 2012, 09:19 »

sidsukana,
Спасибо!
Записан
Bepec
Гость
« Ответ #4 : Июль 16, 2012, 09:52 »

Логично. Использовать Сигнал-Слотовую систепму могут только классы, наследуемые от QObject.

PS это разъяснение на всякий случай Улыбающийся
Записан
andrew.k
Гость
« Ответ #5 : Июль 17, 2012, 22:18 »

Логично. Использовать Сигнал-Слотовую систепму могут только классы, наследуемые от QObject.
PS это разъяснение на всякий случай Улыбающийся
Логично. Классы наследуемые от QObject это те, в объявлении которых написано " : public QObject"

PPS это разъяснение на самый крайний случай Улыбающийся Улыбающийся
Записан
sudo
Гость
« Ответ #6 : Июль 18, 2012, 17:20 »

Логично. Использовать Сигнал-Слотовую систепму могут только классы, наследуемые от QObject.
PS это разъяснение на всякий случай Улыбающийся
Логично. Классы наследуемые от QObject это те, в объявлении которых написано " : public QObject"

PPS это разъяснение на самый крайний случай Улыбающийся Улыбающийся

И на самый наикрайнейший случай, в начале класса должно быть написать "Q_OBJECT" Веселый
Записан
Bepec
Гость
« Ответ #7 : Июль 18, 2012, 18:03 »

Флудерасты вы чертовы.

Подумайте головой - для любого зашедшего в тему, до моего комментария творится непонятка - почему всё заработало и в чём причина.

А вы как попугаи, лишь бы поглумиться.
Записан
andrew.k
Гость
« Ответ #8 : Июль 18, 2012, 18:41 »

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

А вы как попугаи, лишь бы поглумиться.
Никто не глумится. Эти комментарии были необходимы. Т.к. ситуация была крайне туманная и сложна в понимании.
Записан
alexis031182
Гость
« Ответ #9 : Июль 18, 2012, 18:49 »

Троллинг и споры - последнее дело, когда больше нечего пить.
Но тема жива, бутыль опустела, и тянет поговорить Улыбающийся
Записан
andrew.k
Гость
« Ответ #10 : Июль 18, 2012, 18:55 »

Троллинг и споры - последнее дело, когда больше нечего пить.
Но тема жива, бутыль опустела, и тянет поговорить Улыбающийся

Ну разве это ````V
Подумайте головой - для любого зашедшего в тему, до моего комментария творится непонятка - почему всё заработало и в чём причина.
не смешно?
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #11 : Июль 18, 2012, 18:56 »

Троллинг и споры - последнее дело, когда больше нечего пить.
Но тема жива, бутыль опустела, и тянет поговорить Улыбающийся
Всегда удивляюсь куда девается вся эта словоохотливость когда вопрос ну чуть-чуть "выше травы" Улыбающийся А вот забыл человек сигнал объявить - ну какая радость, и сколько знатоков! Сгоняли бы лучше в магазин..
Записан
andrew.k
Гость
« Ответ #12 : Июль 18, 2012, 19:01 »

Троллинг и споры - последнее дело, когда больше нечего пить.
Но тема жива, бутыль опустела, и тянет поговорить Улыбающийся
Всегда удивляюсь куда девается вся эта словоохотливость когда вопрос ну чуть-чуть "выше травы" Улыбающийся А вот забыл человек сигнал объявить - ну какая радость, и сколько знатоков! Сгоняли бы лучше в магазин..
Нет, нет. Я прямо вижу толпы "любых зашедших в тему" и как у них начинают "твориться непонятки".
Они перечитывают тему снова и снова. Но не могут понять, почему вроде бы только что не работало, а тут раз и заработало.
Вглядываются в код, но не понятно.
Но тут они видят, что кто-то сжалился над ними и добавил еще один комментарий. И тут все становится на свои места и народ расходится.
Записан
andrew.k
Гость
« Ответ #13 : Июль 18, 2012, 19:05 »

По-моему невозможно придумать темы более опостылевшей, как неработающие сигналы и слоты.
Такие темы надо сразу грохать. А автора вешать, т.к. у него нет сил открыть книгу и прочитать главу один первый раздел.
Записан
alexis031182
Гость
« Ответ #14 : Июль 18, 2012, 19:06 »

Ну разве это ````V
Эм, странный наскальный рисунок Улыбающийся

не смешно?
Вроде нет
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.148 секунд. Запросов: 23.