QListWidget
是 Qt 框架中的一个控件,用于显示一个列表。在 Qt 中,信号(signals)是一种特殊的成员函数,用于在特定事件发生时通知其他对象。QListWidget
本身并不直接发出信号,但它的子类 QListWidgetItem
可以发出信号。
QListWidget
和 QListWidgetItem
提供了多种信号,例如:
itemClicked(QListWidgetItem *item)
:当用户点击某个列表项时发出。itemDoubleClicked(QListWidgetItem *item)
:当用户双击某个列表项时发出。itemSelectionChanged()
:当列表项选择发生变化时发出。信号和槽机制广泛应用于各种需要响应用户操作或数据变化的场景,例如:
以下是一个简单的示例,展示如何连接 QListWidget
的 itemClicked
信号到一个槽函数:
#include <QApplication>
#include <QListWidget>
#include <QListWidgetItem>
#include <QMessageBox>
class MyListWidget : public QListWidget {
public:
MyListWidget(QWidget *parent = nullptr) : QListWidget(parent) {
connect(this, &QListWidget::itemClicked, this, &MyListWidget::onItemClicked);
}
private slots:
void onItemClicked(QListWidgetItem *item) {
QMessageBox::information(this, "Item Clicked", QString("You clicked: %1").arg(item->text()));
}
};
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
MyListWidget listWidget;
listWidget.addItem(new QListWidgetItem("Item 1"));
listWidget.addItem(new QListWidgetItem("Item 2"));
listWidget.addItem(new QListWidgetItem("Item 3"));
listWidget.show();
return app.exec();
}
通过上述代码和链接,你可以了解更多关于 QListWidget
和信号槽机制的详细信息。
领取专属 10元无门槛券
手把手带您无忧上云