![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
LE0N |
![]()
Сообщение
#1
|
Студент ![]() Группа: Участник Сообщений: 97 Регистрация: 10.3.2009 Из: Беларусь Пользователь №: 604 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Имеется форма, в которой разный функционал, но одинаковый интерфейс(GUI).
Хотелось бы эту форму использывать в двух разных классах отнаследованных от QDialog.... Прикрутил ui_form.h к хиадеру с новым ребёнком QDalog, форма всё нормально отображается. Но вот слоты, почему то, не работают.(Они подключаются в ui_form.h ) Ругается примерно так: Цитата Object::connect: No such slot QDialog::select_product_type(int) in ui_shipmentform.h:77 Object::connect: (sender name: 'comboBox') Object::connect: (receiver name: 'ShipmentFormClass') Хотя слот объявлен.... Во второй форме, где тоже объявлен этот слот, всё работает на 5+. В чём проблема? Сообщение отредактировал LE0N - 27.3.2009, 12:42 |
|
|
![]() |
Litkevich Yuriy |
![]()
Сообщение
#2
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
Цитата(igor_bogomolov @ 28.3.2009, 6:04) Link new_testClass->myslot(); все верно, т.к. new_testClass указатель на базовый класс, в котором нет такой функции. А в наследнике есть.Естественно получил ошибку при компиляции, потому что new_testClass указатель на QDialog, и о myslot() ему ничего неизвестно. И соединение Qt выполняет во время выполнения программы, когда этот указатель, если програмист всё сделал правильно, будет указывать на объект-наследник QDialog распологающий этой функцией. Если она помечена как слот (нужен: макрос Q_OBJECT и ключевое слово slots), то во время выполнения Qt сможет произвести соединение. |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 26.8.2025, 4:23 |