我有课
class MyClass
{
public:
QString name;
int age;
};
...
MyClass* itm1= new MyClass();
itm1->name="John";
itm1->age=20;
我想将 itm1 添加到将显示 itm1->name
的 QListWidget 中,当我双击列表中的项目以在消息框中显示 itm1->age
.
欢迎任何帮助!
最佳答案
这应该有效。
QListWidget* listWidget = new QListWidget();
connect(listwidget, SIGNAL (itemDoubleClicked(QListWidgetItem*)), yourClass, SLOT(itemDoubleClicked(QListWidgetItem*)));
MyClass* itm1= new MyClass();
itm1->name="John";
itm1->age=20;
QListWidgetItem* item(itm1->name);
item->setData(Qt::UserRole, itm1->age);
listWidget->addItem(item);
然后将其添加为插槽。
void YourClass::itemDoubleClicked(QListWidgetItem* item) {
int age = item->data(Qt::UserRole);
QMessageBox messageBox;
messageBox.setText(QString::number(age));
messageBox.exec();
}
关于qt - 添加对象到 QListWidget,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28437432/