crossplatform.ru

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

> QT интерфейс, ООП, У меня возник вопрос по ООП +QT
Гость_=DENIS=_*
сообщение 10.2.2012, 19:21
Сообщение #1





Гости








    


Такой вопрос. В документации QT все примеры построены таким образом, создается класс, унаследованный от QWidget (QMainWIndow, ...) и в нем уже производятся действия: построение интерфейса, чтение файла, работа с сетью и т.п. Но мне кажется, что не правильно совмещать класс интерфейса и свои алгоритмы работы программы: работа с файлами, работа с сетью и т.п. Мне кажется, что надо создавать какой-то класс (допустим class Manager) который управляет и интерфейсом(GUI) и основной работой программы. Я прав или нет? Подскажите.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Гость_Гость_=DENIS=_*_*
сообщение 12.2.2012, 10:05
Сообщение #2





Гости








    


Спасибо за помощь.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_Гость_=DENIS=_*_*
сообщение 22.2.2012, 22:51
Сообщение #3





Гости








    


Есть класс WaitDialog унаследованный от QDialog

#include "waitdialog.h"
#include <QtCore/QString>
#include <QtGui/QLabel>
#include <QtGui/QPushButton>
#include <QtGui/QHBoxLayout>

WaitDialog::WaitDialog(QObject *parrent):QDialog(parrent)
{
    label = new QLabel(tr("Wait please"));
    cancelButton = new QPushButton(tr("Cancel"));
    QHBoxLayout *layout = new QHBoxLayout();
    layout->addWidget(label);
    layout->addWidget(cancelButton);
    setLayout(layout);
}

void WaitDialog::setText(QString mes)
{
    label->setText(mes);
}

QString WaitDialog::getText()
{
    return label->text();
}


Как правильно свзяать сигнал кнопки с внешним слотом (находится в основном классе Manger). Сделать механизм, подобный интерфейса, или сдалеать в WaitDialog функцию, в которую буду передавать SLOT(mySlot())???
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Sokoloff
  опции профиля:
сообщение 24.2.2012, 11:13
Сообщение #4


Участник
**

Группа: Участник
Сообщений: 237
Регистрация: 1.4.2009
Из: Москва
Пользователь №: 654

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




Репутация:   11  


Цитата(Гость_=DENIS=_* @ 22.2.2012, 23:51) *
Как правильно свзяать сигнал кнопки с внешним слотом (находится в основном классе Manger). Сделать механизм, подобный интерфейса, или сдалеать в WaitDialog функцию, в которую буду передавать SLOT(mySlot())???

Я бы сделал что-то вроде

Если не надо обрабатывать клик в WaitDialog.
//waitdialog.h
class WaitDialog: public QDialog
{
...

signals:
   void closeBtnClicked();
}

//waitdialog.cpp

WaitDialog::WaitDialog(QObject *parrent):QDialog(parrent)
{
    ...
    cancelButton = new QPushButton(tr("Cancel"));
    connect(cancelButton, SIGNAL(clicked()), this, SIGNAL(closeBtnClicked()));
}



Если WaitDialog должен что-то делать перед или после клика.
//waitdialog.h
class WaitDialog: public QDialog
{
...

private slots:
   void closeBtnClickedSlot();

signals:
   void closeBtnClicked();
}

//waitdialog.cpp

WaitDialog::WaitDialog(QObject *parrent):QDialog(parrent)
{
    ...
    cancelButton = new QPushButton(tr("Cancel"));
    connect(cancelButton, SIGNAL(clicked()), this, SLOT(closeBtnClickedSlot()));
}

void WaitDialog::closeBtnClickedSlot()
{
   ...
   emit closeBtnClicked();
   ...
}


Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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


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




RSS Текстовая версия Сейчас: 26.11.2024, 15:06