Может кто-нибудь подсказать способ открыть вспомогательное окно. Есть окно А с кнопкой. по клику на кнопку должно открытся вспомогательно окно, с 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);
}
...
};
открыть модальное - exec()
слово "умерает" на самом деле пишется так: "умирает"
Как то так:
example.pro
QT += core gui
TARGET = example
TEMPLATE = app
SOURCES += main.cpp \
second.cpp
HEADERS += main.h \
second.h
#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);
}
#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
#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());
}
#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
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)