Russian Qt Forum

Программирование => С/C++ => Тема начата: eg015t от Июль 22, 2016, 09:46



Название: Qtimer + ncurses
Отправлено: eg015t от Июль 22, 2016, 09:46
Добрый день, пробую применить библиотеку ncurses в консольном приложении Qt. Но проблема в том, что макросы в ncurses конфликтуют с сигналом QTimer.
Код:
/usr/include/qt4/QtCore/qtimer.h:92: ошибка: 'stdscr' is not a type  void timeout();

timeout в ncurses.h
Код:
#define timeout(delay) wtimeout(stdscr,(delay))

timeout в qtimer.h
Код:
Q_SIGNALS: void timeout();

Как можно избежать данной проблемы? Заранее, спасибо!



Название: Re: Qtimer + ncurses
Отправлено: Bepec от Июль 22, 2016, 10:11
Ну, это дефайны. Тут или в ncurses править, либо в Qt.


Название: Re: Qtimer + ncurses
Отправлено: gil9red от Июль 22, 2016, 10:14
А если ncurses инклудить после QTimer?


Название: Re: Qtimer + ncurses
Отправлено: Johnik от Июль 22, 2016, 10:18
использовать #undef timeout


Название: Re: Qtimer + ncurses
Отправлено: Bepec от Июль 22, 2016, 10:19
Гыы, undef сломает ncurses скорее всего.


Название: Re: Qtimer + ncurses
Отправлено: eg015t от Июль 22, 2016, 10:25
Спасибо за ответы! Править заголовочники  ncurses или QTimer - не вариант... Пострадает переносимость... А вот ncurses инклуд после QTimer помог! Хотя бы  приложение собралось, буду смотреть дальше, при выполнении как себя поведет!

На вскидку - все работает. Может у кого будет похожая проблема.


Название: Re: Qtimer + ncurses
Отправлено: Johnik от Июль 22, 2016, 10:58
Гыы, undef сломает ncurses скорее всего.
при грамотном использовании не сломает


Название: Re: Qtimer + ncurses
Отправлено: Igors от Июль 22, 2016, 11:43
А вот ncurses инклуд после QTimer помог!
Или так
Код
C++ (Qt)
#include <ncurses.h>
#undef timeout
#include <QTimer>
 


Название: Re: Qtimer + ncurses
Отправлено: _Bers от Июль 22, 2016, 13:06
Как можно избежать данной проблемы? Заранее, спасибо!

#undef