我正在使用QT创建聊天信使客户端。要显示在线用户列表,我使用QListWidget
,如下所示:
listWidget = new QListWidget(horizontalLayoutWidget);
listWidget->setObjectName("userList");
QSizePolicy sizePolicy1(QSizePolicy::Preferred, QSizePolicy::Expanding);
sizePolicy1.setHorizontalStretch(0);
sizePolicy1.setVerticalStretch(0);
sizePolicy1.setHeightForWidth(listWidget->sizePolicy().hasHeightForWidth());
listWidget->setSizePolicy(sizePolicy1);
listWidget->setMinimumSize(QSize(30, 0));
listWidget->setMaximumSize(QSize(150, 16777215));
listWidget->setBaseSize(QSize(100, 0));
listWidget->setContextMenuPolicy(Qt::CustomContextMenu);
通过不断更新列表来显示用户,如下所示:(注意:有不同的渠道,具有不同的用户列表,因此,据我所知,刷新它是最有效的方法。)
void FMessenger::refreshUserlist()
{
if (currentPanel == 0)
return;
listWidget = this->findChild<QListWidget *>(QString("userList"));
listWidget->clear();
QList<FCharacter*> charList = currentPanel->charList();
QListWidgetItem* charitem = 0;
FCharacter* character;
foreach(character, charList)
{
charitem = new QListWidgetItem(character->name());
// charitem->setIcon(QIcon(":/Images/status.png"));
listWidget->addItem(charitem);
}
}
这一直都很完美。我注意到的那条线是我遇到的问题:我目前的目标是能够显示用户的在线状态和图像,表示他们是忙,离,可用等。使用setIcon()
显然没有做任何事情;这些物品仍然像以前一样出现,没有图标。
我知道这可能不是这个功能需要使用的方式,但我在网上找不到关于它的文档,绝对没有实用的实例。我的问题是,有人可以帮我解决这个问题吗?
答案 0 :(得分:3)
这是您进行调试的方式: