C++ (Qt)void Widget1::clickButton(){ int idx=ui->comboBox->currentIndex(); Widget2 w2( idx, this ); w2.exec();}
class Widget2: public QWidget{Q_OBJECTpublic slots: void takeIndex(int a) { // какие то шаманские действия }};
Widget2 *w2 = new Widget2();connect(w1, SIGNAL(sendIndex1(int), w2, SLOT(takeIndex(int)));
Widget2 *w2 = new Widget2();connect(this, SIGNAL(sendIndex1(int), w2, SLOT(takeIndex(int)));
#ifndef WIDGET2_H#define WIDGET2_H#include <QWidget>namespace Ui {class widget2;}class widget2 : public QWidget{ Q_OBJECT public: explicit widget2(QWidget *parent = 0); ~widget2(); private: Ui::widget2 *ui;public slots: void takeIndex(int a);// {// // какие то шаманские действия// }};#endif // WIDGET2_H
#include "widget1.h"#include "widget2.h"#include "ui_widget2.h"widget2::widget2(QWidget *parent) : QWidget(parent), ui(new Ui::widget2){ ui->setupUi(this); ui->spinBox->setValue(a+1); //для простоты что-то совсем тривиальное}widget2::~widget2(){ delete ui;}
#include "widget1.h"#include "widget2.h"#include <QApplication>int main(int argc, char *argv[]){ QApplication a(argc, argv); Widget1 *w = new Widget1; widget2 *w2 = new widget2; QObject::connect(w, SIGNAL(openw2()),w2, SLOT(show())); //вторая форма открывается из первой QObject::connect(w, SIGNAL(sendspinIndex1(int)),w2, SLOT(takeIndex(int))); //заветное число a w->show(); return a.exec();}
#ifndef WIDGET2_H#define WIDGET2_H#include <QWidget>namespace Ui {class widget2;}class widget2 : public QWidget{ Q_OBJECT public: explicit widget2(QWidget *parent = 0, int a); ~widget2(); private: Ui::widget2 *ui;public slots: void takeIndex(int a);};#endif // WIDGET2_H
#include "widget1.h"#include "widget2.h"#include "ui_widget2.h"widget2::widget2(QWidget *parent, int a) : QWidget(parent), ui(new Ui::widget2){ ui->setupUi(this); ui->spinBox->setValue(a+1); //для простоты что-то совсем тривиальное}widget2::~widget2(){ delete ui;}void widget2::takeIndex(int a){ // какие то действия... // например, пусть индекс отобразится в заголовке окна setWindowTitle(QString("Индекс: %1").arg(a));}
#include "widget1.h"#include "widget2.h"#include <QApplication>int main(int argc, char *argv[]){ QApplication a(argc, argv); Widget1 *w = new Widget1();// пусть a будет равно 1 int a = 1; widget2 *w2 = new Widget2(0, // то есть у w2 нет родителя a); // вставляем число QObject::connect(w, SIGNAL(openw2()),w2, SLOT(show())); QObject::connect(w, SIGNAL(sendspinIndex1(int)),w2, SLOT(takeIndex(int))); w->show(); return a.exec();}