Kombinowałem z pierwszym sposobem (wydawał mi się rozsądniejszy)
fragment pliku nagłówkowego okna1 (tutaj MainWindow.h)
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
int *wsk; // To wskaźnik na zmienną niżej
int wybrany;
private:
Ui::MainWindow *ui;
QNetworkAccessManager *m_manager;
QList<QString> linki;
QList<QString> listaUtworow;
bool zajety;
int liczbaPodStron;
int iteracja;
QString box;
QString wykonawca;
QString tytul;
QString urlBud;
QString strona;
void pobierzStrone();
void szukajPiosenek();
private slots:
void sprawdz();
void pobranoStrone(QNetworkReply*);
};
Ustawianie wskaźnika na zmieną w kodzie źródłowym okna1 (tutaj MainWindow.cpp)
wsk = &wybrany;
Dialog *myNewDialog = new Dialog(listaUtworow, linki, wsk, this);
myNewDialog->show();
Plik nagłówkowy okna2 (tutaj dialog.h)
class Dialog : public QDialog
{
Q_OBJECT
public:
Dialog(QList<QString>, QList<QString>, int *, QWidget *parent);
int *wybrany;
explicit Dialog(QWidget *parent = 0);
~Dialog();
private:
Ui::Dialog *ui;
QList<QString> linki;
QList<QString> listaUtworow;
private slots:
void wybral();
};
Kod źródłowy gdzie próbuję przekazać z okna2 do okna1 (tutaj dialog.cpp)
void Dialog::wybral()
{
*wybrany = ui->listWidget->currentRow();
this->close();
}
Wszystko się kompiluje ładnie, ale wartość zmiennej w okno1 wynosi dalej zero, nie używałem wcześniej wskaźników (mój błąd) bo programowałem w C# i winforms, stwierdziłem że szybkość działania i multiplatformowość jest ważniejsza więc teraz jadę w QT + C++.
Pozdrawiam i dziękuję za pomoc.