![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
haiflive |
![]()
Сообщение
#11
|
Студент ![]() Группа: Участник Сообщений: 37 Регистрация: 8.7.2010 Пользователь №: 1868 Спасибо сказали: 1 раз(а) Репутация: ![]() ![]() ![]() |
А деструктор зачем?. Разве MOC не берёт на себя удаление объектов?. может всётаки лучше Q_OBJECT
И интересно посмотреть, как с этим классом работать.. |
|
|
Litkevich Yuriy |
![]()
Сообщение
#12
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
haiflive |
![]()
Сообщение
#13
|
Студент ![]() Группа: Участник Сообщений: 37 Регистрация: 8.7.2010 Пользователь №: 1868 Спасибо сказали: 1 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
Litkevich Yuriy |
![]()
Сообщение
#14
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
Алексей1153 |
![]()
Сообщение
#15
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
А деструктор зачем?. Разве MOC не берёт на себя удаление объектов?. может всётаки лучше Q_OBJECT Видимо, тут ещё надо учесть то, что было передано в конструкторе - если был родитель, то вызывать delete, если не было, то не вызывать. Но тогда существует опасность работы с несуществующей уже кнопкой (класс-обёртку надо ещё как-то известить, что кнопка удалилась извне) И интересно посмотреть, как с этим классом работать.. Как работать - если нужен доступ к членам экземпляра QPushButton, то вызывается GetQPushButton()
В случаях, когда QPushButton должен быть передан как параметр, указатель и так далее (в том числе при работе с операторами), можно использоваться прямо экземпляр класса Button (см. оператор Button::operator QPushButton() ) (подправил, кстати, - убрал лишний амперсенд в типе оператора) Сообщение отредактировал Алексей1153 - 13.7.2010, 18:43 |
|
|
MoPDoBoPoT |
![]()
Сообщение
#16
|
Участник ![]() ![]() Группа: Участник Сообщений: 172 Регистрация: 7.5.2009 Из: Москва Пользователь №: 738 Спасибо сказали: 44 раз(а) Репутация: ![]() ![]() ![]() |
Видимо, тут ещё надо учесть то, что было передано в конструкторе - если был родитель, то вызывать delete, если не было, то не вызывать. Но тогда существует опасность работы с несуществующей уже кнопкой (класс-обёртку надо ещё как-то известить, что кнопка удалилась извне) Для этого есть void QObject::destroyed ( QObject * obj = 0 ) [signal] |
|
|
Алексей1153 |
![]()
Сообщение
#17
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
Ну вот, значит в классе дописать слот и связать в конструкторе с данным сигналом QPushButton. А в слоте просто обнулить указатель-мембер
|
|
|
RazrFalcon |
![]()
Сообщение
#18
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: ![]() ![]() ![]() |
Ого как тема разрасталась пока я забросил эту затею, ну вот все таки доделал то что требовалось. Выложил упрощенный вариант проги своей.
Был использован пример Calculator и переписана функция создания кнопок, может кому пригодится. PS: правда так и не смог избавится от формы, выдавалась "Ошибка вида: QWidget: Must construct a QApplication before a QPaintDevice" (название темы на форуме встречал такое же). Буду благодарен за способ ухода от форм. Так как особо навороченным интерфейсом не интересуюсь. PSS: ну а если надо совсем просто то можно и так: Правда кнопки не несут никакого действия, зато пригодилось мне для создания "неограниченного количества" QgraphicsView, очень удобно.PSS: обновил файл, переделал немного Сообщение отредактировал RazrFalcon - 17.7.2010, 19:47
Прикрепленные файлы
|
|
|
haiflive |
![]()
Сообщение
#19
|
Студент ![]() Группа: Участник Сообщений: 37 Регистрация: 8.7.2010 Пользователь №: 1868 Спасибо сказали: 1 раз(а) Репутация: ![]() ![]() ![]() |
Ну вот наконец-то я осилил пример с кнопкой..
Создаётся кнопка при нажатии на которую создаётся аналогичная(++N), и так до бесконечности.. и представляю код на ваш суд.. button.h
button.cpp
text_button.h
text_button.cpp
main.cpp
|
|
|
Litkevich Yuriy |
![]()
Сообщение
#20
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
тему разделил: Философия о Qt, STL и pragma
|
|
|
![]() ![]() ![]() |
![]() |
Текстовая версия | Сейчас: 28.2.2025, 10:06 |