Russian Qt Forum
Апрель 27, 2024, 19:59 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: PopupMenu-сигналы c int-ом  (Прочитано 6087 раз)
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?

Заранее благодарю за ответ!
Записан
Dendy
Гость
« Ответ #1 : Ноябрь 29, 2005, 21:08 »

Конкретно по примеру ответить нечего, но если думаешь, что ето баг, напиши Троллям: qt-bugs@trolltech.com
Как оформить баг репорт есть в Асистанте  :wink:
Записан
MEZON
Гость
« Ответ #2 : Ноябрь 30, 2005, 04:13 »

Попробуй посомтреть что он посылает. Он может вообще значения от -1 до -хз отсылать.
Записан
D_N_S
Гость
« Ответ #3 : Ноябрь 30, 2005, 12:03 »

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

Неужели никто никогда в nix-ах с этим не сталкивался???
Записан
Dendy
Гость
« Ответ #4 : Ноябрь 30, 2005, 12:51 »

Читайте об'яви, будь ласка. Яка версія Qt ?
Записан
D_N_S
Гость
« Ответ #5 : Ноябрь 30, 2005, 13:01 »

freeBSD - qt3.3.3
win2k - q3.3.4
Записан
D_N_S
Гость
« Ответ #6 : Ноябрь 30, 2005, 13:14 »

Финита ля комедия...
Пример (qwerty.cpp) так же благополучно неправильно получает int параметр из activated от popupMenu. Пойду всё делать по рабоче- крестьянски - без int-а. А так хорошо всё начиналось... в винде )

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

P.S. Теоретически возможно виновата vmWare (в ней фря вертится), но что-то слабо верится, а ставить фрю как отдельную ОС сейчас не хочется, итак день потерял.
Записан
D_N_S
Гость
« Ответ #7 : Ноябрь 30, 2005, 13:37 »

Проблема была уже в багах, но ее пофиксили. Не рецидив ли?
http://lists.trolltech.com/qt-interest/2000-04/thread00343-0.html

Улыбающийся)
Записан
Dendy
Гость
« Ответ #8 : Ноябрь 30, 2005, 13:38 »

Остання спроба: Qt 3.3.5
Якщо ні - гоу Qt 4.x  Показает язык
Записан
D_N_S
Гость
« Ответ #9 : Ноябрь 30, 2005, 13:48 »

Цитировать
Остання спроба: Qt 3.3.5
Оно того не стоит - обойдусь (это далеко ни на одном компе придется менять).

Цитировать
Якщо ні - гоу Qt 4.x
Не пойду, тем более не стоит.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.049 секунд. Запросов: 20.