QComBoBox代理实现登录功能

简述

许多人在使用Qt的时候,特别是在准备做一个像登录框一样的界面的时候。在账号栏我们多见到像下图一样的情况。
本文就重点关于账号栏是实现进行讨论。大家一般第一印象就感觉应该用QComBoBox实现。但仅仅只使用QComBoBox是无法达到下图的效果的。

实现

在考虑如何实现的时候,我们要自定义一个组件来代替下拉框中的QComBoBox原生组件
下面看一下我们的例子,在这个例子我们会实现一个QLabel和一个QPushButton的横向布局并重新实现一些事件。

#ifndef LOGINWINDOWACCOUNTITEM_H
#define LOGINWINDOWACCOUNTITEM_H
//这是一个用于自定义QComboBox的代理控件
//主要会包含一个QLabel和一个QPushButton
#include <QWidget>
#include <QMouseEvent>
class QLabel;
class QPushButton;
class LoginWindowAccountItem : public QWidget
{
    Q_OBJECT

public:
    LoginWindowAccountItem(QWidget *parent=0);
    ~LoginWindowAccountItem();
    //set - get accountName
    QString getAccountName() const;
    void setAccountName(const QString&);
signals:
    void sgn_removeAccount(QString);//移除这个账户,QString为当前accountName的值
    void sgn_showAccount(QString);//展示我们刚才所选的这个Item
public slots:
    void slt_removeAccountItem();//删除账户槽
protected:
    //重写鼠标按下与释放,以此来实现点击item进行当前item的替换
    void mousePressEvent(QMouseEvent *);
    void mouseReleaseEven
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值