背景图片、按钮图片的添加
2012-02-26 19:06
183 查看
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();
}
}
#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();
}
}
相关文章推荐
- MFC用代码添加对话框背景图片和按钮图片
- 如何给对话框添加背景图片及图片按钮CBUttonST
- windows——为按钮添加背景图片
- c++builder为按钮添加背景图片
- 如何给wpf的按钮添加背景图片
- MFC 基础知识:对话框背景添加图片和按钮Button添加图片
- 给FileUpload按钮添加背景图片
- 【Java源代码】如何在按钮上添加图片背景
- QT 添加背景图片,按钮不被覆盖
- jsp中给按钮添加背景图片
- wp7给图片和按钮添加背景图片
- 在MFC中添加背景图片和制作图片按钮
- 给表单按钮添加背景图片
- MFC 基础知识:对话框背景添加图片和按钮Button添加图片
- MFC 基础知识:对话框背景添加图片和按钮Button添加图片
- 【WPF】Button按钮添加背景图片
- VS2010/MFC 按钮控件添加bmp图片背景
- UCGUI/emWIN给按钮添加背景图片
- UIlabel添加背景图片
- react添加背景图片