2015-08-04 1 views
0

Une idée pour obtenir la référence de QPushButton définie dans le fichier QT.Comment obtenir la référence de l'exécution de l'interface utilisateur QPushButton

Nous pouvons créer le bouton QPushButton btnOK = new QPushButton("OK", this); que je connais. Mais comment puis-je le lier avec la référence du bouton dans le fichier .ui.

Une suggestion!

+0

'Ui :: push_button_name'? –

+0

ou 'QPushButton * button = pWin-> findChild (" Nom du bouton ");' où 'pWin' est votre classe définie à' .ui'. –

+1

Selon le mode 'Outils-> Options ...-> C++/Qt Class Generation/Embedding du mode UI, il peut être soit' ui-> pushButton', 'ui.pushButton' ou simplement' pushButton', où ' pushButton 'est le nom du bouton dans le fichier ui. – Amartel

Répondre

0

Dites que vous avez un fichier MyWidget.ui qui décrit un widget. Dans ce widget, vous avez un bouton-poussoir nommé btnOk;

Dans votre code, vous avez généralement les éléments suivants:

#include "ui_MyWidget.h" 

class MyWidget : public QWidget 
{ 
Q_OBJECT 
public: 
    MyWidget() : QWidget() { 
     m_ui.setupUi(this); 
     // now this is what you want: 
     m_ui.btnOk->setText("Hello World!"); 
    } 
private: 
    Ui::MyWidget m_ui; 
} 

Pour faire ce travail, vous devez être sûr d'énumérer votre fichier MyWidget.ui dans votre projet basé qmake ou CMake, de sorte que le ui_MyWidget Le fichier .h est automatiquement créé (assurez-vous que les chemins d'inclusion sont correctement définis). En outre, si vous ne souhaitez pas trouver le QPushButton basé sur le nom de la variable, vous pouvez également utiliser QObject::findChild(). La chaîne dont vous avez besoin est probablement "btnOk", c'est-à-dire que uic définit automatiquement ce nom sur le objectName.