资源简介
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
评论
共有 条评论