C++/QT выполнения функций в отдельном файле

201
01 декабря 2017, 06:06

В main.cpp имеется функция с телом

MainWindow::HelloWorld(){
    std::count << "Hello World" << std::endl;
}

Данную функцию хочу вызвать в другом файле к примеру foo.cpp. При этом только main.cpp знает, что foo.cpp существует с помощью #include <foo.h>

Answer 1

Сигналы и слоты Qt можно cвязывать анонимно по их строковым сигнатурам. То есть не имея полного объявления классов связываемых объектов. Вы можете сделать так:

bool connectHelloWorld(QObject * sender, QObject * receiver)
{
    return QObject::connect(  sender  , SIGNAL(sayHello())
                            , receiver, SLOT  (HelloWorld()) );
}

Это работает потому как то, что передается макросам SIGNAL и SLOT интерпретируется как строка, посмотрите их реализацию. Далее эти строки обрабатываются внутри мета-объектной подсистемы Qt и в результате мы имеем связанные сигналы. Естественно сигналы и слоты должны быть правильно объявлены и обработаны moc.

READ ALSO
Указатель this в классе

Указатель this в классе

Насколько я понял, когда читал про this, что указатель необходим по большей части, когда мы используем несколько объектов одного и того же классаОднако...

222
не удается открыть источник &ldquo;cuda_runtime.h&rdquo;

не удается открыть источник “cuda_runtime.h”

пытаюсь попробовать данный пример https://githubcom/jordanbonilla/Read_GPU_Temperature_CUDA/blob/master/read_temps

452
Передача enum&#39;а в конструктор класса

Передача enum'а в конструктор класса

У меня есть класс, в конструктор которого я хочу передать параметры в виде enum

204
Перевод из std::wstring в число

Перевод из std::wstring в число

Если у меня есть указатель на строку в середине которой содержится числоЯ могу перевести в число примерно так:

195