Witam
Jestem tu nowy. Swoją przygodą z programowanie obiektowym rozpocząłem od samouczków internetowych Pana Zelenta. Postanowiłem spróbować swoich sił w programowaniu w środowisku Qt ,którego używa się w mojej pracy.
Program który usiłuję napisać ma dwa okna. Jego działanie jest następujące: w pierwszym oknie znajduje się przycisk i metka , po w ciśnięciu przycisku otwiera nam się drugie okno z przyciskiem po kliknięciu którego metka w pierwszym oknie powinna się zmienić i to pojawia się problem gdyż jestem w stanie zmieniać metki tylko w oknie na którym obecnie działam a nie na poprzednim , chciałbym odwoływać się do elementów w wielu otwartych oknach. Próbowałem napisać publiczną funkcję i do niej się odwołać , na wzór jednego z filmików z internetu ,ale nie działało. Proszę o poradę w jaki sposób odwoływać się do innych elementów, oraz co jeszcze powinienem wiedzieć odnośnie OOP i gdzie mogę szukać info.
po głowie chodzi mi ciągle coś takiego :
ui->label->setText(f.getLabel());
gdzie publiczna funkcja getLabel()
ustawia stringa na jakiś tekst
dziękuję za poświęcony czas i odpowiedzi :)
A to kod który napisałem
Klasa okna
#include "dialog1.h"
#include "ui_dialog1.h"
#include <mainwindow.h>
Dialog1::Dialog1(QWidget *parent) :
QDialog(parent),
ui(new Ui::Dialog1)
{
ui->setupUi(this);
}
Dialog1::~Dialog1()
{
delete ui;
}
void Dialog1::on_pushButton_clicked()
{
ui->label->setText("dddd");
}
QString Dialog1::getLabel()
{
QString y = "ssss";
return y;
// return ui->label->text();
}
plik Main
#include "mainwindow.h"
#include <QApplication>
#include "dialog1.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
Main Window
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <dialog1.h>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_pushButton_clicked()
{
Dialog1 f;
f.setModal(false);
f.exec();
}
plik nagłówkowy dialog1.h
#ifndef DIALOG1_H
#define DIALOG1_H
#include <QDialog>
#include <QString>
namespace Ui {
class Dialog1;
}
class Dialog1 : public QDialog
{
Q_OBJECT
public:
explicit Dialog1(QWidget *parent = nullptr);
~Dialog1();
QString getLabel();
private slots:
void on_pushButton_clicked();
private:
Ui::Dialog1 *ui;
};
#endif // DIALOG1_H
mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = nullptr);
~MainWindow();
private slots:
void on_pushButton_clicked();
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H