Dialog.h:
#ifndef DIALOG_H
#define DIALOG_H
#include <QDialog>
#include<QMouseEvent>
#include <QPainter>
namespace Ui {
class Dialog;
}
class Dialog : public QDialog
{
Q_OBJECT
public:
explicit Dialog(QWidget *parent = 0);
~Dialog();
QPoint dragPosition;
private:
Ui::Dialog *ui;
void paintEvent(QPaintEvent *);
void mousePressEvent(QMouseEvent *event);
void mouseMoveEvent(QMouseEvent *event);
};
#endif // DIALOG_H
Dialog.cpp:
#include "dialog.h"
#include "ui_dialog.h"
Dialog::Dialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::Dialog)
{
ui->setupUi(this);
//setAttribute(Qt::WA_TranslucentBackground, true);
ui->dianji->setIcon(QIcon(":/2.png"));
ui->dianji->setFlat(true);
ui->dianji->setIconSize(QSize(50,30));
ui->zuixiaohua->setIcon(QIcon(":/3.png"));
ui->zuixiaohua->setFlat(true);
ui->zuixiaohua->setIconSize(QSize(50,30));
ui->guanbi->setIcon(QIcon(":/4.png"));
ui->guanbi->setFlat(true);
ui->guanbi->setIconSize(QSize(50,30));
ui->guanbi->setFocusPolicy(Qt::NoFocus);
connect(ui->guanbi,SIGNAL(clicked()),this,SLOT(reject()));
ui->guanbi->setStyleSheet(":hover {background: red; color: red; border: 1 solid red;}");
ui->zuixiaohua->setFocusPolicy(Qt::NoFocus);
ui->zuixiaohua->setStyleSheet(":hover {background: red; color: red; border: 1 solid red;}");
this->setWindowFlags(Qt::FramelessWindowHint);
}
Dialog::~Dialog()
{
delete ui;
}
void Dialog::paintEvent(QPaintEvent *)
{
// QPainter p(this);
// p.setCompositionMode( QPainter::CompositionMode_Clear );
// p.fillRect( 10, 10, 300, 300, Qt::SolidPattern );
QPalette palette;
palette.setBrush(this->backgroundRole(), QBrush(QPixmap(":/1.png"))); //括号内为图片的相对目录
this->setPalette(palette);
}
void Dialog::mousePressEvent(QMouseEvent *event) {
if (event->button() == Qt::LeftButton) {
dragPosition = event->globalPos() - frameGeometry().topLeft();
event->accept();
}
}
void Dialog::mouseMoveEvent(QMouseEvent *event) {
if (event->buttons() & Qt::LeftButton) {
move(event->globalPos() - dragPosition);
event->accept();
}
}