• 大小: 17KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-12
  • 语言: 其他
  • 标签: 弹框定制  

资源简介

说起下拉框,想必大家都比较熟悉,在我们注册一些网站的时候,会出现大量的地区数据供我们选择,这个时候出现的就是下拉框列表,再比如字体选择的时候也是使用的下拉框。下拉框到处可见,作为一个图形库,qt也提供了QtComboBox类来供我们使用,但是有些时候简单的下拉列表已经满足不了我们的需求,如58上选择岗位是一个下拉表格,这个时候就需要我们自己定制一下QComboBox。

资源截图

代码片段和文件信息

#include “stdafx.h“

#include “combobox.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)
{
m_ContentWidget->setProperty(“MouseHover“ hover);
m_ActIcon->setProperty(“MouseHover“ hover);
m_ActText->setProperty(“MouseHover“ hover);

QString styleStr = styleSheet();
setstyleSheet(““);
setstyleSheet(styleStr);
}

void CActionContentWidget::enterEvent(QEvent * event)
{
qDebug() << “CActionContentWidget::enterEvent“;
QWidget::enterEvent(event);
}

void CActionContentWidget::leaveEvent(QEvent * event)
{
qDebug() << “CActionContentWidget::leaveEvent“ << event->type();
QWidget::leaveEvent(event);
}

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()“ << event->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-

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2016-07-27 13:46  combobox\
     文件        8045  2016-07-27 13:38  combobox\combobox.cpp
     文件        1730  2016-07-27 13:46  combobox\combobox.h
     文件        2734  2014-11-25 22:48  combobox\combobox.ico
     文件         106  2016-07-26 17:04  combobox\combobox.qrc
     文件          47  2016-07-26 15:09  combobox\combobox.rc
     文件         801  2016-07-26 17:01  combobox\combobox.ui
     文件       11440  2016-07-26 17:50  combobox\combobox.vcxproj
     文件        3137  2016-07-26 17:50  combobox\combobox.vcxproj.filters
     文件        3508  2016-06-30 12:53  combobox\FlowLayout.cpp
     文件        1142  2016-05-01 20:35  combobox\FlowLayout.h
     文件         196  2016-07-26 15:09  combobox\main.cpp
     目录           0  2016-07-26 17:04  combobox\Resources\
     文件        7317  2016-07-26 17:03  combobox\Resources\icon1.jpg
     文件          21  2016-07-26 15:09  combobox\stdafx.cpp
     文件          22  2016-07-26 15:09  combobox\stdafx.h

评论

共有 条评论

相关资源