1. 在ui 设计中新建一个QPushButton.
2. ileMenu=new QMenu(f.fileMenuBtn);
//f.fileMenuBtn->setStyleSheet("QPushButton:hover{background-image: url();border:none:color:rgb(255,255,255)}");
//f.fileMenuBtn->setStyleSheet("QPushButton:hover{background-image: url();}");
f.fileMenuBtn->setCursor(Qt::PointingHandCursor);
fileMenu->setStyleSheet("background-color:transparent;background-image: url();");
connect(f.fileMenuBtn,SIGNAL(clicked()),this,SLOT(popupFileMenu()));
//fileMenu->setStyleSheet("background-color: transparent;border-style: none;background-image:url(:/images/img/file.png);color:#FFFFFF");
fileMenu->addAction(importFileAct);
fileMenu->addAction(importFolderAct);
fileMenu->addAction(scanPDFAct);
fileMenu->addSeparator();
fileMenu->addAction(exitAct);
fileMenu->setStyleSheet("background-color:#484848;color:#FFFFFF;selection-background-color: rgb(136,136,136);");
3 .popupFileMenu :
void topWidget::popupFileMenu()
{
int px =f.fileMenuBtn->pos().x();
int py = f.fileMenuBtn->pos().y() + f.fileMenuBtn->height();
fileMenu->popup(mapToGlobal( QPoint(px,py) ));
}
完成,我在win7 和 vista 下写的QMenuBar 不能实现透明,所以只能自己定义一个QPushButton当作QMenu了,有谁知道不这样做的方法,谢谢!