crossplatform.ru

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


  Ответ в Изменения координат виджетов в тулбаре
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
ruzik Дата 3.5.2011, 17:52
  И еще раз огромное спасибо!
P.S. кстати можно и без QAction, то есть
prevNextButtons = new prevnextWidget;
mainToolBar->addWidget(prevNextButtons);
wiz29 Дата 3.5.2011, 17:03
  если ты внимательно посмотришь в QtDesigner на виджет prevnextWidget.ui, то в том проекте, который выложил я, имеется компоновщик для всего виджета, у тебя был компоновщик только для 2х кнопок, этого не достаточно. В моем примере компоновщик кнопок, встроен в компоновщик для всего виджета, разница только в этой неприятной мелочи:)
ruzik Дата 3.5.2011, 16:52
  Еще раз раз огромное спасибо за помощь и объясните пожалуйста по-конкретнее в чем отличие вашего файла формы от моего
ruzik Дата 3.5.2011, 14:51
  Спасибо большое!!
wiz29 Дата 3.5.2011, 14:40
  Вот код, ты используешь наследование от UI классав, поэтому компилер выдавал ошибки, ну и не используешь компоновщики, поэтому на тулбаре бы ничего не смог увидеть, если бы даже все добавилось.

не забывай прикреплять файлы проекта к своим исходникам
ruzik Дата 3.5.2011, 13:52
  Может я чего-то недопонимаю(не может а точно), но все наперекосяк, вот аналог того что я делаю, помогите пожалуйста
wiz29 Дата 3.5.2011, 11:24
 
Цитата(ruzik @ 3.5.2011, 12:17) *
Где mainToolBar - главный тулбар, объявлен программно


//это не реальный класс
class MyMainWindow : public QMainWindow
{
  private:
    Ui::ToolBarWidget m_toolBar;    
};
....................................................
QWidget* pToolBarWidget = new QWidget;
//m_toolBar - объект ui
//Ui::ToolBarWidget - это получаешь в дизайнере и создаешь объект в нужном классе.
m_toolBar.setupUi(pToolBarWidget);
QAction* pAction;
pAction = mainToolBar->addWidget(pToolBarWidget);
pAction->setVisible(true);

ruzik Дата 3.5.2011, 11:17
  Не могли бы вы выложить пример, а то вот что у меня получилось
prevNextButtons = new prevnextWidget;
    mainToolBar->setupUi(prevNextButtons);
    QAction* pAction;
    pAction = mainToolBar->addWidget(prevNextButtons);
    pAction->setVisible(true);

Где mainToolBar - главный тулбар, объявлен программно
prevNextWidget это и есть нужный виджет, он сделан в дизайнере http://www.forum.crossplatform.ru/index.ph...ost&id=1370
И пишет
Ошибка 1 error C2039: setupUi: не является членом "QToolBar" c:\Documents and Settings\rustam\Мои документы\Visual Studio 2008\Projects\RizekQssEditor\RizekQssEditor\rizekqsseditor.cpp 192
Извините за то что так много спрашиваю, просто я еще совсем зеленый в Qt, заранее огромное спасибо!
wiz29 Дата 3.5.2011, 10:22
  я делаю так:
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'ами и не паришься:)
ruzik Дата 3.5.2011, 10:17
  Была еще такая идея:
Можно установить отступ между элементами как 0 а где нужно вставлять spacer нужной ширины, но к сожалению при компиляции не выскакивает никаких ошибок, но ничего не меняется - ноль реакции
QSpacerItem * sp = new QSpacerItem(100,100);
mainToolBar->layout()->addItem(sp);
mainToolBar->layout()->setSpacing(20);
Не подскажите что может быть не так?
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 29.3.2024, 14:54