2016-05-07 7 views
-3

私はloginButtonclicked()外の変数値を使用するにはどうすればよいaヌル変数QT

の値を取得していないプッシュボタンのラベルをクリックした後loginButtonClicked()

a外の値を使用することはできませんか?

#include "menu.h" 
#include "ui_menu.h" 
#include "login.h" 

Menu::Menu(QWidget *parent) : 
    QMainWindow(parent), 
    ui(new Ui::Menu) 
{ 
    ui->setupUi(this); 
} 
void Menu::loginButtonClicked(QString nomVal) 
{ 
     a = nomVal; 

} 
Menu::~Menu() 
{ 
    delete ui; 
} 


void Menu::on_pushButton_2_clicked() 
{ 
    QString a; 

    ui->label_2->setText(a); 
} 
+0

'A'がAで'on_pushButton_2_clicked'のローカル変数です。 'loginButtonClicked'にアクセスしようとしていますが、' loginButtonClicked'にはアクセスできません。どのようにこれまでコンパイルすることができますか? – sergiol

+2

'a'はどこに宣言されていますか? 'on_pushButton_2_clicked'で' ui-> label_2-> setText(a); 'を呼び出すと' a'という別の変数が宣言されています( 'Menu'のグローバルまたはメンバであると仮定して)前の' a'を隠します。 – Tas

+0

'a'はmenu.hで私的に宣言されました ' on_pushButton_2_clicked'の 'loginButtonClicked()'から 'a'を取得する値を使うことができます。 –

答えて

0

答えはあなたはどちらか、それはどのクラスの外、またはそれはあなたのクラスのヘッダファイルで、通常は宣言されることを意味し、クラスのメンバーのようになります意味グローバル一人として、あなたの変数を宣言しなければならないことです。 注:グローバル変数を使用する方が簡単かもしれませんが、お勧めできません。

これは基本的なC++であり、Qtに固有のものではありません。あなたはそれについてもっと読むことができますhere。あなたは、ヘッダーがそれを提出貼り付けられませんでしたので

は、あなたがこれを設定しているか知ることは少し難しいですが、ここで迅速なハックは、グローバル変数を使用した例であるとして:

#include "menu.h" 
#include "ui_menu.h" 
#include "login.h" 

// Don't do this, make it a class member instead: 
QString myGlobalVariable=""; 

Menu::Menu(QWidget *parent) : 
    QMainWindow(parent), 
    ui(new Ui::Menu) 
{ 
    ui->setupUi(this); 
} 
void Menu::loginButtonClicked(QString nomVal) 
{ 
     myGlobalVariable = nomVal; 

} 
Menu::~Menu() 
{ 
    delete ui; 
} 


void Menu::on_pushButton_2_clicked() 
{ 
    ui->label_2->setText(myGlobalVariable); 
} 
関連する問題