2013-08-01 91 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