• 大小: 5KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-04
  • 语言: 其他
  • 标签: QComboBox  QCheckBox  

资源简介

QComboBox中内嵌QCheckBox 下拉式复选框

资源截图

代码片段和文件信息

#include “ccheckcombox.h“

CCheckCombox::CCheckCombox(QWidget *parent) :
    QComboBox(parent)
{

}

void CCheckCombox::appendItem(const QString &text bool bChecked)
{
    QIcon icon;
    if( bChecked )
    {
        icon.addFile(“:/Image/check.png“);
    }
    else
    {
        icon.addFile(“:/Image/uncheck.png“);
    }

    addItem(icon text bChecked);
}

void CCheckCombox::updateIndexStatus(int index)
{
    bool bChecked = this->itemData(index).toBool();

    if( bChecked )
    {
        this->setItemIcon(index QIcon(“:/Image/uncheck.png“));
    }
    else
    {
        this->setItemIcon(index QIcon(“:/Image/check.png“));
    }

    setItemData(index !bChecked);

    emit checkedStateChange(index !bChecked);
}

void CCheckCombox::mousePressEvent(QMouseEvent *event)
{
    int x = event->pos().x();

    int iconWidth = this->iconSize().width();

    if( x <= iconWidth )
    {
        int index = this->currentIndex();

        updateIndexStatus(index);
    }
    else
    {
        QComboBox::mousePressEvent(event);
    }
}

void CCheckCombox::hidePopup()
{
    int iconWidth = this->iconSize().width();

    int x = QCursor::pos().x() - mapToGlobal(geometry().topLeft()).x() + geometry().x();

    int index = view()->selectionModel()->currentIndex().row();

    if( x >= 0 && x <= iconWidth )
    {
        updateIndexStatus(index);
    }
    else
    {
        QComboBox::hidePopup();
    }
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2014-07-02 15:07  Image\
     文件         271  2014-07-02 15:03  Image\check.png
     文件        4096  2014-07-02 15:07  Image\Thumbs.db
     文件         197  2014-07-02 15:02  Image\uncheck.png
     文件        1495  2014-07-02 15:33  ccheckcombox.cpp
     文件        1291  2014-07-02 15:35  ccheckcombox.h
     文件         465  2014-07-02 15:36  checkCombox.pro
     文件         201  2014-07-02 15:36  main.cpp
     文件         133  2014-07-02 15:08  Resource.qrc
     文件         534  2014-07-02 15:41  widget.cpp
     文件         301  2014-07-02 15:39  widget.h
     文件        1788  2014-07-02 15:52  widget.ui

评论

共有 条评论