crossplatform.ru

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

> Наследование виджета
silver47
  опции профиля:
сообщение 14.4.2010, 5:56
Сообщение #1


Активный участник
***

Группа: Участник
Сообщений: 356
Регистрация: 1.4.2010
Пользователь №: 1584

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




Репутация:   6  


Есть два класса, наследованые от QWidget, каждый выполняет свою работу. Один из них предоставляет поле для ввода информации и 2 кнопки, Ок + Отмена, нужно чтобы второй запускался и создавался только, если нажата кнопка Ок, при нажатии кнопки отмена, происходило закрытие приложения. Как это возможно сделать?

Спасибо.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
MJIbIu
  опции профиля:
сообщение 14.4.2010, 10:25
Сообщение #2


Студент
*

Группа: Участник
Сообщений: 38
Регистрация: 14.4.2010
Пользователь №: 1630

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




Репутация:   0  


Цитата(silver47 @ 14.4.2010, 6:56) *
Есть два класса, наследованые от QWidget, каждый выполняет свою работу. Один из них предоставляет поле для ввода информации и 2 кнопки, Ок + Отмена, нужно чтобы второй запускался и создавался только, если нажата кнопка Ок, при нажатии кнопки отмена, происходило закрытие приложения. Как это возможно сделать?

Спасибо.

CODE
#include <QtGui/QApplication>
#include "widget.h"
#include "widget2.h"

int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Widget w;
widget2 w2;

QObject::connect(&w, SIGNAL(signalOK()), &w2, SLOT(slot()));
QObject::connect(&w2, SIGNAL(signal()), &w, SLOT(slotVisible()));

QObject::connect(&w, SIGNAL(signalCancel()), &w, SLOT(close()));

w.show();
return a.exec();
}


CODE
#include "widget.h"
#include "ui_widget.h"

Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
QObject::connect(ui->pushOK, SIGNAL(clicked()), this, SLOT(slotOK()));
QObject::connect(ui->pushCancel, SIGNAL(clicked()), this, SLOT(slotCancel()));
}

Widget::~Widget()
{
delete ui;
}

void Widget::changeEvent(QEvent *e)
{
QWidget::changeEvent(e);
switch (e->type()) {
case QEvent::LanguageChange:
ui->retranslateUi(this);
break;
default:
break;
}
}

void Widget::slotOK()
{

emit signalOK();

}

void Widget::slotVisible()
{

close();

}

void Widget::slotCancel()
{

emit signalCancel();

}


CODE
#include "widget2.h"
#include "ui_widget2.h"

widget2::widget2(QWidget *parent) :
QWidget(parent),
ui(new Ui::widget2)
{
ui->setupUi(this);
}

widget2::~widget2()
{
delete ui;
}

void widget2::changeEvent(QEvent *e)
{
QWidget::changeEvent(e);
switch (e->type()) {
case QEvent::LanguageChange:
ui->retranslateUi(this);
break;
default:
break;
}
}

void widget2::slot()
{
show();
emit signal();
}


Определение класса я думаю выкладывать не надо.
хз мб я и криво сделал где можно что улучшит напишите плиз буду признателен
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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


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




RSS Текстовая версия Сейчас: 29.3.2024, 5:31