Название: Что-то я в QTabWidget запутался... Отправлено: Гурман от Июль 03, 2011, 16:52 Есть такая структура:
Код: centralWidget однако все никак не получается синхронизировать изменение размеров tabWidget и вложенного в него textEdit с изменением размеров окна в коде конструктора окна, разумеется, есть Код: setCentralWidget( ui->horizontalLayoutWidget ); и listWIdget совершенно нормально себя ведет, но tabWidget почему-то нет, он не хочет меняться вместе с окном, но только почему-то по вертикали - горизонтальная нижняя граница таба не перемещается вниз за окном, при изменении по вертикали, но при изменении окна по горизонтали... таб явно меняется вместе с окном :-\ политики ресайза у второго таба обе Expanded, максимальные размеры не ограничены а если внутрь этого таба кладу textEdit, то он вообще за табом не следует, и ничего не помогает - я уже внутри таба и QHBoxLayout клал, и в него текст потом - все равно не помогает как это побороть в дизайнере, не хочется сигналы изменения размеров подключать кстати, далее табы с текстами будут добавляться динамически, и мне бы надо понять, как им при создании указывать, чтобы они все ресайзились за окном или может просто по воскресеньям работать не надо... Название: Re: Что-то я в QTabWidget запутался... Отправлено: kambala от Июль 03, 2011, 17:28 набросал в дизайнере такой же виджет - всё правильно меняется: таб 1 без лейаута - текстэдит стоит на месте, таб 2 с лейаутом - текстэдит меняется вместе с окном.
Название: Re: Что-то я в QTabWidget запутался... Отправлено: Гурман от Июль 03, 2011, 17:39 делаю так:
Код: centralWidget нифига - размер текста за окном не меняется что не так? Название: Re: Что-то я в QTabWidget запутался... Отправлено: kambala от Июль 03, 2011, 17:42 посмотри прикрепленный файл в предыдущем посте - у меня там такая же структура, может что-то подскажет.
может у табвиджета статический размер указан? выложи свой виджет если можешь. Название: Re: Что-то я в QTabWidget запутался... Отправлено: Гурман от Июль 03, 2011, 17:52 размер не статический, но я пытаюсь скомпоновать иначе
как было в втором табе скомпоновано? Название: Re: Что-то я в QTabWidget запутался... Отправлено: kambala от Июль 03, 2011, 17:54 horizontalLayout - это ж можно прямо в файле посмотреть :)
Название: Re: Что-то я в QTabWidget запутался... Отправлено: Гурман от Июль 03, 2011, 18:00 да в файле то посмотреть - как в дизайнере это было сделано? какими действиями?
и как скомпонованы левый список и табы, чтобы они менялись за окном? я для этого использую Vertical Layout или Horizontal Layout из палитры, тогда появляется horizontalLayoutWidget, который я в конструкторе окна делаю centralWidget - тогда кинутые уже в него виджеты синхронно меняются Название: Re: Что-то я в QTabWidget запутался... Отправлено: Гурман от Июль 03, 2011, 18:11 о, получилось...
если просто "компоновать" левый список и табы, то дополнительный horizontalLayoutWidget не образуется, а просто horizontalLayout не виджет, и его нельзя сделать centralWidget, чтобы его размер следил автоматом за окном поэтому приходится кидать на окно сначала horizontalLayout из палитры виджетов, и в него уже список и рядом табы и только потом в таб можно кинуть текст и скомпоновать его с табом - так работает а если попытаться в таб кинуть horizontalLayout и его скомпоновать с табом - не работает намудрили Тролли с этими компоновками... Название: Re: Что-то я в QTabWidget запутался... Отправлено: kambala от Июль 03, 2011, 18:16 "в файле" это в смысле прямо в дизайнере в окошке "инспектор объектов".
как сделал - бросил на главный виджет лист- и табвиджеты, нажал на главном виджете правой кнопкой "компоновка - по горизонтали"; далее бросил на каждый таб по текстэдиту, на второй таб нажал правой кнопкой - "компоновка - по горизонтали". к посту выше: да, именно так. а вообще лучше компоновать прямо в коде - потом быстрее перемещать/добавлять виджеты. Название: Re: Что-то я в QTabWidget запутался... Отправлено: Гурман от Июль 03, 2011, 18:23 кстати, оно то работает, но как-то немного странно - у меня скин в винде установлен нестандартный, так видно, что рисунок нижней границы таба не перемещается при изменениях размеров окна - сама граница меняется, но ее изображение все время на одном месте, под текстом
Название: Re: Что-то я в QTabWidget запутался... Отправлено: Гурман от Июль 04, 2011, 09:47 блин... а вот получить текст, связанный с табом, не выходит
добавляю таб с текстом таким образом: Код: void EditWindow::addTextTab( QString name ) пока все замечательно, текст есть, ресайзится, как надо но когда пытаюсь получить к нему доступ Код: QTextEdit* tE = qobject_cast<QTextEdit*>(ui->tabWidget->currentWidget()); банан, указатель нулевой, очевидно из-за наличия QHBoxLayout и никак не понятно, как этот указатель получить, поскольку QHBoxLayout - не QWidget Название: Re: Что-то я в QTabWidget запутался... Отправлено: Гурман от Июль 04, 2011, 10:22 и так тоже
Код: QTextEdit* tE = static_cast<QTextEdit*>(ui->tabWidget->currentWidget()); не работает, указатель не нулевой, но и не верный Название: Re: Что-то я в QTabWidget запутался... Отправлено: Гурман от Июль 04, 2011, 10:47 фух... допер наконец-то
Код: QTextEdit* tE = ui->tabWidget->currentWidget()->findChild<QTextEdit*>(); причем практически везде неправильно советуют через qobject_cast или static_cast |