gpt4 book ai didi

qt - QListWidget 在 Qt 中添加自定义项?

转载 作者:行者123 更新时间:2023-12-04 11:13:43 32 4
gpt4 key购买 nike

如何在 Qt 运行时在 QListWidget 中添加 2 个图像和文本?
我想在列表的开头放置一个图像,在列表的末尾放置一个图像,文本应该在我的第一个图像之后不久。

itemclicked 事件

connect(list, SIGNAL(itemClicked()), this, SLOT(clicked(QListWidgetItem *)));
void MyWidget::clicked(QListWidgetItem *item)
{
//code

}

最佳答案

看看 setItemWidget 功能。您可以设计一个包含两个图标标签和一个文本标签的小部件(称为 MyListItemWidget),并在其构造函数中提供两个图标和文本。然后你可以把它添加到你的 QListWidget .示例代码如下:

QIcon icon1, icon2; // Load them 
MyListItemWidget *myListItem = new MyListItemWidget(icon1, icon2, "Text between icons");
QListWidgetItem *item = new QListWidgetItem();
ui->listWidget->addItem(item);
ui->listWidget->setItemWidget(item, myListItem );

你也应该看看 QListView QItemDelegate 这是设计和显示自定义列表项的最佳选择。

编辑关于您的连接

将信号连接到插槽时,它们的签名应匹配。这意味着一个槽不能有比信号更多的参数。来自 signals-slots documentation

The signals and slots mechanism is type safe: The signature of a signal must match the signature of the receiving slot. (In fact a slot may have a shorter signature than the signal it receives because it can ignore extra arguments.)



这意味着您的信号必须具有 QListWidgetItem *连接中的参数。
connect(list, SIGNAL(itemClicked(QListWidgetItem *)), this, SLOT(clicked(QListWidgetItem *)))

关于qt - QListWidget 在 Qt 中添加自定义项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8047805/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com