![]() |
|
|
![]()
|
|
| N0dwis |
|
||||||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 238 Регистрация: 18.9.2007 Где: Луганск Репутация: нет Всего: 4 |
Делаю интерфейс главного окна при помощи QT. Класс такой:
Класс Ui::MainWindow сгенерирован designer-ом, вот кусок из него
Вот пример проблемного кода:
на переменную addContact выдает
а две остальные строки - без проблем! При попытке подключить слот к какому-либо сигналу addContact, выдает <unknown type>. Такая же ситуация с переменной newBase, остальные еще не проверял. Я думаю, дело в том, что компилятор не может определить тип addContact, но почему?? |
||||||||
|
|||||||||
| N0dwis |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 238 Регистрация: 18.9.2007 Где: Луганск Репутация: нет Всего: 4 |
Только что обнаружил, если класс MainFrame не наследовать от Ui::MainWindow, а объявлять поле такого типа:
то обращение
Проходит нормально. В чем же грабли с наследованием? |
||||
|
|||||
| xvr |
|
||||||||||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: нет Всего: 223 |
Функция MainFrame::addContact перебивает поле Ui::MainWindow::addContact, пиши так
|
||||||||||||
|
|||||||||||||
| N0dwis |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 238 Регистрация: 18.9.2007 Где: Луганск Репутация: нет Всего: 4 |
Спасибо, работает...
Но вот почему не со всеми переменными такой глюк?? |
|||
|
||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 7 Всего: 162 |
Это не глюк. Когда компилятора две версии того, что надо вызывать, ты обязан указать ему, из какого именно класса/пространства имён нужно вызвать функцию. |
|||
|
||||
| archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 11 Всего: 93 |
Лучше(понятнее для читающего) так:
-------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
| XavierElf |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 200 Регистрация: 24.1.2007 Где: г. Тверь Репутация: нет Всего: 1 |
А какой смысл это всё объявлять как слоты если нет сигналов с которыми их связывать? Можно объявить их просто как методы класса. А если нужно чтоб они связывались с виджетами не форме проще создать слоты:
Тогда не придётся вызывать connect(...), будет автоматически вызван метод connectSlotsByName(). ЗЫ: просто если называть методы и обекты одним именем у некоторых компиляторов возникают проблемы. Это сообщение отредактировал(а) XavierElf - 1.5.2008, 23:21 --------------------
Даешь открытые исходники! |
|||
|
||||
| N0dwis |
|
||||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 238 Регистрация: 18.9.2007 Где: Луганск Репутация: нет Всего: 4 |
Во-первых, что значит "две версии"? Эти переменные существуют в единственном экземпляре в классе-предке. Уточнение пространства имен могу понять при переопределении функции для вызова функции предка, но переменные...
Да, я потом к ним подключаю сигналы пунктов меню. За наводку спасибо, про такое я не знал.
Только дошло!!!! Как-то не обратил внимание, что дал одинаковые названия слотам и полям... Спасибо всем! |
||||||
|
|||||||
![]()
|
| Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |