2012-09-15 3 views
1

나는이 어떻게해야합니까 : 나는 버튼을 클릭하고 대화 상자가 입력을 요청하는 표시Qt는 - LineEdit의 변경 값은 대화 상자를 닫을 때

예를 들어

, 레이블 이름 = "사용자" . 입력 상자에 "이름"을 입력하고 확인을 클릭합니다. 이제 대화 상자의 확인 버튼을 클릭하면 라벨 사용자 이름이 자동으로 "이름"으로 변경됩니다.

이 값은 설정 값으로 이동합니다. 설정에서 값을로드하는 방법을 알고 있지만 레이블 이름과 입력 된 "이름"입력란이 2 개의 다른 클래스에있는 경우 어떻게 변경해야합니까? 도와주세요.

+0

,')합니다 (QLabel의 방법을 입력 텍스트를 얻고'의 setText를 사용 텍스트를 i로 설정하려면 nput. – ZERO

답변

3

신호와 슬롯을 사용해야합니다. 당신이 SomeClass를 호출

emit valueChanged(myQLineEdit->text()); 

그리고 클래스의

은 당신이 :이 QLineEdit이 클래스에서 당신은 누군가가이 신호를 방출하는 '확인'버튼을 당신은 클릭하면

class SomeClass : public QDialog  //or other inheritance 
{ 
    /* constructors, functions and other stuff */ 
    signals: 
     void valueChanged(const QString&);  //in QString you will send new value 
} 

같은 신호를 선언해야 예를 들어, 레이블 값을 변경 할 슬롯이 신호를 연결하려면 : 당신이 "OK"버튼을 누르면

void MainWindow::someMethod() 
{ 
    SomeClass *class = new SomeClass; 
    connect(class, SIGNAL(valueChanged(QString)), this, SLOT(changeValue(QString))); 
    /* set other parameters, show window*/ 
} 

void MainWindow::changeValue(const QString &newText) 
{ 
    myQLabel->setText(newText); 
} 
+0

감사합니다! 이것은 완벽 해! :) – Fahmid

관련 문제