Russian Qt Forum
Ноябрь 26, 2024, 13:34 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: как правильно подключить созданный класс с toolbar-ом??  (Прочитано 5131 раз)
helga1917
Гость
« : Август 08, 2013, 09:50 »

Создаю класс с toolbar-ом, но его надо как-то правильно вызвать, чтобы в окне появился toolbar.

Заголовочник окна:
list.h:
Код:
#ifndef TOOL3
#define TOOL3

#include <QWidget>
#include <QMainWindow>
#include <QToolbar>
#include <QtGui>

class Window : public QWidget
{
           Q_OBJECT
public:
         Window();
};
#endif

Заголовочник класса с toolbar-ом:
toolbar.h:
Код:
#ifndef TOOLBAR3
#define TOOLBAR3

#include <QMainWindow>
#include <QToolbar>
#include <QtGui>
 
class toolbar : public QMainWindow
{
public:
       toolbar (QWidget*);
       QToolBar *M_CreateToolBar(void);
public slots:
       void slotNoImpl ();
};
#endif

list.cpp:
Код:
#include <QMainWindow>
#include <QToolbar>
#include <QtGui>
#include <QWidget>
#include "list.h"
#include "toolbar.h"

Window::Window()
{
setWindowTitle(tr("MyApp"));
resize (200, 250);
}

класс toolbar:
toolbar.cpp:
Код:
#include <QMainWindow>
#include <QToolbar>
#include <QtGui>
#include "toolbar.h"

toolbar::toolbar (QWidget *parent=0) : QMainWindow(parent)
{
addToolBar (Qt::TopToolBarArea, M_CreateToolBar (void)
{
                QToolBar* ToolBar = new QToolBar ("LinkedToolBar");
                Toolbar->addAction(QPixmap("C:/1. png"), QObject::tr("message"),this, SLOT(slotNoImpl()));
                Toolbar->addAction(QPixmap("C:/2. png"), QObject::tr("message"),this, SLOT(slotNoImpl()));
                 return ToolBar;
}
void toolbar::slotNoImpl()
{
QMessegeBox::information (0, "Message", "Not impl");
}

main.cpp:
Код:
#include <QtGui>
#include "list.h"
#include "toolbar.h"

int main (int argc, char* argv[])
{
    QApplication app (argc, argv);
    Window window;

                              //вот здесь наверно как-то правильно надо вызвать класс toolbar                               

    window.show;

   return app.exec();
}
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #1 : Август 08, 2013, 10:13 »

Цитировать
class toolbar : public QMainWindow
Извиняюсь, вы извращенка?
Записан

Qt 5.11/4.8.7 (X11/Win)
mutineer
Гость
« Ответ #2 : Август 08, 2013, 10:14 »

Код
C++ (Qt)
toolbar::toolbar (QWidget *parent=0) : QMainWindow(parent)
{
addToolBar (Qt::TopToolBarArea, M_CreateToolBar (void)
{
               QToolBar* ToolBar = new QToolBar ("LinkedToolBar");
               Toolbar->addAction(QPixmap("C:/1. png"), QObject::tr("message"),this, SLOT(slotNoImpl()));
               Toolbar->addAction(QPixmap("C:/2. png"), QObject::tr("message"),this, SLOT(slotNoImpl()));
                return ToolBar;
}
 

Что это должно значить?
Записан
helga1917
Гость
« Ответ #3 : Август 08, 2013, 10:28 »

Цитировать
class toolbar : public QMainWindow
Извиняюсь, вы извращенка?

так не от QMainWindow  надо наследовать?? наследовала от QToolBar - выдает ошибку
Записан
helga1917
Гость
« Ответ #4 : Август 08, 2013, 10:33 »



Извините, тут опечатка, правильно так:
Код:
#include <QMainWindow>
#include <QToolbar>
#include <QtGui>
#include "toolbar.h"

toolbar::toolbar (QWidget *parent=0) : QMainWindow(parent)
{
addToolBar (Qt::TopToolBarArea, M_CreateToolBar ());
}
           QToolbar* toolbar::M_CreateToolBar(void)
{

                QToolBar* ToolBar = new QToolBar ("LinkedToolBar");
                Toolbar->addAction(QPixmap("C:/1. png"), QObject::tr("message"),this, SLOT(slotNoImpl()));
                Toolbar->addAction(QPixmap("C:/2. png"), QObject::tr("message"),this, SLOT(slotNoImpl()));
                 return ToolBar;
}
void toolbar::slotNoImpl()
{
QMessegeBox::information (0, "Message", "Not impl");
}
Записан
mutineer
Гость
« Ответ #5 : Август 08, 2013, 10:34 »

Еще большее извращение - зачем наследоваться от QMainWindow, если единственное предназначение класса - создать тулбар и вернуть его?
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #6 : Август 08, 2013, 10:36 »

Судя по вашим многочисленным постам, у вас, как минимум, отсутствуют базовые знания ООП по наследованию и агрегированию.
В данном случае нужно определиться и выбрать одно, а не смешивать оба.
« Последнее редактирование: Август 08, 2013, 10:38 от GreatSnake » Записан

Qt 5.11/4.8.7 (X11/Win)
helga1917
Гость
« Ответ #7 : Август 08, 2013, 10:39 »

Да нужно только собрать тулбар и вернуть его.


Учусь помаленьку, а как можно учиться не совершая ошибок.
Записан
mutineer
Гость
« Ответ #8 : Август 08, 2013, 10:40 »

Начиная с теории можно избежать базовых ошибок))
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #9 : Август 08, 2013, 10:44 »

Да нужно только собрать тулбар и вернуть его.
Тогда просто создайте QToolBar и добавьте его через QMainWindow::addToolBar().
Зачем так всё усложнять Непонимающий
Записан

Qt 5.11/4.8.7 (X11/Win)
mutineer
Гость
« Ответ #10 : Август 08, 2013, 10:51 »

Код
C++ (Qt)
int main (int argc, char* argv[])
{
   QApplication app (argc, argv);
   QMainWindow window;  
   window.addToolBar(Qt::TopToolBarArea, new QToolBar ("LinkedToolBar"));
 
   window.show();
 
  return app.exec();
}
 
Записан
helga1917
Гость
« Ответ #11 : Август 08, 2013, 11:53 »

Спасибо, разберусь
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.271 секунд. Запросов: 23.