Непонимаю, что я неточно делаю, что получается вот такая ерунда:
[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);
}
Ау. Поможете?
Может стоит просто откомпоновать тулбар через лайоты?
Сильно подозреваю, что автокрепежка и автовыравнивание тулюаров реализованно только для 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);
addIconToolbar();
reliefDisplay -> addToolBar(Qt::LeftToolBarArea, toolBar);
reliefDisplay -> setVisible(true);
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, this);
text = "Repair";
QAction* repair_action = new QAction(QIcon("./Images/repair.png"), text, this);
toolBar -> addAction(save_action);
toolBar -> addAction(repair_action);
}
class Ui_VerticalGraphicClass
{
public:
QGridLayout *gridLayout;
QMainWindow *reliefDisplay;
public:
void setupUi(QDockWidget *ReliefClass); // setupUi
void retranslateUi(QDockWidget *ReliefClass); // retranslateUi
};
namespace Ui
{
class VerticalGraphicClass: public Ui_VerticalGraphicClass {};
} // namespace Ui
нарисуй, че убрать хочешь..
короче весь вопрос в том как присобачить тулбар на доковое окошко?
блин, меню туда побыстрому присобачить неудалось. а так работает...
проект на всяк присобачиваю..
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);
}
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)