Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
通常我会通过说将项目添加到 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*&)'
我该如何解决这个问题?
不要将动态内存分配与QString. QString在内部处理字符串的内存管理 - 如果您QString自己为对象分配内存,您还需要注意释放内存。
QString
在您的情况下,只需使用
QComboBox cbb; QString s = "hallo"; cbb.addItem(s);
如果您使用指针,您需要先取消引用它: cbb.addItem(*s); 无论如何,您为什么要在堆上分配 QString 而在堆栈上分配组合框(很可能会获得父级)?