crossplatform.ru

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


  Ответ в Открытие вспомогательного окна
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
Теги
Выровнять по центру
Ссылка на тему
Ссылка на сообщение
Скрытый текст
Сокращение
Код с подсветкой
Offtopic
 
Удалить форматирование
Спец. элементы
Шрифт
Размер
 
Цвет шрифта
 
Отменить ввод
Вернуть ввод
Полужирный
Курсив
Подчеркнутый
 
 
Смайлики
Вставить изображение
Вставить адрес электронной почты
Цитата
Код
Раскрывающийся текст
 
Увеличить отступ
По левому краю
По центру
По правому краю
Вставить список
Вставить список

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
darkhac Дата 16.6.2011, 19:43
 
Цитата(Алексей1153 @ 16.6.2011, 20:20) *
слово "умерает" на самом деле пишется так: "умирает"


Спасибо, извиняюсь.
RazrFalcon Дата 16.6.2011, 18:05
  Как то так:

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



Алексей1153 Дата 16.6.2011, 17:20
  открыть модальное - exec()

слово "умерает" на самом деле пишется так: "умирает"
darkhac Дата 16.6.2011, 16:53
  Может кто-нибудь подсказать способ открыть вспомогательное окно. Есть окно А с кнопкой. по клику на кнопку должно открытся вспомогательно окно, с 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 умерает при выходе из функции(что логично). может кто-нибудь знает как можно дождаться закрытия вспомогательного окна?
Просмотр темы полностью (откроется в новом окне)
RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 10.7.2025, 21:05