Название: QStackedWidget Отправлено: alexlogvinenkoit от Октябрь 13, 2011, 12:45 Доброе время суток!
Сразу к делу: есть в программе 1 класс, наследующийся от QStackedWidget, есть 15 классов, наследующихся от QWidget... Потом, естественно, в классе, наследующимся от QStackedWidget созданы объекты этих классов и добавлены в него... Так вот, как можно сделать так, чтобы можно было вызывать метод QStackedWidget::setCurrentIndex(int index) из этих 15-ти классов? Заранее спасибо! Название: Re: QStackedWidget Отправлено: GreatSnake от Октябрь 13, 2011, 12:49 Код
Название: Re: QStackedWidget Отправлено: alexlogvinenkoit от Октябрь 13, 2011, 13:16 Не сработало...
Название: Re: QStackedWidget Отправлено: GreatSnake от Октябрь 13, 2011, 13:20 Не сработало... Показывай код.Название: Re: QStackedWidget Отправлено: Bepec от Октябрь 13, 2011, 13:23 GreatSnake не посмотрите темку?
http://www.prog.org.ru/topic_19684_0.html Название: Re: QStackedWidget Отправлено: alexlogvinenkoit от Октябрь 13, 2011, 13:45 Код: class WidgetStacked : public QStackedWidget Код: class WidgetOpenEnter : public QWidget Название: Re: QStackedWidget Отправлено: GreatSnake от Октябрь 13, 2011, 14:00 Не вижу добавления >1 виджета на QStackedWidget.
Попробуй так: Код
PS. здесь теги поддерживаются только в [] Название: Re: QStackedWidget Отправлено: alexlogvinenkoit от Октябрь 13, 2011, 14:10 Спасибо, я придумал иначе, в конструктор виджетов добавляю указатель на QStackedWidget и при создании объектов в конструкторе QStackedWidget - передаю параметром this...
Код: class Widget : public QWidget Или лучше использовать Ваш вариант? Название: Re: QStackedWidget Отправлено: Пантер от Октябрь 13, 2011, 14:12 Зачем передавать QStackedWidget, если и так есть parent?
Название: Re: QStackedWidget Отправлено: alexlogvinenkoit от Октябрь 13, 2011, 14:15 Так parent - это QWidget, у него нет методов QStackedWidget, только приводить к типу...
А можно наследоваться от QWidget, а принимать в качестве parent - QStackedWidget? Название: Re: QStackedWidget Отправлено: Пантер от Октябрь 13, 2011, 14:19 У QStackedWidget есть слот setCurrentIndex, лучше пусть твои классы испускают сигнал, который ты завяжешь на этот слот.
Название: Re: QStackedWidget Отправлено: alexlogvinenkoit от Октябрь 13, 2011, 14:22 Супер!
Как испустить сигнал? Я разобрался только как привязать сигнал к слоту... Название: Re: QStackedWidget Отправлено: Пантер от Октябрь 13, 2011, 14:38 emit signalName (signalParameters);
Название: Re: QStackedWidget Отправлено: alexlogvinenkoit от Октябрь 13, 2011, 14:39 Спасибо :)
Название: Re: QStackedWidget Отправлено: alexlogvinenkoit от Октябрь 13, 2011, 14:48 GreatSnake, о Вашем преобразовании (qobject_cast<QStackedWidget *>(parentWidget())->setCurrentIndex(...))
Код: ((QStackedWidget *)this->parentWidget())->setCurrentIndex(...); Название: Re: QStackedWidget Отправлено: alexlogvinenkoit от Октябрь 13, 2011, 14:56 И еще вопрос... Теперь нужно сделать то же самое, только использовать в функции потока (не Qt, а pthread_t)...
Есть такое: Код:
Так не получается... Переменная видит только дочерние виджеты, больше ничего... Можно что-то придумать? Название: Re: QStackedWidget Отправлено: Пантер от Октябрь 13, 2011, 15:17 Не нужно использовать сишный каст, используй qobject_cast.
|