3

通常、次のように言って QCombobox に項目を追加します。

QCombobox cbb;
cbb.addItem("Hello");

しかし、これを試してみると、エラーが発生します。

QComboBox cbb;
QString * s = new QString("hallo");
cbb.addItem(s);

error: no matching function for call to 'QComboBox::addItem(QString*&)'

どうすればこれを解決できますか?

4

2 に答える 2

9

で動的メモリ割り当てを使用しないでくださいQStringQString文字列のメモリ管理を内部で処理します。QStringオブジェクトにメモリを自分で割り当てる場合は、メモリの解放にも注意する必要があります。

あなたの場合、単に使用してください

QComboBox cbb;
QString s = "hallo";
cbb.addItem(s);
于 2013-02-01T11:52:55.757 に答える
1

ポインタを使用する場合は、最初にポインタを参照解除する必要があります。cbb.addItem(* s); とにかく、なぜQStringをヒープに割り当て、comboBox(おそらく親を取得する)をスタックに割り当てるのですか?

于 2013-02-01T11:52:57.840 に答える