Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [Qt]Объединение классов, наследованых от QMainWindow,QWidget 
:(
    Опции темы
toxx
Дата 13.5.2010, 23:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 653
Регистрация: 4.3.2009
Где: НН

Репутация: нет
Всего: 13



У меня есть класс рисования меню и класс рисования(class MainWindow) доски и остальных действий с ним(class LifeWidget)

Хотелось бы их объединить в один, чтобы информация о ходах, количестве шашек можно было вывести в соответствующие окошки, как это сделать не представляю, пробовал объединить в один, но ничего не вышло.(т.к. наследованы они от разных классов QMainWindow,QWidget )
Можно както объединить эти классы?(чтобы добавлять информацию в окна)
Спасибо.

class MainWindow
Код

#include <QMainWindow>
#include "lifewidget.h"
QT_BEGIN_NAMESPACE
class QAction;
class QListWidget;
class QMenu;
class QTextEdit;
QT_END_NAMESPACE

class MainWindow : public QMainWindow
{
    Q_OBJECT
public:
    MainWindow();

private slots:
    void newLetter();
    void save();
    void undo();
    void about();

private:
    void createActions();
    void createMenus();
    void createToolBars();
    void createStatusBar();
    void createDockWindows();

    QTextEdit *textEdit;
    QListWidget *movesList;
    QListWidget *playerList;

    LifeWidget *life;

    QMenu *fileMenu;
    QMenu *helpMenu;
    QToolBar *fileToolBar;
    QToolBar *editToolBar;
    QAction *newLetterAct;
    QAction *saveAct;
    QAction *aboutAct;
    QAction *aboutQtAct;
    QAction *quitAct;
};
#endif


class LifeWidget
Код

#ifndef LIFEWIDGET_H
#define LIFEWIDGET_H

#include <QtGui>
#include "life.h"
#include "ai_tree.h"

class LifeWidget : public QWidget
{
    Q_OBJECT
public:
    LifeWidget(QWidget *parent = 0);
    virtual ~LifeWidget();
    int updateInterval() const;
    void setGridSize(const QSize &size);
    QSize gridSize() const;
    void setCellSize(int size);
    int cellSize() const;
    void Draw_Cell(QPainter *painter,QBrush PenBrush,int pen_size,
        QBrush RectBrush,int x0,int y0,int size);
    void Draw_Ellipse(QPainter *painter,QBrush PenBrush,int pen_size,
        QBrush RectBrush,int x0,int y0,int size);

    Life *life;
    size_t player;
    Tree *game;
    Tree *next;
protected:
    QSize minimumSizeHint() const;
    QSize sizeHint() const;
    void mousePressEvent(QMouseEvent *event);
    void paintEvent(QPaintEvent *event);

};
#endif // LIFEWIDGET_H

PM MAIL   Вверх
mes
Дата 14.5.2010, 00:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 7
Всего: 250



отделите модель от представления... и будет Вам щастие smile

Добавлено через 1 минуту и 3 секунды
P.S. к Qt этот вопрос не имеет отношения..


--------------------
PM MAIL WWW   Вверх
toxx
Дата 14.5.2010, 01:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 653
Регистрация: 4.3.2009
Где: НН

Репутация: нет
Всего: 13



mes
Цитата

отделите модель от представления... и будет Вам щастие 

в смысле?не понял...

Цитата

P.S. к Qt этот вопрос не имеет отношения..  


Да не имеет, но думаю может какой-то класс имеется от которого они унаследованы и можно вытащить как-то констркутор для нужного мне класса ..


PM MAIL   Вверх
mes
Дата 14.5.2010, 09:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 7
Всего: 250



Цитата(toxx @  14.5.2010,  00:32 Найти цитируемый пост)
Да не имеет, но думаю может какой-то класс имеется от которого они унаследованы и можно вытащить как-то констркутор для нужного мне класса ..

используйте не наследование, а агрегацию - т.е. делаете например класс Scene, (который хранит партию, и нужные данные для представления)
и его раздаете между окнами. 


Цитата(toxx @  13.5.2010,  22:30 Найти цитируемый пост)
У меня есть класс рисования меню и класс рисования

классы окон и классы рисования - несколько разные вещи.




--------------------
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets"
JackYF
Любитель
  • В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx].
  • Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией, укажите это. Например: [QT4], [GTK2].
  • Все начинающие изучать Qt - не забудьте зайти сюда.
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • В вопросе укажите полную версию версию библиотеки, а также все дополнительные используемые программные пакеты.
  • Не забывайте пользоваться кнопкой "Код".
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема »


 




[ Время генерации скрипта: 0.0416 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.