J'ai une classe comme celle-ci Quand je fais ce qui précède, je reçois des erreurs sur les signaux de connexion. merci p> p> L'erreur dit référence à "Connecter" est ambiguë code>. Y a-t-il un moyen d'hériter des deux? P>
3 Réponses :
vous ne pouvez pas. Il y en a d'où il y en a qui aurait été allé dessus (je ne peux pas trouver le lien en ce moment, mais c'est là-bas sur Google, j'ai eu le même problème il y a deux semaines), mais ce n'est pas sûr au mieux. p>
Edit: Le meilleur moyen serait probablement d'avoir un autre objet hériter de QThread et de garder cet objet en tant que membre de votre classe code> GUI code>. C'est le genre de solution de contournement que la plupart des gens font dans cette affaire. P> qwidget code> et qthread code> hérit (non-pratiquement) à partir de qObject code>. Vous n'avez donc pas de dérivation virtuelle, donc deux copies de qObject code>, qui confond le compilateur. QOBJECT code> a été spécialement conçu de cette manière. Voir: P>
Vous ne pouvez pas hériter de plusieurs qObjects.
Vous pouvez hériter d'un et rendre l'autre une variable d'un membre et travailler à partir de là. P>
class GUI : public QWidget
{
QThread myThread;
};
Seul le thread principal peut fonctionner sur des widgets, donc faire un widget un membre d'un fil semble impair. Qu'est-ce que cela pourrait accomplir?
"Vous devriez être hérité de qmainwindow" est faux, vous ne devez le faire que si vous voulez réellement certaines des fonctionnalités fournies par QmainWindow. Tout Qwidget sans parent est automatiquement une fenêtre.
qwidgets code> et des objets liés à l'interface graphique Con ne pas être dans des threads différents que le fil principal de l'application. Vous ne devriez pas hériter les deux. Vous ne pouvez pas également appeler la fonction movetothread () code> d'un widget. P>
S'il vous plaît expliquer pourquoi vous voulez faire cela. Depuis que cela ne peut pas être fait (voir réponses), nous aimerions savoir laquelle des choses qui seront i> pour vous suggérer. Cela nécessite plus d'informations.
Mon programme reçoit des messages d'un autre ordinateur via Firewire. Les messages reçus sont dirigés vers un fichier d'où la GUI les lit. Je veux gérer les messages Firewire dans un fil, et une interface graphique dans un autre fil.