15,976
社区成员
发帖
与我相关
我的任务
分享
/*!
\brief 初始增加弹出颜色菜单 //pen_mfh
*/
void CFuncColorButton::addPopMenu()
{
setPopupDelay( 0 );
setAutoRaise( TRUE );//鼠標懸浮自動浮起_mfh
connect( this, SIGNAL(clicked()), mapper(), SLOT(map()) ); //?
mapper()->setMapping( this, 0 );
Q3Frame* frame = new Q3Frame(this);
m_subLayout = new QGridLayout( frame );
m_subLayout->setSpacing(0);
m_subLayout->setMargin(0);
QToolButton* sub;
int num = sizeof(_rgbTbl)/sizeof(_rgbTbl[0]);
int i;
for( i=0; i<num; i++ )
{
sub = new QToolButton(frame);
sub->setMaximumSize( QSize(16,16) );
QToolTip::add( sub, QString::fromLocal8Bit(_rgbTbl[i].name) );
sub->setAutoRaise( true );
sub->setIconSet(QIcon( colorPixmap(QColor(_rgbTbl[i].value)) ));
m_subLayout->addWidget( sub, i/7, i%7 );
connect( sub, SIGNAL(clicked()), mapper(), SLOT(map()) );
mapper()->setMapping( sub, 1+i );
}
int rowadd = 0;
sub = new QToolButton(frame);
QSizePolicy sizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed);
sizePolicy.setHeightForWidth(sub->sizePolicy().hasHeightForWidth());
sub->setSizePolicy(sizePolicy);
m_subLayout->addMultiCellWidget( sub, num/7+rowadd, num/7+rowadd, 0, 6 );
sub->setAutoRaise( true );
sub->setText( tr("其它颜色...") );//pen_mfh
connect( sub, SIGNAL(clicked()), mapper(), SLOT(map()) ); //弹出其他颜色选择框
mapper()->setMapping( sub, num+2 );
frame->updateGeometry();
Q3PopupMenu *menu = new Q3PopupMenu(this);
menu->insertItem( frame );//frame不能转化为Qstring
setPopup(menu);
}