Russian Qt Forum

Qt => Вопросы новичков => Тема начата: helga1917 от Август 08, 2013, 09:50



Название: как правильно подключить созданный класс с toolbar-ом??
Отправлено: 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();
}


Название: Re: как правильно подключить созданный класс с toolbar-ом??
Отправлено: GreatSnake от Август 08, 2013, 10:13
Цитировать
class toolbar : public QMainWindow
Извиняюсь, вы извращенка?


Название: Re: как правильно подключить созданный класс с toolbar-ом??
Отправлено: mutineer от Август 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;
}
 

Что это должно значить?


Название: Re: как правильно подключить созданный класс с toolbar-ом??
Отправлено: helga1917 от Август 08, 2013, 10:28
Цитировать
class toolbar : public QMainWindow
Извиняюсь, вы извращенка?

так не от QMainWindow  надо наследовать?? наследовала от QToolBar - выдает ошибку


Название: Re: как правильно подключить созданный класс с toolbar-ом??
Отправлено: helga1917 от Август 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");
}


Название: Re: как правильно подключить созданный класс с toolbar-ом??
Отправлено: mutineer от Август 08, 2013, 10:34
Еще большее извращение - зачем наследоваться от QMainWindow, если единственное предназначение класса - создать тулбар и вернуть его?


Название: Re: как правильно подключить созданный класс с toolbar-ом??
Отправлено: GreatSnake от Август 08, 2013, 10:36
Судя по вашим многочисленным постам, у вас, как минимум, отсутствуют базовые знания ООП (http://ru.wikipedia.org/wiki/%D0%9E%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%BD%D0%BE-%D0%BE%D1%80%D0%B8%D0%B5%D0%BD%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5) по наследованию (http://ru.wikipedia.org/wiki/%D0%9D%D0%B0%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%28%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%29) и агрегированию (http://ru.wikipedia.org/wiki/%D0%90%D0%B3%D1%80%D0%B5%D0%B3%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%28%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%29).
В данном случае нужно определиться и выбрать одно, а не смешивать оба.


Название: Re: как правильно подключить созданный класс с toolbar-ом??
Отправлено: helga1917 от Август 08, 2013, 10:39
Да нужно только собрать тулбар и вернуть его.


Учусь помаленьку, а как можно учиться не совершая ошибок.


Название: Re: как правильно подключить созданный класс с toolbar-ом??
Отправлено: mutineer от Август 08, 2013, 10:40
Начиная с теории можно избежать базовых ошибок))


Название: Re: как правильно подключить созданный класс с toolbar-ом??
Отправлено: GreatSnake от Август 08, 2013, 10:44
Да нужно только собрать тулбар и вернуть его.
Тогда просто создайте QToolBar и добавьте его через QMainWindow::addToolBar().
Зачем так всё усложнять ???


Название: Re: как правильно подключить созданный класс с toolbar-ом??
Отправлено: mutineer от Август 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();
}
 


Название: Re: как правильно подключить созданный класс с toolbar-ом??
Отправлено: helga1917 от Август 08, 2013, 11:53
Спасибо, разберусь