crossplatform.ru

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

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


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

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

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




Репутация:   6  


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

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


Старейший участник
****

Группа: Сомодератор
Сообщений: 597
Регистрация: 18.7.2008
Из: Саратов
Пользователь №: 238

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




Репутация:   5  


Ну по сигналу от кнопки Ок вызывать слот который будет показывать второй виджет.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
silver47
  опции профиля:
сообщение 14.4.2010, 8:25
Сообщение #3


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

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

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




Репутация:   6  


Цитата(molchanoviv @ 14.4.2010, 11:09) *
Ну по сигналу от кнопки Ок вызывать слот который будет показывать второй виджет.


в main создать его а в slotOkBtnClick его показать? Как тогда передать в первый виджет второй, который создан в функции main, и первый виджет ничего не знает о его существовании. Как тогда спрятать первый виджет от глаз подальше?

:blink:
Причина редактирования: Убрал дубль.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
silver47
  опции профиля:
сообщение 14.4.2010, 10:39
Сообщение #4


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

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

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




Репутация:   6  


main.cpp

#include <QtGui>
#include "widget.h"
#include "start.h"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);  
    Start WELCOME; // создаю первый виджет
    Widget w; // создаю второй
    WELCOME.show(); // показываю первый
    return a.exec();
}


start.cpp

Start::Start(QWidget *parent) : QWidget(parent) , m_settings("SilverSoft","Violations") //конструктор
{
...
}

void Start::slotGo(){
    ...

// как здесь отобразить виджет 2, ведь Start ничего не знает о существовании w?
// вообще нужно бы сдесь создать этот виджет, чтобы конструктор w выполнялся только после нажатия кнопки, но в таком случае
// окошко со вторым виджетом появляется и исчезает :(
}


Простите, я любитель и все никак не могу сообразить как это сделать...

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

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


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


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




RSS Текстовая версия Сейчас: 28.4.2024, 16:36