Qt 事件处理:理解处理器、过滤器与事件系统

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
评论 27
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值