1. 事件
事件
是一个描述应用程序中、发生的某些事情的对象。
在 Qt 中,所有事件都继承自 QEvent
,并且每个事件都有特定的标识符,如:Qt::MouseButtonPress
代表鼠标按下事件。
每个事件对象包含该事件的所有相关信息,如:鼠标事件包含鼠标的坐标、按下的按钮等信息。
2. 事件处理器
事件处理器
是用于处理特定类型事件的成员函数,通常以 event 结尾,如:mousePressEvent 、enterEvent 等。
事件处理器定义了当某个事件发生时,应执行的操作。
事件处理器可以分为两类:
- 预定义事件处理器:由 Qt 提供的标准事件处理函数,可以通过重写它们以实现自定义行为。
class SessionFriendItem : public QWidget
{
Q_OBJECT
public:
SessionFriendItem(QWidget* owner, const QIcon& avatar, const QString& name, const QString& text)
: owner(owner), selected(false)
{
// 1. 设置基本属性和样式
this->setFixedHeight(64);
this->setStyleSheet("QWidget { background-color: rgb(236, 233, 231); }");
// 2. 创建网格布局
QGridLayout* layout = new QGridLayout();
layout->setContentMargins(0, 0, 0, 0);
layout->setVerticalSpacing(0); // 设置竖直方向间距
layout->setHorizontalSpacing(0); // 设置水平方向间距
this->setLayout(layout);
// 3. 创建头像
QPushButton avatar_btn = new QPushButton();
avatar_btn->setFixedSize(QSize(46, 46));
avatar_btn->setIconSize(QSize(46, 46));
avatar_btn->setIcon(avatar);
avatar_btn->setStyleSheet