crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> Открытие вспомогательного окна, открыть модальное окно, не закрывая родительское, в функции родителя
darkhac
  опции профиля:
сообщение 16.6.2011, 16:53
Сообщение #1


Студент
*

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

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




Репутация:   0  


Может кто-нибудь подсказать способ открыть вспомогательное окно. Есть окно А с кнопкой. по клику на кнопку должно открытся вспомогательно окно, с LineEdit и кнопкой, после нажатия на кнопку вспомогательного окна текст должен передаться в А

class HelpWindow : QDialog{...};

class A: QWidget
{
...
public slots:
    void ShowHelpWindow()
    {
          HelpWindow it(this);
          QObject::connect(&it,SIGNAL(confirmed(QString& text)), this, SLOT(UserConfirmHelp(QString& text)));
          it.show()
    }
    void UserConfirmHelp(QString& text)
    {
          this->MainLabel.setText(text);
    }
...
};



вот таким методом it умерает при выходе из функции(что логично). может кто-нибудь знает как можно дождаться закрытия вспомогательного окна?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 16.6.2011, 17:20
Сообщение #2


фрилансер
******

Группа: Участник
Сообщений: 2928
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

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




Репутация:   34  


открыть модальное - exec()

слово "умерает" на самом деле пишется так: "умирает"
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
RazrFalcon
  опции профиля:
сообщение 16.6.2011, 18:05
Сообщение #3


Zombie Mod
*****

Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752

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




Репутация:   212  


Как то так:

example.pro
Раскрывающийся текст
QT      += core gui

TARGET   = example

TEMPLATE = app

SOURCES += main.cpp \
           second.cpp

HEADERS += main.h \
           second.h

main.cpp
Раскрывающийся текст
#include "main.h"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    First w;
    w.show();

    return a.exec();
}

First::First(QWidget *parent) : QDialog(parent)
{
    label = new QLabel("Hi",this);
    button = new QPushButton("Press",this);
    QVBoxLayout *layout = new QVBoxLayout(this);

    connect(button,SIGNAL(clicked()),this,SLOT(button_clicked()));

    layout->addWidget(label);
    layout->addWidget(button);

    setWindowTitle("First");
    setLayout(layout);
    resize(200,100);
}

void First::button_clicked()
{
    second = new Second(this);
    second->show();
    button->setEnabled(false);
}

void First::setMyText(const QString &text)
{
    label->setText(text);
}

main.cpp
Раскрывающийся текст
#ifndef MAIN_H
#define MAIN_H

#include <QtGui>
#include <QtCore>

#include "second.h"

class Second;

class First : public QDialog
{
    Q_OBJECT

public:
    explicit First(QWidget *parent = 0);
    void setMyText(const QString &text);

private:
    QPushButton *button;
    QLabel *label;
    Second *second;

private slots:
    void button_clicked();
};

#endif // MAIN_H

second.cpp
Раскрывающийся текст
#include "second.h"

Second::Second(First *dialog, QWidget *parent) : QDialog(parent)
{
    first = dialog;

    lineEdit = new QLineEdit(this);
    button = new QPushButton("Send",this);
    QVBoxLayout *layout = new QVBoxLayout(this);

    connect(button,SIGNAL(clicked()),this,SLOT(button_clicked()));

    layout->addWidget(lineEdit);
    layout->addWidget(button);

    setWindowTitle("Second");
    setLayout(layout);
    resize(200,100);
}

void Second::button_clicked()
{
    first->setMyText(lineEdit->text());
}

second.h
Раскрывающийся текст
#ifndef SECOND_H
#define SECOND_H

#include <QtGui>
#include <QtCore>

#include "main.h"

class First;

class Second : public QDialog
{
    Q_OBJECT

public:
    explicit Second(First *dialog, QWidget *parent = 0);

private:
  First *first;
  QLineEdit *lineEdit;
  QPushButton *button;

private slots:
    void button_clicked();
};

#endif // SECOND_H




Прикрепленные файлы
Прикрепленный файл  example.zip ( 1.92 килобайт ) Кол-во скачиваний: 65
 
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
darkhac
  опции профиля:
сообщение 16.6.2011, 19:43
Сообщение #4


Студент
*

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

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




Репутация:   0  


Цитата(Алексей1153 @ 16.6.2011, 20:20) *
слово "умерает" на самом деле пишется так: "умирает"


Спасибо, извиняюсь.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 22.10.2021, 7:35