#ifndef FORM_H
#define FORM_H
#include
class Form : public QWidget
{
Q_OBJECT
public:
Form();
~Form();
};
#endif
分类:
2012-12-31 17:04:49
原文地址:QT 透明/半透明+不规则窗体实现 作者:bloodkain
Palette/Mask方式
引用
#ifndef FORM_H
#define FORM_H
#include
class Form : public QWidget
{
Q_OBJECT
public:
Form();
~Form();
};
#endif
引用
#include
#include
#include "toolbutton.h"
#include "form.h"
Form::Form()
{
QPalette p = palette();
QPixmap img("a.png");
QBitmap mask("mask.png");
p.setBrush(QPalette::Window, QBrush(img));
setPalette(p);
setMask(mask);
setWindowFlags(Qt::FramelessWindowHint);
resize(600, 400);
ToolButton *button = new ToolButton(this);
button->move(200, 200);
}
Form::~Form()
{
}
引用
#ifndef TOOLBUTTON_H
#define TOOLBUTTON_H
#include
class ToolButton : public QToolButton
{
Q_OBJECT
public:
ToolButton(QWidget *parent=0);
~ToolButton();
};
#endif
引用
#include
#include
#include "toolbutton.h"
ToolButton::ToolButton(QWidget *parent)
: QToolButton(parent)
{
/*
// 如果是非按钮类部件,则使用此段代码
QPalette p = palette();
p.setBrush(QPalette::Button, QBrush(QPixmap("toolbutton.png")));
setPalette(p);
/*/
// 如果是按钮类部件,则使用此段代码
setIcon(QIcon("toolbutton.png"));
setIconSize(QSize(48, 48));
//*********************************/
setMask(QBitmap("toolbutton_mask.png"));
setFixedSize(48, 48);
}
ToolButton::~ToolButton()
{
}
引用
#include
#include "form.h"
int main(int argc, char **argv)
{
QApplication app(argc, argv);
Form form;
form.show();
return app.exec();
}
点击(此处)折叠或打开
点击(此处)折叠或打开
点击(此处)折叠或打开
点击(此处)折叠或打开
QStyle方式[这个方法基本没用,没法取消子控件的继承,希望css高手提点]
在构造函数中加入如下代码
点击(此处)折叠或打开