91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡(jiǎn)介

Qt 之QToolButton 實(shí)現(xiàn)QQ界面按鈕效果、重新設(shè)置QToolButton菜單按鈕區(qū)域的新功能。

資源截圖

代碼片段和文件信息

#include?“mytoolbutton.h“
#include?yleOption>
#include?
#include?
#include?
#include?
#include?

MyToolButton::MyToolButton(QWidget?*parent??QString?strIcon)
:?QToolButton(parent)
?m_strIcon(strIcon)
{
initControl();
initMenu();
}

MyToolButton::~MyToolButton()
{

}

void?MyToolButton::initControl()
{
this->setCheckable(true);
this->setPopupMode(QToolButton::MenuButtonPopup);
this->setFixedSize(QSize(45?34));
this->setstyleSheet(QString(“QToolButton\
{\
? border-image:?url(%1)?0?0?68?0;\
}\
QToolButton:hover\
{\
border-image:?url(%1)?34?0?34?0;\
}\
QToolButton:pressedQToolButton:checked\
{\
border-image:?url(%1)?68?0?0?0;\
}\
QToolButton::menu-arrow\
{\
border:none\
}\
QToolButton::menu-indicator{\
image:?none;\
}\
QToolButton::menu-button\
{\
background-image:url(:/Resources/toolButton_arrow_tranparent.png);\
}\
QToolButton::menu-button:pressed\
{\
background-image:url(:/Resources/toolButton_arrow.png);\
}“).arg(m_strIcon));
connect(this?SIGNAL(pressed())?this?SLOT(onMousePress()));
connect(this?SIGNAL(clicked())?this?SLOT(onMouseClicked()));
connect(this?SIGNAL(released())?this?SLOT(onMouseRelease()));
connect(this?SIGNAL(signalToolMenuClicked())?this?SLOT(onToolMenuClicked()));

}

void?MyToolButton::initMenu()
{
? m_menu?=?new?QMenu(this);
? QAction*?actionOne?=?m_menu->addAction(“one“);
? QAction*?actionTwo?=?m_menu->addAction(“two“);
}

void?MyToolButton::enterEvent(QEvent?*event)
{
if?(this->isChecked())
{
showMenuArrow();
}
QToolButton::enterEvent(event);
}

void?MyToolButton::leaveEvent(QEvent?*event)
{
hideMenuArrow();
QToolButton::leaveEvent(event);
}

void?MyToolButton::mousePressEvent(QMouseEvent?*event)
{
QstyleOptionToolButton?styleIOption;
initstyleOption(&styleIOption);
if?(Qt::LeftButton?==?event->button()?&&?MenuButtonPopup?==?popupMode())
{
//?獲取QToolButton右邊菜單按鈕的區(qū)域;
QRect?popupButtonRect?=?style()->subControlRect(Qstyle::CC_ToolButton?&styleIOption?Qstyle::SC_ToolButtonMenu?this);
if?(popupButtonRect.isValid()?&&?popupButtonRect.contains(event->pos()))
{
if?(this->isChecked())
{
//m_menu->exec(event->globalPos());
emit?signalToolMenuClicked();
}


}
}
qDebug()?< QToolButton::mousePressEvent(event);
}

void?MyToolButton::mouseReleaseEvent(QMouseEvent?*event)
{
qDebug()?< QToolButton::mouseReleaseEvent(event);
}

void?MyToolButton::nextCheckState()
{
// setChecked(!isChecked()); //?nextCheckState方法?原來(lái)的實(shí)現(xiàn)
this->setChecked(true);
if?(isChecked())
{
showMenuArrow();
// this->setMenu(m_menu);
}
else
{
hideMenuArrow();
// this->setMenu(

?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----

?????文件???????4200??2016-08-23?09:50??MyToolButton.cpp

?????文件????????814??2016-08-23?09:51??MyToolButton.h

-----------?---------??----------?-----??----

?????????????????5014????????????????????2


評(píng)論

共有 條評(píng)論