Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: blood_shadow от Октябрь 09, 2010, 14:27



Название: QToolbar
Отправлено: blood_shadow от Октябрь 09, 2010, 14:27
Добрый день.
1. Размещаю панель инструментов, которая состоит из 2 груп Одна Edit другая Exit, кнопку exitToolBar необходимо сделать с самого края справа, но получаеться что она лезет вниз вправо
Код:
editTableToolBar = addToolBar(tr("Правка"));
    editTableToolBar->addAction(addAction);
    editTableToolBar->addAction(changeAction);
    editTableToolBar->addAction(deleteAction);
    editTableToolBar->addSeparator();
    editTableToolBar->setMovable(false);

    exitToolBar = new QToolBar(tr("Выход"));
    exitToolBar->addAction(exitAction);
    addToolBar(Qt::RightToolBarArea, exitToolBar);

(http://img.pixs.ru/storage/8/4/0/toolbarJPG_6446500_1052840.jpg)
а нужно чтобы все было в одной строке

2. Почему не работает такая конструкция(вообще никакого результата):
Код:
    exitToolBar = new QToolBar(tr("Вихід"));
    exitToolBar->addAction(exitAction);
    exitToolBar->setAllowedAreas(Qt::TopToolBarArea | Qt::RightToolBarArea);
    addToolBar(exitToolBar);


Название: Re: QToolbar
Отправлено: shirushizo от Октябрь 09, 2010, 15:13
>1. Метод addToolBar(Qt::RightToolBarArea, exitToolBar); добавляет на правую панель, а не устанавливает привязку к правой границе.
>2. Метод setAllowedAreas(Qt::TopToolBarArea | Qt::RightToolBarArea) определяет в какие панели можно переместить тулбар. (по умолчания все 4, вроде).

Костыльный вариант:
   
Код:
editTableToolBar = addToolBar(tr("Правка"));
    editTableToolBar->addAction(addAction);
    editTableToolBar->addAction(changeAction);
    editTableToolBar->addAction(deleteAction);
    //editTableToolBar->addSeparator(); разделитель не нужен
    editTableToolBar->setMovable(false);
    addToolBar(Qt::TopToolBarArea, editTableToolBar);

    exitToolBar = new QToolBar(tr("Выход"));
    exitToolBar->addAction(exitAction);
    exitToolBar->setLayoutDirection(Qt::RightToLeft);
    addToolBar(Qt::TopToolBarArea, exitToolBar);

Придобавлении новых QAction в exitToolBar они будут добавляться слева от кнопки выключения, из-за setLayoutDirection(Qt::RightToLeft);


Название: Re: QToolbar
Отправлено: blood_shadow от Октябрь 09, 2010, 15:50
Придобавлении новых QAction в exitToolBar они будут добавляться слева от кнопки выключения, из-за setLayoutDirection(Qt::RightToLeft);
Ага теперь понятно спасибо  :)

Цитировать
>2. Метод setAllowedAreas(Qt::TopToolBarArea | Qt::RightToolBarArea) определяет в какие панели можно переместить тулбар. (по умолчания все 4, вроде).

Еще одно, тоесть я установил что можно пихать кнопки только вверх и справа, но не влево и вниз?


Название: Re: QToolbar
Отправлено: shirushizo от Октябрь 09, 2010, 16:52
Именно так.