2014-09-10 1 views
0

Ce que je veux faire est assez facile. Je veux ajouter un QLabel à un QFrame (ou un QWidget) chaque fois que j'ai déclenché un slot.Comment puis-je ajouter un QWidget en tant que sous-widget à un autre QWidget après init?

Si je mets le code ci-dessous dans le constructeur de MainWindow, même après ui->setupUI(this):

QLabel * pLabel = new QLabel("abc", ui->frame); 

ceci fonctionne

Cependant, si je me déplace cette ligne à une fente de MainWindow, par exemple shortcut, il ne montrera rien. Comment puis-je ajouter ceci correctement?

Remarque: Je ne souhaite pas l'ajouter à la mise en page. J'ai besoin de superposition sur les autres et j'ai besoin de gérer la position exacte de celui-ci.

Répondre

1

Vous devez appeler explicitement show() après la création du QLabel

QLabel * pLabel = new QLabel("abc", ui->frame); 
pLabel->show(); 

De l'documentation:

... Si vous ajoutez un widget enfant à un widget de déjà visible, vous devez montrer explicitement l'enfant pour le rendre visible ...

+0

OMG grand merci ...... – h5nc

+0

De rien! – mhcuervo

Questions connexes