2013-08-01 129 views
0

您好我試圖從多個QTextEdit窗口小部件中保存輸入的文本到一個名爲Film類型的電影對象,但我不知道該怎麼做。 titleEdit,durationEdit,directorEdit和relDateEdit都是QTextEdit類型。這是Film的構造函數。Qt C++從QTextEdit創建對象

Film::Film(QString t,int dur,QString dir,QDate r):                                  
m_title(t),m_duration(dur),m_director(dir),m_releaseDate(r){ 
} 

而應該把文本輸入到各種QTextEdit的函數,並創建一個電影對象的值。我是否正在試圖將QStrings轉換爲純文本?我該如何處理int? acquireFilmData函數應該將Film對象的狀態保存爲文件。

void FilmInput::saveFilm(){ 
    Film film(titleEdit->toPlainText()),durationEdit ,directorEdit->copy(), 
    relDateEdit->copy()); 
    obtainFilmData(film); 
} 
+0

用單行文本的QLineEdit和整數值的QSpinBox會更好。 – hluk

回答

1

我在這裏假設您的所有輸入小部件都是QTextEdits。 您可以convert QString objects to int。你可以做這樣的事情來創建你的電影對象:

Film film(titleEdit->toPlainText(), durationEdit->toPlainText().toInt(), 
directorEdit->toPlainText(), 
QDate::fromString(relDateEdit->toPlainText()), "dd/MM/YYYY")); 

閱讀this,以瞭解在QDate::fromString(const QString & string, const QString & format)功能使用的日期格式。

1

你似乎有一個額外的括號在這裏

Film film(titleEdit->toPlainText()**)**,durationEdit ,directorEdit->copy(), 
relDateEdit->copy()); 

不應該有你的構造函數是問題。

+0

好的取出括號但這不是問題,durationEdit甚至沒有被分配任何東西,我不知道該分配給它做什麼? – Dmon