c++ - QListWidget : Event on item click

标签 c++ qt

基本上,我有以下内容:

一个 QListWidget,里面有一些像这样的项目:

ListMail 是我的 QListWidget。 在这个 QListWidget 中,我有如下元素:“Mail 1”、“Mail 2”、...

而且我不知道如何在(例如)“邮件 1”上发出信号绑定(bind)到插槽 (onClick) 或类似的东西。

我已经尝试过类似的东西: connect(ui->listMail->selectedItems(0), SIGNAL(triggered()), this, SLOT(openMessage()),但是根本不起作用...

有什么帮助吗?

谢谢!

最佳答案

您必须绑定(bind)到 itemClicked信号。该信号将为您提供一个 QListWidgetItem*,这是被点击的项目。然后您可以检查它并检查它是否是第一个:

MyClass::MyClass(QWidget* parent)
    : QWidget(parent)
{
    connect(ui->listMail, SIGNAL(itemClicked(QListWidgetItem*)), 
            this, SLOT(onListMailItemClicked(QListWidgetItem*)));
}

void MyClass::onListMailItemClicked(QListWidgetItem* item)
{
    if (ui->listMail->item(0) == item) {
        // This is the first item.
    }
}

关于c++ - QListWidget : Event on item click,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15311241/

相关文章:

c++ - STL列表中结构的自动初始化

c++ - 我可以将 c++ sanitizer 仅应用于我的程序部分而不是第三方库吗

c++ - 为什么这个语句没有改变数组?

c++ - 仅专门化嵌套模板

c++ - 加载主 QT/QML GUI 窗口会减慢启动画面的渲染速度

c++ - Qt 3D : How to draw a cube with different textures on each face?

c++ - CMake Clang无法编译OpenGL Hello World

linux - 在 QT5 中使用 qtmotifextension

qt - 如果我多次连接相同的插槽,插槽会被多次调用吗?

c++ - 打印字节序列