![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
mishabard |
![]()
Сообщение
#1
|
Студент ![]() Группа: Участник Сообщений: 31 Регистрация: 13.6.2011 Из: Киев Пользователь №: 2741 Спасибо сказали: 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) { ....... } |
|
|
![]() |
mishabard |
![]()
Сообщение
#2
|
Студент ![]() Группа: Участник Сообщений: 31 Регистрация: 13.6.2011 Из: Киев Пользователь №: 2741 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
А как быть в таком случае??? Если сигнал обрабатывается нажатием кнопки clicked()- без параметров, а в слот необходимо передать значение, например указатель.?
|
|
|
![]() ![]() ![]() |
![]() |
Текстовая версия | Сейчас: 18.2.2025, 17:49 |