Название: QDeclarativeView ресайзится в лэйауте Отправлено: Nimbus от Февраль 21, 2012, 13:59 Здравствуйте. Извиняюсь за нубский вопрос.
Проблема - у QDeclarativeView при добавлении его в любой лэйаут появляются отступы со всех сторон: (http://s017.radikal.ru/i418/1202/dd/aa6eb04c1d2d.png) А при отображении его отдельным окном - всё как надо: (http://s59.radikal.ru/i165/1202/66/15e576d1c333.png) Сам QML: Цитировать import Qt 4.7 У объекта проставлен resizeMode = QDeclarativeView::SizeViewToRootObject. Если поменять на второй - эффекта почти нет.Row { anchors.fill: parent Image { source: "http://4geo.ru/webservices/i/icon_page_comments.png" } Text { text: "Отзывы" MouseArea { anchors.fill: parent onClicked: { } } color: "#006ec1" } Text { text: "(3)"} } Вобщем, как сделать, чтобы он в лэйауте отображался с минимальным размером, учитывая, что он, возможно, будет ресайзить сам себя в будущем динамически по мере добавления контента, так что, всякие там setFixedSize тут не канают. sizeHint() возвращает нужный размер, но вот size() - увеличен. И resize не помогает. Помогите нубу, пожалуйста! Название: Re: QDeclarativeView ресайзится в лэйауте Отправлено: mutineer от Февраль 21, 2012, 14:01 Сам layout добавляет отступы. Кури параметры layout - там можно поменять отступы
Название: Re: QDeclarativeView ресайзится в лэйауте Отправлено: Пантер от Февраль 21, 2012, 14:02 http://doc.qt.nokia.com/4.8-snapshot/qlayout.html#setContentsMargins
Название: Re: QDeclarativeView ресайзится в лэйауте Отправлено: Nimbus от Февраль 22, 2012, 04:17 И что?
>layout->setContentsMargins(0, 0, 0, 0); (http://i031.radikal.ru/1202/21/b65f6912de5f.png) Вы не поняли, наверное. Этот метод устанавливает отступы по бокам. А если присмотреться, то сам виджет QML'я расширен и отступы тут нипричём. Похоже проблема не в QDeclarativeView, а в его базовом классе QGraphicsView. Пока не знаю как решить Название: Re: QDeclarativeView ресайзится в лэйауте Отправлено: Bepec от Февраль 22, 2012, 06:57 Ну у вас же видно!
На первом виджете у вас стоит КНОПКА и ЛЕЙБЛ. На втором - ЛЕЙБЛ. Ясен пень, что компоновщик расширяет ЛЕЙБЛ. Поиграйте с Strech факторами. 0,1 должно дать нужный вам эффект. Подтягивать виджет за вас до минимального состояния, ни один компоновщик не будет ;) PS данная информация не претендует на роль достоверной, но должна сработать :D Название: Re: QDeclarativeView ресайзится в лэйауте Отправлено: Nimbus от Февраль 22, 2012, 11:22 К сожалению, не принесло нужного результата
Название: Re: QDeclarativeView ресайзится в лэйауте Отправлено: twp от Февраль 22, 2012, 14:26 ради одной строки пихать целый QDeclarativeView :o Может сделать проще - все на QML или на стандартных виджетах? И раз уж нужна такая необходимость, то нужно глянуть весь код
Название: Re: QDeclarativeView ресайзится в лэйауте Отправлено: Nimbus от Февраль 22, 2012, 20:02 ради одной строки пихать целый QDeclarativeView :o Может сделать проще - все на QML или на стандартных виджетах? И раз уж нужна такая необходимость, то нужно глянуть весь код QML нужен, ибо он будет генериться сервером на основании GET-запроса, и именно на его основании будет строиться виджеты. Хотели сначала просто чтобы JSON приходил и парсить его и на его основании создавать виджеты. Однако, зачем строить велосипеды? И да, возможно, там будет не одна строка :) Название: Re: QDeclarativeView ресайзится в лэйауте Отправлено: twp от Февраль 23, 2012, 11:21 ну тогда лучше все сделать на QML. Кнопку можно взять из примеров или заюзать десктопные компоненты, хотя они еще не готовы, насколько я знаю.
|