LINUX.ORG.RU

Обработка сигналов между процессами в QT


0

0

Помогите решить проблему. Надо создать обработчик сигнала SIGUSR1(например). Описываю в классе mainwindow,наследнике от QMainWindow, переменную: struct sigaction a; затем пытаюсь поставить обработчик a.sa_handler = &from_arch в файлике mainwindow.ui.h, а он ругается следующим образом: mainwindow.ui.h:278: cannot convert `void (mainwindow::*)(int)' to `void (*)(int)' in assignment Пробовал ставить скобки ,кажется, везде, и mainwindow вписывал, а ошибка не уходит. Как её обойти, может есть стандартные обработчики таких сигналов в библиотеке QT ??? Большое спасибо.

anonymous

Такую проблему не решал, но думаю что должен быть QT метод. я думаю надо почитать про QObject::connect и про слоты, может там есть что про собственные сигналы.

nil5
()

Она ругается по совершенно очевидной причине - типа не совпадают > cannot convert `void (mainwindow::*)(int)' to `void (*)(int)' in assignment

from_arch - это memeber-function класса mainwindow, а обработчик сигнала - обыкновенная глобальная функция.

phoenix ★★★★
()
Ответ на: комментарий от phoenix

Понятно А как мне запустить функцию класс mainwindow для обработки сигнала.

Так ищет глобальную: a.sig_handler = &function; так ругается о синтаксе : a.sig_handler = &mainwindow::function; ( плюс всякме варианты со скобками). Как определить обработчик класса mainwindow

anonymous
()
Ответ на: комментарий от Keiko

Неужели программисты QT упустили в своих библах взаимодействие между процессами по сигналам

anonymous
()
Ответ на: комментарий от anonymous

а звчем, если оно не кроссплатформенное ?

Если человеку надо сделать это только под Linux - он читает
man signal и делает типа того

MyMainWindow * MyMainWindow::singleton = 0;

void handler(int sig)
{
    fprintf(stderr, "signal %d\n", sig);

    MyMainWindow::instance()->callFunction();
}


MyMainWindow::MyMainWindow() : QMainWindow()
{
    singleton = this;

    signal(SIGUSR1, handler);
}

MyMainWindow* MyMainWindow::instance()
{
    return singleton;
}

Ну а если где-то ещё - то другие способы ловли. (C) Особенности нац. рыбалки

Keiko
()
Ответ на: комментарий от Keiko

Keiko - если бы не ты чувак, всю жизнь бы разбирался.Всем спасибо получилось.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.