Не видит SLOT с параметром, Не видит SLOT с параметром, без параметров все работает. |
Здравствуйте, гость ( Вход | Регистрация )
Не видит SLOT с параметром, Не видит SLOT с параметром, без параметров все работает. |
mishabard |
13.6.2011, 20:59
Сообщение
#1
|
Студент Группа: Участник Сообщений: 31 Регистрация: 13.6.2011 Из: Киев Пользователь №: 2741 Спасибо сказали: 0 раз(а) Репутация: 0 |
Добрый вечер! Все перерыл все погуглил. ответа не нашел. простите. Суть следующая:
Есть два класса, объекты которых создаются динамически, связываю их между собой сигналом и слотом, в первом класе по нажатию кнопки создаю динамически диалоговое окно второго класса, хочу связать сигналом и слотом spinbox и button из двух классов. Все компилируется, но при зосдании класса пишет: Object::connect: No such slot MWindows1::slot1(pbase->pcb) in ../untitled1/mainwindows.cpp:54 Пробовал делать слот без параметров, все работет!!!! Но мне не подходит мне необходимо через параметр из класа в класс передать значение. Вот код: все упростил, чтоб оставить только необходимое: ПРобовал все варианты: connect(pbase->pcmdC,SIGNAL(clicked()),this, SLOT(slot1(pbase->pcb))); QObject::connect(pbase->pcmdC,SIGNAL(clicked()),this, SLOT(slot1(pbase->pcb))); MWindows1::connect(pbase->pcmdC,SIGNAL(clicked()),this, SLOT(slot1(pbase->pcb))); а вот так работает: connect(pbase->pcmdC,SIGNAL(clicked()),this, SLOT(slot1())); // Слот без параметров!!!!!! Помогите! Что не так?????? Клас 1: #include"basedialog.h" #include<QtGui> class MWindows1: public QDialog { Q_OBJECT public: ..... public slots: void slot1(QSpinBox * p){pSpinBox->setValue(p->value()); }; private: .... QSpinBox * pSpinBox; ..... }; Клас 2: #include <QtGui> class BaseDialog : public QDialog { Q_OBJECT public: ..... QSpinBox * pcb; QPushButton * pcmdC; ..... }; Создаю процедуру обработки нажтия кнопки в класе 1 void MWindows1::PushBaseDialog() { BaseDialog * pbase = new BaseDialog; connect(pbase->pcmdC,SIGNAL(clicked()),this, SLOT(slot1(pbase->pcb))); //н работает if (pbase->exec()==QDialog::Accepted) { ....... } |
|
|
Текстовая версия | Сейчас: 26.11.2024, 18:27 |