J'ai créé un QMainWindow en utilisant QT Designer. Comme nous le savons, il a statusBar par défaut.Pourquoi est cette erreur: la référence à 'statusBar' est ambigu .. à venir? Est-ce un bug?
Par défaut, QT Designer donnait son nom d'objet en tant que "statusBar". Maintenant, quand j'ai essayé d'appeler comme: -
statusBar()->showMessage(tr("File successfully loaded."), 3000);
que nous avons une fonction avec prototype: QStatusBar * QMainWindow :: statusBar() const
Le compilateur montre l'erreur: -
error: reference to ‘statusBar’ is ambiguous.
error: candidates are: QStatusBar* Ui_MainWindow::statusBar
error: QStatusBar*QMainWindow::statusBar() const
En fait, je suivais un livre "L'art de construire des applications Qt par DANIEL MOLKENTIN". Et je compile le même code donné dans le livre.
code ci-dessus est en mainwindows.cpp et j'ai compris "mainwindow.h" & "ui_mainwindow.h" en elle ...
Est-ce un bogue dans QT4 ??
Vous avez un membre * variable * noms 'statusBar' et une metho d nomme 'statusBar'. Le compilateur ne sait pas lequel utiliser. Cependant, les deux résident dans des classes différentes: 'Ui_MainWindow' et' QMainWindow'. Je me demande quelle est la relation entre ces classes? Si l'un hérite de l'autre, comment se fait-il qu'il n'y ait pas de cachette? Si elles ne sont pas liées, comment se fait-il qu'il y ait un conflit? Etes-vous sûr de ne pas avoir ajouté quelque chose de "bizarre" de votre part? Héritage multiple? – AnT