crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в Не видит SLOT с параметром
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
Теги
Выровнять по центру
Ссылка на тему
Ссылка на сообщение
Скрытый текст
Сокращение
Код с подсветкой
Offtopic
 
Удалить форматирование
Спец. элементы
Шрифт
Размер
 
Цвет шрифта
 
Отменить ввод
Вернуть ввод
Полужирный
Курсив
Подчеркнутый
 
 
Смайлики
Вставить изображение
Вставить адрес электронной почты
Цитата
Код
Раскрывающийся текст
 
Увеличить отступ
По левому краю
По центру
По правому краю
Вставить список
Вставить список

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
mishabard Дата 14.6.2011, 23:54
  Всем Спасибо! Помогли! я разобрался. все работает)))
Litkevich Yuriy Дата 13.6.2011, 23:59
 
Цитата(mishabard @ 14.6.2011, 0:41) *
а в слот необходимо передать значение
сигнал и передаёт значение в слот, если нет подходящего сигнала, то в слот нечего передавать.
antzol Дата 13.6.2011, 23:02
  В слоте пишем:
QPushButton *btn = (QPushButton *)sender();

Или использовать QSignalMapper.
mishabard Дата 13.6.2011, 21:41
  А как быть в таком случае??? Если сигнал обрабатывается нажатием кнопки clicked()- без параметров, а в слот необходимо передать значение, например указатель.?
Гость Дата 13.6.2011, 21:20
  Количество параметров слота всегда не больше количества параметров сигнала. А у тебя наоборот у сигнала нет параметров, а у слота есть.
mishabard Дата 13.6.2011, 20:59
  Добрый вечер! Все перерыл все погуглил. ответа не нашел. простите. Суть следующая:
Есть два класса, объекты которых создаются динамически, связываю их между собой сигналом и слотом, в первом класе по нажатию кнопки создаю динамически диалоговое окно второго класса, хочу связать сигналом и слотом 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)
{
.......
}
Просмотр темы полностью (откроется в новом окне)
RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 13.7.2025, 15:27