#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QPaintEvent>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
void paintEvent(QPaintEvent *);
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
#include "MainWindow.h"
#include "ui_MainWindow.h"
#include <QFile>
#include <QToolButton>
#include <QPainter>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
//setWindowFlags(Qt::FramelessWindowHint);
QToolButton *toolbtn=new QToolButton(this);
QFile file(":/style.css");
if(file.open(QIODevice::ReadOnly | QIODevice::Text))
{
QString text=file.readAll();
setStyleSheet(text);
file.close();
}
toolbtn->setProperty("propertyName", 0);//自定义属性
toolbtn->setPopupMode(QToolButton::InstantPopup);
toolbtn->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
//toolbtn->setArrowType(Qt::NoArrow);
toolbtn->setGeometry(20,0,70,32);
toolbtn->setText("文件");
toolbtn->setStyleSheet("QToolButton:hover{color:red;}\
QToolButton:pressed{color:blue;} ");
QMenu *menu1 = new QMenu("menu1",this);
QAction *action1=new QAction(QIcon(":/file_hover.png"),"action1");
QAction *action2=new QAction(QIcon(":/file_pressed.png"),"action2");
QAction *action3=new QAction(QIcon(":/file_hover.png"),"action3");
menu1->addAction(action1);
menu1->addAction(action2);
menu1->addAction(action3);
toolbtn->setMenu(menu1);
QMenu *menu2 = new QMenu("menu2",this);
menu2->setIcon(QIcon(":/file_hover.png"));
QAction *action4=new QAction(QIcon(":/file_hover.png"),"action4");
QAction *action5=new QAction(QIcon(":/file_pressed.png"),"action5");
menu2->addAction(action4);
menu2->addAction(action5);
menu1->addMenu(menu2);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::paintEvent(QPaintEvent *)
{
QStyleOption opt;
opt.init(this);
QPainter p(this);
style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
}
QToolButton
{
color: #b9b9b9;
font-size: 14px;
font-weight: normal;
border: 1px solid #b9b9b9;
border-radius: 0px;
qproperty-icon: url(":/file_pressed.png") center;
qproperty-iconSize: 18px 18px;
}
QToolButton::menu-indicator[propertyName="0"]{image: none;width:0px;}