2012-12-06 3 views
0

누군가이 오류를 해결하는 데 도움을 줄 수 있습니까?Qt 오류 - 잘못 포인터 문제가 사용되었습니다.

QString *description = new QString; 
description = *dialog.descriptionEdit->toPlainText(); 

오류 :

QString *description = new QString; 
description = dialog.descriptionEdit->toPlainText(); 

오류 : 변환 할 수 없습니다 '에서'연산자 * ''const를 *은 QTextEdit :: toPlainText()() '

을 내가하려고 할 때 아무 짝 할당에 QString의 * ''에 'QString

+0

* 설명 = dialog.descriptionEdit-> toPlainText(); – drescherjm

+1

그러나 QString *을 왜 사용하고 있습니까? 나는 대부분의 경우 그것을 사용하지 않을 것이다. – drescherjm

+1

'QString'에 포인터를 사용하고있는 동안 불필요한 것이고, 매우 낙심 할 때 값으로'QDialog'를 사용합니다. – UmNyobe

답변

1

는이

*description = dialog.descriptionEdit->toPlainText(); 
필요

그렇지 않으면 포인터에 포인터가 지정되지 않습니다. descriptionQString에 대한 포인터이고 *descriptionQString입니다.

+4

'QString description;'을 사용하도록 제안했습니다. Qt에는 암묵적인 공유가 있으므로 동적 QString 할당이 필요 없습니다. –

+0

'dialog'가 QDialog의 자식 클래스에 대한 포인터이고 메소드에 인수로 전달 될 때 객체가 될 수 없다면 어떨까요? – jahsiotr

+0

QString 멤버가있는 대화 상자에 대한 포인터를 사용하더라도 QString은 여전히 ​​QString (QString이 아님)입니다. – drescherjm

관련 문제