Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: daenux от Февраль 20, 2011, 16:53



Название: Олинаковые указатели связанные с несколькими вкладками объекта класса QTabWidget
Отправлено: daenux от Февраль 20, 2011, 16:53
Добрый вечер господа! :)

Есть условие: "Использовать только QTabWidget";

И мне надо, что бы в нескольких вкладках объекта класса QTabWidget отображался один и тот же объект, т.е.:
Код:
ClassObject *cObject = new ClassObject();
QTabWidget *qTabWidget = new QTabWidget();
qTabWidget->addTab(cObject, "1");
qTabWidget->addTab(cObject, "2");
qTabWidget->addTab(cObject, "3");

Как добиться подобного результата?


Название: Re: Олинаковые указатели связанные с несколькими вкладками объекта класса QTabWidget
Отправлено: BRE от Февраль 20, 2011, 17:28
Как добиться подобного результата?
IMHO, никак.
При добавлении виджета на закладку, эта закладка назначается ему в качестве parent.
У виджета может быть только один родитель.

Расскажи чего ты хочешь добиться, может есть другой путь.


Название: Re: Олинаковые указатели связанные с нескол&#
Отправлено: daenux от Февраль 20, 2011, 17:32
Да я просто балуюсь...

Можно и QTabBar использовать, но мне его название не нравиться...

А обходного путя нет?


Название: Re: Олинаковые указатели связанные с нескол&#
Отправлено: BRE от Февраль 20, 2011, 17:34
А обходного путя нет?
Смотря куда он должен вывести.  :)

Код
C++ (Qt)
QTabWidget *qTabWidget = new QTabWidget();
qTabWidget->addTab(new ClassObject(), "1");
qTabWidget->addTab(new ClassObject(), "2");
qTabWidget->addTab(new ClassObject(), "3");
 


Название: Re: Олинаковые указатели связанные с нескол&#
Отправлено: daenux от Февраль 20, 2011, 17:36
В таком случае, можно ли получить доступ из QTabWidget к определенному объекту ClassObject с возможностью редактирования его свойств?


Название: Re: Олинаковые указатели связанные с нескол&#
Отправлено: daenux от Февраль 20, 2011, 17:37
А то метод QTabWidget::widget() - константный...


Название: Re: Олинаковые указатели связанные с несколькими вкладками объекта класса QTabWidget
Отправлено: daenux от Февраль 20, 2011, 17:43
BRE - спасибо большое, я тогда в векторе создам ClassObject и потом отправлять буду в QTabWidget... :)


Название: Re: Олинаковые указатели связанные с нескол&#
Отправлено: Kolobok от Февраль 20, 2011, 18:21
А то метод QTabWidget::widget() - константный...

чем это тебя смущает?


Название: Re: Олинаковые указатели связанные с нескол&#
Отправлено: daenux от Февраль 20, 2011, 23:23
Kolobok - да нет, все правильно - просто если бы этот метод был бы не константным, я этим воспользовался бы... :)


Название: Re: Олинаковые указатели связанные с нескол&#
Отправлено: BRE от Февраль 20, 2011, 23:27
Kolobok - да нет, все правильно - просто если бы этот метод был бы не константным, я этим воспользовался бы... :)
Ну так и воспользуйся.
Не забудь только привести QWidget к ClassObject (обрати внимание на qobject_cast<T>(...))


Название: Re: Олинаковые указатели связанные с нескол&#
Отправлено: SimpleSunny от Февраль 20, 2011, 23:47
Kolobok - да нет, все правильно - просто если бы этот метод был бы не константным, я этим воспользовался бы... :)

Метод константный,так как не изменяет внутреннее состояние объекта, но возвращает полноценный, а не константный, указатель.