如何将字符串添加到QCombobox

时间:2013-02-01 11:50:07

标签: qt qcombobox

通常我会通过说:

将项目添加到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*&)'

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:9)

不要在QString使用动态内存分配。 QString在内部处理字符串的内存管理 - 如果您自己为QString对象分配内存,则还需要注意释放内存。

在您的情况下,只需使用

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

答案 1 :(得分:1)

如果你使用指针,你首先需要解除它的参考:cbb.addItem(* s);无论如何,你为什么要在堆上分配一个QString而在堆栈上分配comboBox(很可能会得到一个父类)?