Bonjour,
une petite question en C++ pour laquelle je ne trouve pas de réponse sur Internet, pourriez-vous m'aider ?
1. J'ai un main dans lequel j'alloue plusieurs mémoires qui seront partagées par tout mon programme (ici un exemple avec listLoc).
2. J'ai une fonction qui crée des onglets (Qt). Ces onglets sont des classes et auront besoin d'accéder à listLoc (un exemple ici).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { // Create memory listLocalization * listLoc = new listLocalization(); // Build central widget MainWindow::buildCentralWidget(listLoc); }
Comment est-ce que je peux donner accès à ma mémoire listLoc à la classe tabLocalization ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 void MainWindow::buildCentralWidget(listLocalization * listLoc) { // Add central widget mainWidget = new QTabWidget(); // Create first tab tab1 = new tabLocalization(mainWidget); // Add tabs mainWidget->addTab(tab1, tr("&Localization (database)")); // Define central layout setCentralWidget(mainWidget); }
Une solution à laquelle je pense serait de rajouter un pointer dans la classe tabLocalization:
Et de faire pointer listPtr vers listLoc dans le constructeur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 class tabLocalization : public QWidget { Q_OBJECT public: explicit tabLocalization(QWidget *parent = 0, listLocalization * listLoc); ~tabLocalization(); private: listLocalization * listPtr; }
Est-ce qu'il existe une façon plus simple ou propre de faire ce que je souhaite ?
Merci pour votre réponse !
Partager