Russian Qt Forum
Ноябрь 23, 2024, 06:07
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Qt Quick
(Модератор:
navrocky
) >
QDeclarativeView ресайзится в лэйауте
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: QDeclarativeView ресайзится в лэйауте (Прочитано 5456 раз)
Nimbus
Гость
QDeclarativeView ресайзится в лэйауте
«
:
Февраль 21, 2012, 13:59 »
Здравствуйте. Извиняюсь за нубский вопрос.
Проблема - у QDeclarativeView при добавлении его в любой лэйаут появляются отступы со всех сторон:
А при отображении его отдельным окном - всё как надо:
Сам QML:
Цитировать
import Qt 4.7
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)"}
}
У объекта проставлен resizeMode = QDeclarativeView::SizeViewToRootObject. Если поменять на второй - эффекта почти нет.
Вобщем, как сделать, чтобы он в лэйауте отображался с минимальным размером, учитывая, что он, возможно, будет ресайзить сам себя в будущем динамически по мере добавления контента, так что, всякие там setFixedSize тут не канают.
sizeHint() возвращает нужный размер, но вот size() - увеличен. И resize не помогает. Помогите нубу, пожалуйста!
Записан
mutineer
Гость
Re: QDeclarativeView ресайзится в лэйауте
«
Ответ #1 :
Февраль 21, 2012, 14:01 »
Сам layout добавляет отступы. Кури параметры layout - там можно поменять отступы
Записан
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5876
Жаждущий знаний
Re: QDeclarativeView ресайзится в лэйауте
«
Ответ #2 :
Февраль 21, 2012, 14:02 »
http://doc.qt.nokia.com/4.8-snapshot/qlayout.html#setContentsMargins
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Nimbus
Гость
Re: QDeclarativeView ресайзится в лэйауте
«
Ответ #3 :
Февраль 22, 2012, 04:17 »
И что?
>layout->setContentsMargins(0, 0, 0, 0);
Вы не поняли, наверное. Этот метод устанавливает отступы по бокам. А если присмотреться, то сам виджет QML'я расширен и отступы тут нипричём.
Похоже проблема не в QDeclarativeView, а в его базовом классе QGraphicsView. Пока не знаю как решить
«
Последнее редактирование: Февраль 22, 2012, 06:38 от JC
»
Записан
Bepec
Гость
Re: QDeclarativeView ресайзится в лэйауте
«
Ответ #4 :
Февраль 22, 2012, 06:57 »
Ну у вас же видно!
На первом виджете у вас стоит КНОПКА и ЛЕЙБЛ.
На втором - ЛЕЙБЛ.
Ясен пень, что компоновщик расширяет ЛЕЙБЛ. Поиграйте с Strech факторами. 0,1 должно дать нужный вам эффект.
Подтягивать виджет за вас до минимального состояния, ни один компоновщик не будет
PS данная информация не претендует на роль достоверной, но должна сработать
Записан
Nimbus
Гость
Re: QDeclarativeView ресайзится в лэйауте
«
Ответ #5 :
Февраль 22, 2012, 11:22 »
К сожалению, не принесло нужного результата
Записан
twp
Гость
Re: QDeclarativeView ресайзится в лэйауте
«
Ответ #6 :
Февраль 22, 2012, 14:26 »
ради одной строки пихать целый QDeclarativeView
Может сделать проще - все на QML или на стандартных виджетах? И раз уж нужна такая необходимость, то нужно глянуть весь код
Записан
Nimbus
Гость
Re: QDeclarativeView ресайзится в лэйауте
«
Ответ #7 :
Февраль 22, 2012, 20:02 »
Цитата: twp от Февраль 22, 2012, 14:26
ради одной строки пихать целый QDeclarativeView
Может сделать проще - все на QML или на стандартных виджетах? И раз уж нужна такая необходимость, то нужно глянуть весь код
QML нужен, ибо он будет генериться сервером на основании GET-запроса, и именно на его основании будет строиться виджеты. Хотели сначала просто чтобы JSON приходил и парсить его и на его основании создавать виджеты. Однако, зачем строить велосипеды?
И да, возможно, там будет не одна строка
«
Последнее редактирование: Февраль 22, 2012, 20:05 от JC
»
Записан
twp
Гость
Re: QDeclarativeView ресайзится в лэйауте
«
Ответ #8 :
Февраль 23, 2012, 11:21 »
ну тогда лучше все сделать на QML. Кнопку можно взять из примеров или заюзать десктопные компоненты, хотя они еще не готовы, насколько я знаю.
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...