2011-11-04 91 views
2

我是新來的qt4,我試圖獲取輸入文本數據。但我沒有得到。獲取lineEdit輸入數據

任何人都可以幫助我嗎?我會很感激。

謝謝。

例子我在做什麼的:

adduser.cpp

#include <QtGui> 
#include "adduser.h" 

myQt_user::myQt_user(QDialog *parent) 
{ 
    setupUi(this); // this sets up GUI 
    connect(pushButton_adduser, SIGNAL(clicked()), this, SLOT(add_user())); 
} 

void myQt_user::add_user() 
{ 
    users = lineEdit_user->text(); 
    QMessageBox::information(this, tr("Data"),tr("Get user:" +users)); 

} 

adduser.h

#ifndef ADDUSER_H 
#define ADDUSER_H 

#include "ui_dialog_useradd.h" 


class myQt_user: public QDialog, private Ui::windows_add 
{ 
    Q_OBJECT 

public: 
     myQt_user(QDialog *parent = 0); 
     QLineEdit *lineEdit_user; 
     QString users; 

public slots: 
     void add_user(); 
}; 

#endif 

埃羅:

adduser.cpp:-1: In member function 'void myQt_user::add_user()': 

adduser.cpp:13: error: no matching function for call to 'myQt_user::tr(const QString)' 

adduser.h:9: candidates are: static QString myQt_user::tr(const char*, const char*) 

adduser.h:9: note: static QString myQt_user::tr(const char*, const char*, int) 
+0

請描述你的實際問題。不知道你的UI文件中有什麼,不可能修復你的代碼。 – Mat

回答

4

Qt的方式是t他以下幾點:

QMessageBox::information(this, tr("Data"), tr("Get user:" +users)); 

應該

QMessageBox::information(this, tr("Data"), tr("Get user: %1").arg(users)); 
+0

謝謝webclectic – user628298

+0

優秀點!在不觸及數據的情況下本地化提示。 – Bill

+0

的確,tr機制非常強大,QtLinguist忽略tr格式化字符串中的參數。 http://doc.qt.nokia.com/qq/qq03-swedish-chef.html – pnezis

2

由於錯誤說,你通過QString以一個函數,它const char*

QMessageBox::information(this, tr("Data"),tr("Get user:" +users)); 

要麼不來電tr或傳遞給它一個char *

QMessageBox::information(this, tr("Data"),"Get user:" +users); // removed tr 

QMessageBox::information(this, tr("Data"),tr(qPrintable("Get user:" +users))); 
// get a char* from the QString with the qPrintable macro. 

(因爲你很可能不想要本地化用戶輸入,我會選擇第一個選項。)

+0

謝謝比爾,現在它工作了! – user628298