• 5616阅读
  • 2回复

在windowsVista and windows 7 下创建透明菜单 [复制链接]

上一主题 下一主题
离线binbinming
 
只看楼主 倒序阅读 楼主  发表于: 2010-05-10
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了,有谁知道不这样做的方法,谢谢!
离线banyibanyi

只看该作者 1楼 发表于: 2010-05-10
setAttribute不行吗? 翻老帖吧
离线binbinming
只看该作者 2楼 发表于: 2010-05-10
实过了,setAttribute 确实不行,难道是我机器问题?
快速回复
限100 字节
 
上一个 下一个