1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- #include "CheckHeaderView.h"
- #include "CAppInfo.h"
- CheckHeaderView::CheckHeaderView(int checkColumnIndex,
- Qt::Orientation orientation,
- QWidget * parent ) :
- QHeaderView(orientation, parent)
- {
- // 创建checkbox;
- QString sCheckStyle = QString(R"(QCheckBox
- {
- outline: none;
- height:%1px;
- font-size:%2px;
- font-family:"Microsoft YaHei";
- font-weight:400;
- color:rgba(102,102,102,1);
- }
- QCheckBox::indicator
- {
- width:%3px;
- height:%4px;
- }
- QCheckBox::indicator:unchecked
- {
- border: %5px solid rgba(228,229,235,1);
- border-radius:%6px;
- background:rgba(239,240,245,1);
- }
- QCheckBox::indicator:checked
- {
- border-image: url(:/images/icon-checkbox-checked.png);
- })").arg((int)(g_appInfoPtr->m_fRate * 26))
- .arg((int)(g_appInfoPtr->m_fRate * 14))
- .arg((int)(g_appInfoPtr->m_fRate * 14))
- .arg((int)(g_appInfoPtr->m_fRate * 14))
- .arg((int)(g_appInfoPtr->m_fRate * 1))
- .arg((int)(g_appInfoPtr->m_fRate * 3));
- m_CheckIdex = checkColumnIndex;
- m_checkBox = new QCheckBox(this);
- m_checkBox->setStyleSheet(sCheckStyle);
- QObject::connect(m_checkBox, SIGNAL(stateChanged(int)), this, SLOT(stateChanged(int)));
- }
- void CheckHeaderView::stateChanged(int state)
- {
- emit checkboxStateChanged(state);
- }
- void CheckHeaderView::paintSection(QPainter *painter, const QRect &rect, int logicalIndex) const
- {
- painter->save();
- QHeaderView::paintSection(painter, rect, logicalIndex);
- painter->restore();
- if (logicalIndex == m_CheckIdex)
- {
- m_checkBox->setGeometry(rect);
- }
- }
|