crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

3 страниц V  < 1 2 3 >  
Ответить в данную темуНачать новую тему
> Изменения координат виджетов в тулбаре
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, 15:57) *
через слой
слово Layout ни когда не переводится как Слой
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
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  


Создал нужный виджет, при компиляции никаких ошибок не выдает, но не отображается в тулбаре
+
В классе объявляю
prevnextWidget * prevNextButtons;

ну и в конструкторе
    prevNextButtons = new prevnextWidget;
    mainToolBar->addWidget(prevNextButtons);

Где mainToolBar объект класса QToolBar

Сообщение отредактировал ruzik - 1.5.2011, 20:20
Прикрепленные файлы
Прикрепленный файл  prevnextWidget.zip ( 1.46 килобайт ) Кол-во скачиваний: 79
 
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
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ами, то пишу
    QSpacerItem * sp = new QSpacerItem(100,100);
    mainToolBar->layout()->addItem(sp);

По-смыслу, тк я вставляю 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  


Вот как выглядит теперь виджет в дизайнере

Прикрепленные файлы
Прикрепленный файл  prevnextWidget.zip ( 544 байт ) Кол-во скачиваний: 149
 
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
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  


я делаю так:
m_pToolBar = new QToolBar(0);
QWidget* pToolBarWidget(new QWidget);
m_toolBar.setupUi(pToolBarWidget);
QAction* pAction;
pAction = m_pToolBar->addWidget(pToolBarWidget);
pAction->setVisible(true);


сам виджет делаешь в QtDesigner вместе с компоновщиками и spacer'ами и не паришься:)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

3 страниц V  < 1 2 3 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 29.3.2024, 10:14