資源簡介
列表下拉框、表格下拉框和城市列表下拉框。講述博客:Qt之QComboBox定制(二)

代碼片段和文件信息
#include?“stdafx.h“
#include?“CComboBox.h“
CActionContentWidget::CActionContentWidget(const?QString?&?text?QWidget?*?parent?/*=?nullptr*/)?:QWidget(parent)
{
InitializeUI();
SetContentText(text);
}
CActionContentWidget::~CActionContentWidget()
{
}
void?CActionContentWidget::SetContentText(const?QString?&?text)
{
if?(m_ActText)
{
m_ActText->setText(text);
}
}
void?CActionContentWidget::SetItemIcon(const?QString?&?icon?const?QString?&?hover)
{
setstyleSheet(QString(“QWidget#m_ContentWidget{background:#f0eeee;}“
“QWidget#m_ContentWidget[MouseHover=true]{background:#f2868b;height:30px;}“//f2868b
“QLabel{color:#777777;font-family:%1;font-size:12px;padding-left:8px;background:#f6f6f6;}“
“QLabel[MouseHover=true]{color:#ffffff;font-family:%1;font-size:12px;padding-left:8px;background:transparent;}“//f2868b
“QPushButton{border-image:url(%2);?margin:2?2?2?2;}“
“QPushButton[MouseHover=true]{border-image:url(%3);?margin:3?3?3?3;}“
).arg(QStringLiteral(“微軟雅黑“)).arg(icon).arg(hover));
}
void?CActionContentWidget::SetBackgroundRole(bool?hover)
{
QString?styleStr?=?styleSheet();
setstyleSheet(““);
setstyleSheet(styleStr);
}
bool?CActionContentWidget::eventFilter(Qobject?*?obj?QEvent?*?event)
{
if?(obj?==?m_ActIcon?||?obj?==?m_ActText)
{
if?(QMouseEvent?*?mouseEvent?=?static_cast(event))
{
if?(QEvent::MouseMove?==?event->type())
{
qDebug()?<“event->type()“?<type();
}
}
}
return?QWidget::eventFilter(obj?event);
}
void?CActionContentWidget::mousePressEvent(QMouseEvent?*?event)?
{
if?(event->button()?==?Qt::LeftButton)
{
m_Mouse_press?=?true;
}
}
void?CActionContentWidget::mouseReleaseEvent(QMouseEvent?*?event)?
{
if?(m_Mouse_press)
{
emit?showText(m_ActText->text());
m_Mouse_press?=?false;
}
}
void?CActionContentWidget::InitializeUI()
{
m_ContentWidget?=?new?QWidget();
m_ActIcon?=?new?QPushButton();
m_ActText?=?new?QLabel();
QHBoxLayout?*?mainLayout?=?new?QHBoxLayout();
connect(m_ActIcon?&QPushButton::clicked?this?[this]{
emit?showText(m_ActText->text());
});
m_ActIcon->installEventFilter(this);
m_ActText->installEventFilter(this);
mainLayout->setMargin(0);
mainLayout->setSpacing(0);
m_ActIcon->setFixedSize(45?45);
m_ContentWidget->setobjectName(QStringLiteral(“m_ContentWidget“));
m_ActIcon->setobjectName(QStringLiteral(“ActionIcon“));
m_ActText->setobjectName(QStringLiteral(“m_ActText“));
mainLayout->addWidget(m_ActIcon);
mainLayout->addWidget(m_ActText);
m_ContentWidget->setLayout(mainLayout);
QVBoxLayout?*?fwLayout?=?new?QVBoxLayout();
fwLayout->setMargin(0);
fwLayout->setSpacing(0);
fwLayout->addWidget(m_ContentWidget);
setLayout(fwLayout);
}
bool?CCheckBoxItem::hitButton(const?QPoint?&?pos)?const
{
bool?r?=?QCheckBox::hitButton(pos);
qDebug()?<“r“?<
return?true;
}
CComboBoxWidget::CComboBoxWidget(S
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2016-08-12?16:17??combobox\
?????文件???????14278??2016-08-03?16:15??combobox\CComboBox.cpp
?????文件????????3521??2016-08-03?12:22??combobox\CComboBox.h
?????文件????????1179??2016-08-03?13:47??combobox\CComboBox.ui
?????文件????????5334??2016-08-03?14:06??combobox\CDropDownBox.cpp
?????文件????????1977??2016-08-03?13:51??combobox\CDropDownBox.h
?????文件????????6911??2016-08-04?22:10??combobox\CityComboBox.cpp
?????文件????????2481??2016-08-04?22:10??combobox\CityComboBox.h
?????文件????????2734??2014-11-25?22:48??combobox\combobox.ico
?????文件?????????198??2016-08-12?14:52??combobox\combobox.qrc
?????文件??????????47??2016-07-26?15:09??combobox\combobox.rc
?????文件???????17551??2016-08-04?22:27??combobox\combobox.vcxproj
?????文件????????4341??2016-08-04?22:27??combobox\combobox.vcxproj.filters
?????文件?????????673??2016-08-12?14:50??combobox\combobox.vcxproj.user
?????文件???????18622??2016-08-12?15:58??combobox\CustomPopupComboBox.cpp
?????文件????????5566??2016-08-12?16:17??combobox\CustomPopupComboBox.h
?????文件????????3508??2016-06-30?12:53??combobox\FlowLayout.cpp
?????文件????????1142??2016-05-01?20:35??combobox\FlowLayout.h
?????文件????????3555??2016-08-05?15:59??combobox\main.cpp
?????目錄???????????0??2016-08-12?14:51??combobox\Resources\
?????文件???????23654??2016-07-29?14:25??combobox\Resources\827497276600926646.png
?????文件????????1052??2016-08-10?11:12??combobox\Resources\bg.png
?????文件????????7317??2016-07-26?17:03??combobox\Resources\icon1.jpg
?????文件??????????23??2016-08-03?16:54??combobox\stdafx.cpp
?????文件??????????48??2016-08-03?17:42??combobox\stdafx.h
?????文件????????1073??2016-08-04?22:37??combobox\TextComboBox.cpp
?????文件?????????449??2016-08-04?22:35??combobox\TextComboBox.h
?????文件?????????967??2016-08-04?22:29??combobox\TextComboBox.ui
- 上一篇:qt之QComboBox定制
- 下一篇:停靠窗自動隱藏
評論
共有 條評論