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