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

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

Страниц: [1] 2 3 4   Вниз
  Печать  
Автор Тема: connectSlotsByName не связывает со слотом  (Прочитано 17197 раз)
daimon
Гость
« : Март 27, 2012, 17:03 »

Код
C++ (Qt)
class CProcessThread: public QThread
{
Q_OBJECT
 
QProcess * process;
//////
     public slots:
void on_process_finished(int code, enum QProcess::ExitStatus status);
}
 
CProcessThread::CProcessThread( const QString& appStr, const QStringList& listParam )
{
        process= new QProcess();
        process->setObjectName(QString::fromUtf8("process"));
        QMetaObject::connectSlotsByName(this);
}
 
void CProcessThread::on_process_finished( int code, enum QProcess::ExitStatus status)
{
 
qDebug()<<QString("finish %1 Thread").arg(m_appStr)<<process->exitCode()<<process->exitStatus()<< process->errorString()<<process->error();
 
emit finished(code, status, this);
}
 
что не так? Помогите
« Последнее редактирование: Март 27, 2012, 17:09 от daimon » Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #1 : Март 27, 2012, 17:15 »

Может из-за того, что вставляешь "enum" перед QProcess::ExitStatus?
И чем не устроил QObject::connect()?
Записан

Qt 5.11/4.8.7 (X11/Win)
daimon
Гость
« Ответ #2 : Март 27, 2012, 17:31 »

Может из-за того, что вставляешь "enum" перед QProcess::ExitStatus?
И чем не устроил QObject::connect()?

проверяю работу, в другом классе буду использовать плотнее
Записан
daimon
Гость
« Ответ #3 : Март 27, 2012, 17:35 »

в конструкторе пишу ещё
   qRegisterMetaType<enum QProcess::ExitStatus>("enum QProcess::ExitStatus");
   qRegisterMetaType<enum QProcess::ProcessError>("enum QProcess::ProcessError");

не работает и всё
Записан
mutineer
Гость
« Ответ #4 : Март 27, 2012, 17:37 »

Код:
process= new QProcess();

А родителя кто процессу задавать будет?

Цитировать
Searches recursively for all child objects of the given object, and connects matching signals from them to slots of object
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #5 : Март 27, 2012, 17:42 »

А родителя кто процессу задавать будет?
Какой глазастый, однако)
Записан

Qt 5.11/4.8.7 (X11/Win)
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #6 : Март 27, 2012, 17:47 »

в конструкторе пишу ещё
   qRegisterMetaType<enum QProcess::ExitStatus>("enum QProcess::ExitStatus");
   qRegisterMetaType<enum QProcess::ProcessError>("enum QProcess::ProcessError");

не работает и всё
Интересно, из каких соображений такое понадобилось Непонимающий
Записан

Qt 5.11/4.8.7 (X11/Win)
daimon
Гость
« Ответ #7 : Март 27, 2012, 17:53 »

в конструкторе пишу ещё
   qRegisterMetaType<enum QProcess::ExitStatus>("enum QProcess::ExitStatus");
   qRegisterMetaType<enum QProcess::ProcessError>("enum QProcess::ProcessError");

не работает и всё
Интересно, из каких соображений такое понадобилось Непонимающий
обычный коннект не принимал тип и всё, пришлось так описать
Записан
daimon
Гость
« Ответ #8 : Март 27, 2012, 17:55 »

Код:
process= new QProcess();

А родителя кто процессу задавать будет?

Цитировать
Searches recursively for all child objects of the given object, and connects matching signals from them to slots of object
ворнинг в консоли пропал, но связи всё равно нет
Записан
Bepec
Гость
« Ответ #9 : Март 27, 2012, 17:56 »

эээ... А обычный enum разве не тупой int?
Записан
daimon
Гость
« Ответ #10 : Март 27, 2012, 17:57 »

эээ... А обычный enum разве не тупой int?
гуглил и решение такой ситуации было только в регистрации типа - для обычного коннетка
Записан
sudo
Гость
« Ответ #11 : Март 27, 2012, 18:50 »

в конструкторе пишу ещё
   qRegisterMetaType<enum QProcess::ExitStatus>("enum QProcess::ExitStatus");
   qRegisterMetaType<enum QProcess::ProcessError>("enum QProcess::ProcessError");

Если эти энамы отправляются в кьютешных сигналах, то они уже зарегистрированы. Регистрировать их снова не нужно, проблема в другом

Код
C++ (Qt)
 
void on_process_finished(int code, enum QProcess::ExitStatus status);
 

Здесь enum не нужен

Процесс запускал? В приведённом коде нету
« Последнее редактирование: Март 27, 2012, 18:55 от sudo » Записан
mutineer
Гость
« Ответ #12 : Март 27, 2012, 18:59 »

ворнинг в консоли пропал, но связи всё равно нет

Какой еще ворнинг? Почему в исходном сообщение не написано про ворнинг? Что за угадайка?

Здесь enum не нужен

Было в первом ответе. Интересно, сколько раз придется это повторить, чтобы ТС увиделУлыбающийся
« Последнее редактирование: Март 27, 2012, 19:01 от mutineer » Записан
sudo
Гость
« Ответ #13 : Март 27, 2012, 19:04 »

Было в первом ответе.

Повторенье - мать ученья Веселый
Записан
daimon
Гость
« Ответ #14 : Март 27, 2012, 19:55 »

не работает и всё
ворнинг простой - нет сигнала для слота
Записан
Страниц: [1] 2 3 4   Вверх
  Печать  
 
Перейти в:  


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