Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: D_N_S от Ноябрь 29, 2005, 20:14



Название: PopupMenu-сигналы c int-ом
Отправлено: D_N_S от Ноябрь 29, 2005, 20:14
Параметрически привязываю сигнал экземпляра QPopupMenu к слоту, т.е.
Код:

 popupMenu=new QPopupMenu (table);

 popupMenu->insertItem(QString::fromLocal8Bit("Зарезать"), 0);
 popupMenu->insertItem(QString::fromLocal8Bit("Повесить"), 1);
 popupMenu->insertItem(QString::fromLocal8Bit("Расстрелять"), 2);
 connect (popupMenu, SIGNAL(activated(int)), this, SLOT(showDialog(int)));

 connect (table, SIGNAL(contextMenuRequested  (int, int, const QPoint&)), SLOT(showMenu()));


Меню показывается, вызывается слот обработки нажатия для меню (showDialog(int)), но беда в том, что я не получаю значение параметра int!!! Хотя должен потому что: тот же код в винде работает на ура, в примерах третьего куте всё один в один /название ест-но другие/.
Не получаю я этот int во FreeBSD. Что за НЕкроссплатформенность qt?

Заранее благодарю за ответ!


Название: PopupMenu-сигналы c int-ом
Отправлено: Dendy от Ноябрь 29, 2005, 21:08
Конкретно по примеру ответить нечего, но если думаешь, что ето баг, напиши Троллям: qt-bugs@trolltech.com
Как оформить баг репорт есть в Асистанте  :wink:


Название: PopupMenu-сигналы c int-ом
Отправлено: MEZON от Ноябрь 30, 2005, 04:13
Попробуй посомтреть что он посылает. Он может вообще значения от -1 до -хз отсылать.


Название: PopupMenu-сигналы c int-ом
Отправлено: D_N_S от Ноябрь 30, 2005, 12:03
Смотрел - посылает мусор типа 10024947, 1023489.
Как будто в метод int идет не напрямую, а берется откуда-то из соседней памяти. Самое коварное, что вызывается!!! То есть по сигнатуре он, showDialog, узнается! а вот посылается что-то непонятное :(
Есть подозрение, что тут что-то с наследованием (класс в котором описан этот connect наследуется от того, кто наследуется от qobject). Пробовал сделать неперекрываемым showDialog ---> xxx(int) - та же беда.
Сейчас попробую отсечь родителя переместив весь код в потомка. В примерах наследования нигде не было... Потом, если не поможет - откомпилю какой-нить из примеров.

Неужели никто никогда в nix-ах с этим не сталкивался???


Название: PopupMenu-сигналы c int-ом
Отправлено: Dendy от Ноябрь 30, 2005, 12:51
Читайте об'яви, будь ласка. Яка версія Qt ?


Название: PopupMenu-сигналы c int-ом
Отправлено: D_N_S от Ноябрь 30, 2005, 13:01
freeBSD - qt3.3.3
win2k - q3.3.4


Название: PopupMenu-сигналы c int-ом
Отправлено: D_N_S от Ноябрь 30, 2005, 13:14
Финита ля комедия...
Пример (qwerty.cpp) так же благополучно неправильно получает int параметр из activated от popupMenu. Пойду всё делать по рабоче- крестьянски - без int-а. А так хорошо всё начиналось... в винде )

Всем спасибо за отклики!

P.S. Теоретически возможно виновата vmWare (в ней фря вертится), но что-то слабо верится, а ставить фрю как отдельную ОС сейчас не хочется, итак день потерял.


Название: PopupMenu-сигналы c int-ом
Отправлено: D_N_S от Ноябрь 30, 2005, 13:37
Проблема была уже в багах, но ее пофиксили. Не рецидив ли?
http://lists.trolltech.com/qt-interest/2000-04/thread00343-0.html

:))


Название: PopupMenu-сигналы c int-ом
Отправлено: Dendy от Ноябрь 30, 2005, 13:38
Остання спроба: Qt 3.3.5
Якщо ні - гоу Qt 4.x  :P


Название: PopupMenu-сигналы c int-ом
Отправлено: D_N_S от Ноябрь 30, 2005, 13:48
Цитировать
Остання спроба: Qt 3.3.5
Оно того не стоит - обойдусь (это далеко ни на одном компе придется менять).

Цитировать
Якщо ні - гоу Qt 4.x
Не пойду, тем более не стоит.