Название: Как из своей функции вызвать функцию определенную в классе? Отправлено: jury от Октябрь 11, 2016, 14:17 Как из своей функции вызвать функцию определенную в классе?
#include "exx.h" #include "ui_exx.h" #include "my_exx.h" // Мои прототипы функций Exx::Exx(QWidget *parent) : QMainWindow(parent), ui(new Ui::Exx) { ui->setupUi(this); } Exx::~Exx() { delete ui; } // Обработчик сообщения SIGUSR1 void My_Hndlr_Msg(int signo, siginfo_t *si, void *ucontext) { if(signo == SIGUSR1) My_Obrab(); // Функция обработки } // Функция: - My_Obrab(void) void Exx::My_Obrab(void) { ui->My_pushBtn->setStyleSheet(QString("background-color: red")); } ошибка: 'My_Obrab' was not declared in this scope if(signo == SIGUSR1) My_Obrab(); // Функция обработки ^ Название: Re: Как из своей функции вызвать функцию определенную в классе? Отправлено: __Heaven__ от Октябрь 11, 2016, 15:42 Пожалуйста, пользуйтесь тэгами оформления кода.
My_Obrab у вас является методом класса, который без наличия экземпляра класса вызываться не может. Название: Re: Как из своей функции вызвать функцию определенную в классе? Отправлено: jury от Октябрь 11, 2016, 16:50 Извините за неправильно оформленный код, никогда не пользовался тегами.
В C++Builder Windows аналогичный вызов функции имел вид: имя_объекта_формы->My_Obrab(); Как в Qt это сделать? Название: Re: Как из своей функции вызвать функцию определенную в классе? Отправлено: ssoft от Октябрь 11, 2016, 17:17 В C++Builder Windows аналогичный вызов функции имел вид: имя_объекта_формы->My_Obrab(); Как в Qt это сделать? Точно так же. Определите переменную <имя_объекта_формы>. Где она инициализирована? Название: Re: Как из своей функции вызвать функцию определенную в классе? Отправлено: lit-uriy от Октябрь 14, 2016, 13:55 Дело в том, что в Билдере по дурацки (с точки сзрения ООП и С++) было сделано, объект у них создавался автоматом в заголовочнике, отсюда у людей непонимание как использовать С++.
Топикстартеру: нужно создать объект там, где он нужен и затем его использовать. Откройте любой пример Qt и посмотрите как используются самописанные классы. Очень рекомендую старое (выпиленное в новых версиях) учебное пособие: http://www.doc.crossplatform.ru/qt/4.4.3/tutorials-tutorial.html |