crossplatform.ru

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

> Панель инструментов в прикрепляемом окне, QToolBar in QDockWidget
AD
  опции профиля:
сообщение 2.10.2008, 10:53
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


Непонимаю, что я неточно делаю, что получается вот такая ерунда:
[attachment=263:test_picture.JPG]

Вот код создания панельки инструментов.
ReliefGraphics::ReliefGraphics(QWidget *parent): toolBar(0), settings(0)
{
    toolBar = new QToolBar(this);
    toolBar -> setObjectName(QString::fromUtf8("toolBar"));
    toolBar -> setOrientation(Qt::Vertical);
    toolBar -> setToolButtonStyle(Qt::ToolButtonIconOnly);
    toolBar -> setAllowedAreas(Qt::LeftToolBarArea);

    settings = new PlotSettings();
    addIconToolbar();
}

ReliefGraphics::~ReliefGraphics()
{
    if(toolBar) delete toolBar;
    if(settings) delete settings;
}

/// Добавление иконок в панель инструментов
void ReliefGraphics::addIconToolbar()
{
    QString text = "Save";
    toolBar -> addAction(QIcon("./Images/save.png"), text);

    text = "Repair";
    toolBar -> addAction(QIcon("./Images/repair.png"), text);
}


Ну что я не так-то делаю???
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
trdm
  опции профиля:
сообщение 2.10.2008, 16:27
Сообщение #2


Дмитрий Трошин
****

Группа: Участник
Сообщений: 575
Регистрация: 12.1.2008
Пользователь №: 68

Спасибо сказали: 21 раз(а)




Репутация:   6  


блин, меню туда побыстрому присобачить неудалось. а так работает...
проект на всяк присобачиваю..

Сообщение отредактировал trdm - 2.10.2008, 16:30
Прикрепленные файлы
Прикрепленный файл  dockwidgets.zip ( 14.85 килобайт ) Кол-во скачиваний: 99
 
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 2.10.2008, 17:07
Сообщение #3


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


Цитата(trdm)
блин, меню туда побыстрому присобачить неудалось. а так работает...
проект на всяк присобачиваю..

Благодаря данному примеру у меня получилось сделать и с QMainWindow! :) Большое спасибо! :) Нашел ошибку в своем предыдущем коде, поправил и все заработало. Эврика.
Итак, вывод - проблему можно решить 2 способами, через QFrame с QLayout или через QMainWindow.

Вот правильный код решения данной проблемы
ReliefGraphics::ReliefGraphics(QWidget *parent): toolBar(0), settings(0)
{
    setupUi(this);

    toolBar = new QToolBar(reliefDisplay);
    toolBar -> setObjectName(QString::fromUtf8("toolBar"));
    toolBar -> setToolButtonStyle(Qt::ToolButtonIconOnly);
    toolBar -> setOrientation(Qt::Vertical);
    toolBar -> setAllowedAreas(Qt::LeftToolBarArea | Qt::RightToolBarArea);
    toolBar -> setVisible(true);
    addIconToolbar();
    reliefDisplay -> addToolBar(Qt::LeftToolBarArea, toolBar);
    setWidget(reliefDisplay);

    settings = new PlotSettings();
}

ReliefGraphics::~ReliefGraphics()
{
    if(toolBar) delete toolBar;
    if(settings) delete settings;
}

/// Добавление иконок в панель инструментов
void ReliefGraphics::addIconToolbar()
{
    QString text = "Save";
    QAction* save_action = new QAction(QIcon("./Images/save.png"), text, reliefDisplay);
    text = "Repair";
    QAction* repair_action = new QAction(QIcon("./Images/repair.png"), text, reliefDisplay);

    toolBar -> addAction(save_action);
    toolBar -> addAction(repair_action);
}


QAction* save_action = new QAction(QIcon("./Images/save.png"), text, reliefDisplay); - вот строка, где кроилась ошибка. До этого у меня последним параметром был this!!!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


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




RSS Текстовая версия Сейчас: 27.4.2024, 17:27