Наследование виджета |
Здравствуйте, гость ( Вход | Регистрация )
Наследование виджета |
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 |
Есть два класса, наследованые от 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(); } Определение класса я думаю выкладывать не надо. хз мб я и криво сделал где можно что улучшит напишите плиз буду признателен |
|
|
Текстовая версия | Сейчас: 27.11.2024, 0:47 |