Название: Как сделать переключение виджетов-слайдов? Отправлено: piro1107 от Апрель 15, 2015, 12:34 Уважаемые форумчане, помогите с одним делом. Я делаю что-то типа презентации и хочу переключать свои слайды-виджеты. При этом на каждом таком слайде определён сигнал, который привязан к виждету презентации. Собственно код:
Интерфейсов классов: Код: #include <QtCore> Реализации: Код: One::One(QWidget *parent) А теперь вопрос: почему при смене слайда рисовка старого остаётся? Название: Re: Как сделать переключение виджетов-слайдов? Отправлено: gil9red от Апрель 15, 2015, 12:37 Советую воспользоваться классом QStackedWidget (http://doc.qt.io/qt-4.8/qstackedwidget.html);)
Название: Re: Как сделать переключение виджетов-слайдов? Отправлено: piro1107 от Апрель 15, 2015, 14:31 Советую воспользоваться классом QStackedWidget (http://doc.qt.io/qt-4.8/qstackedwidget.html);) Я знаю про этот виджет, но я решил написать свой велосипед. Чтобы, если условия задачи изменятся и по определённому сигналу из слайда я смог перейти на другой слайд. Самый близкий пример - игра. 3 слайда: сама игра, настройки, меню новой игры. Даже если гибкость не нужна, то непонятно почему виджет презентации не перерисовывает себя, а накладывает изображение? Просто интересно. Название: Re: Как сделать переключение виджетов-слайдов? Отправлено: gil9red от Апрель 15, 2015, 14:41 А зачем вы вызываете перерисовку?
Этим виджеты сами занимаются вы ведь не переопределяете paintEvent и не отрисовываете все вручную... Скрывайте и показывайте виджеты-слайды Используйте также для кнопок сигнал clicked (http://doc.qt.io/qt-4.8/qabstractbutton.html#clicked) Также для Код
можно обойтись без слота и сразу же вызывать сигнал: QObject::connect(btn, SIGNAL(released()), this, SIGNAL(turn())); Название: Re: Как сделать переключение виджетов-слайдов? Отправлено: piro1107 от Апрель 15, 2015, 22:12 А зачем вы вызываете перерисовку? Этим виджеты сами занимаются вы ведь не переопределяете paintEvent и не отрисовываете все вручную... Скрывайте и показывайте виджеты-слайды Используйте также для кнопок сигнал clicked (http://doc.qt.io/qt-4.8/qabstractbutton.html#clicked) Также для Код
можно обойтись без слота и сразу же вызывать сигнал: QObject::connect(btn, SIGNAL(released()), this, SIGNAL(turn())); Как я понял вы предлагаете сделать виджет презентацию как слой с набором виждетов, а потом их просто по очереди показывать? Всё остальное я знал. Просто тренируюсь и пишу белеберду. |