Изменения координат виджетов в тулбаре |
Здравствуйте, гость ( Вход | Регистрация )
Изменения координат виджетов в тулбаре |
ruzik |
1.5.2011, 12:57
Сообщение
#11
|
Активный участник Группа: Участник Сообщений: 254 Регистрация: 23.2.2011 Из: Саратов Пользователь №: 2436 Спасибо сказали: 2 раз(а) Репутация: 0 |
Нашел класс QSpacerItem, вроде этот, в ассисте нет ни QSpacer ни Spacer, но даже если этот то как его засунуть в тулбар, пробовал и через слой тулбара и через сам тулбра(addWidget), addLayout и тп у этих виджетов вообще нет, а addWidget не работает, выдает ошибку
Ошибка 1 error C2664: QToolBar::addWidget: невозможно преобразовать параметр 1 из 'QSpacerItem *' в 'QWidget *' c:\Documents and Settings\rustam\Мои документы\Visual Studio 2008\Projects\RizekQssEditor\RizekQssEditor\rizekqsseditor.cpp 149 Сам spacer я создаю QSpacerItem * sp = new QSpacerItem(0,25); |
|
|
Litkevich Yuriy |
1.5.2011, 13:46
Сообщение
#12
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
ruzik |
1.5.2011, 14:35
Сообщение
#13
|
Активный участник Группа: Участник Сообщений: 254 Регистрация: 23.2.2011 Из: Саратов Пользователь №: 2436 Спасибо сказали: 2 раз(а) Репутация: 0 |
Как я понимаю остается 1 вариант - делать отдельным виджетом?
|
|
|
ruzik |
1.5.2011, 20:20
Сообщение
#14
|
Активный участник Группа: Участник Сообщений: 254 Регистрация: 23.2.2011 Из: Саратов Пользователь №: 2436 Спасибо сказали: 2 раз(а) Репутация: 0 |
Создал нужный виджет, при компиляции никаких ошибок не выдает, но не отображается в тулбаре
+ В классе объявляю
ну и в конструкторе
Где mainToolBar объект класса QToolBar Сообщение отредактировал ruzik - 1.5.2011, 20:20
Прикрепленные файлы
|
|
|
Litkevich Yuriy |
1.5.2011, 20:53
Сообщение
#15
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
ruzik, положи кнопки в компоновщик, задай ему поля.
П.С. В дизайнере, для каждой кнопки установи maximumSize равный нужному тебе. выдели виджет prevNext, нажми на панели инструментов "горизонтальную компоновку" В дереве объектов ещё раз выдели prevNext, прокрути свойства в самый конец, в разделе "Компоновка" (Layout) установи все поля и шаг в нуль. |
|
|
ernie |
2.5.2011, 6:24
Сообщение
#16
|
Участник Группа: Участник Сообщений: 130 Регистрация: 13.5.2010 Из: Irkutsk Пользователь №: 1712 Спасибо сказали: 11 раз(а) Репутация: 1 |
ruzik , со спэйсерами работаете так:
1.создаёте SpacerItem 2.устанавливаете ему размеры. 3.в лайауте делаете addItem |
|
|
ruzik |
2.5.2011, 14:19
Сообщение
#17
|
Активный участник Группа: Участник Сообщений: 254 Регистрация: 23.2.2011 Из: Саратов Пользователь №: 2436 Спасибо сказали: 2 раз(а) Репутация: 0 |
Ни один из способов у меня не работает, видно руки очень кривые(у меня)
Если виджетом, то в дизайнере соединил в один слой, поставил нужные максимальные размеры поставил расстояние между ними равное 0, и все отступы тоже равные 0, компилирую - опять ничего не отображается Если со spacerами, то пишу По-смыслу, тк я вставляю spacer два виджета между которыми я его вставил должны как бы разлетаться, чего не происходит, все компилируется нормально, но ноль реакции Если честно, то у меня почему-то и это не работает mainToolBar->layout()->setSpacing(100); опять же ноль реакции P.S. использую QSS на класс QToolBar и вообще на все классы в нужном тулбаре, может проблемы из-за этого Сообщение отредактировал ruzik - 2.5.2011, 20:06 |
|
|
ruzik |
2.5.2011, 20:07
Сообщение
#18
|
Активный участник Группа: Участник Сообщений: 254 Регистрация: 23.2.2011 Из: Саратов Пользователь №: 2436 Спасибо сказали: 2 раз(а) Репутация: 0 |
Вот как выглядит теперь виджет в дизайнере
Прикрепленные файлы
|
|
|
ruzik |
3.5.2011, 10:17
Сообщение
#19
|
Активный участник Группа: Участник Сообщений: 254 Регистрация: 23.2.2011 Из: Саратов Пользователь №: 2436 Спасибо сказали: 2 раз(а) Репутация: 0 |
Была еще такая идея:
Можно установить отступ между элементами как 0 а где нужно вставлять spacer нужной ширины, но к сожалению при компиляции не выскакивает никаких ошибок, но ничего не меняется - ноль реакции QSpacerItem * sp = new QSpacerItem(100,100); mainToolBar->layout()->addItem(sp); mainToolBar->layout()->setSpacing(20); Не подскажите что может быть не так? |
|
|
wiz29 |
3.5.2011, 10:22
Сообщение
#20
|
Старейший участник Группа: Участник Сообщений: 600 Регистрация: 7.7.2010 Из: Санкт-Петербург Пользователь №: 1866 Спасибо сказали: 94 раз(а) Репутация: 12 |
я делаю так:
сам виджет делаешь в QtDesigner вместе с компоновщиками и spacer'ами и не паришься |
|
|
Текстовая версия | Сейчас: 19.1.2025, 5:39 |