QT自定义窗口:
来源:互联网 发布:webstorm js代码提示 编辑:程序博客网 时间:2024/04/30 10:36
QT自定义窗口:
New file--->qt--->qt designer form class--->widget 创建一个干净的vvwidget .ui 和.h .cpp
该窗口支持拖动,透明,效果如图:
/////////////////////////////// vvwidget.h ///////////////////////////////////
#ifndef VVWIDGET_H
#define VVWIDGET_H
#include <QWidget>
#include <QPoint>
#include <QPainter>
#include <QMouseEvent>
#include <QKeyEvent>
namespace Ui {
class vvwidget;
}
class vvwidget : public QWidget
{
Q_OBJECT
public:
explicit vvwidget(QWidget *parent = 0);
~vvwidget();
protected:
void keyPressEvent ( QKeyEvent * event );
void mousePressEvent(QMouseEvent *event);
void mouseMoveEvent(QMouseEvent *event);
void paintEvent( QPaintEvent* );
private:
Ui::vvwidget *ui;
QPoint dragPosition;
};
#endif // VVWIDGET_H
/////////////////////////////////// vvwidget.cpp //////////////////////////////
#include "vvwidget.h"
#include "ui_vvwidget.h"
vvwidget::vvwidget(QWidget *parent) :
QWidget(parent),
ui(new Ui::vvwidget)
{
ui->setupUi(this);
setWindowFlags(Qt::FramelessWindowHint);
setAttribute(Qt::WA_TranslucentBackground, true);
}
vvwidget::~vvwidget()
{
delete ui;
}
void vvwidget::mousePressEvent(QMouseEvent *event)
{
if (event->button() == Qt::LeftButton) {
dragPosition = event->globalPos()-pos();
}
}
void vvwidget::mouseMoveEvent(QMouseEvent *event)
{
if (event->buttons() & Qt::LeftButton) {
move(event->globalPos()-dragPosition);
}
}
void vvwidget::keyPressEvent(QKeyEvent *event)
{
if(event->key()==Qt::Key_Escape){
close();
}
}
void vvwidget::paintEvent( QPaintEvent* )
{
QPainter p(this);
p.drawPixmap(rect(),QPixmap(":/images/vb.png"));
}
这张vb.png 是我从<<热血传奇>>中提取出来的对话框背景,并在左上角抠了个透明区域。
在ui上调了下窗口大小 ,加了两个按钮,意思意思,一切从简,只为表达思想 :-)
- QT自定义窗口:
- 自定义Qt窗口部件
- 自定义 Qt 窗口标题栏
- Qt自定义窗口部件
- Qt自定义窗口事件
- Qt自定义窗口部件
- QT自定义窗口
- Qt自定义窗口部件
- 自定义QT窗口部件外观
- 自定义QT窗口部件外观
- Qt 之 自定义窗口标题栏
- QT自定义窗口以及控件
- Qt:自定义窗口之窗口缩放
- Qt自定义外观--自定义标题栏的窗口
- Qt自定义外观--自定义标题栏的窗口
- Qt学习笔记(三) 自定义窗口部件
- 自定义QT窗口部件外观之QStyle
- Qt自定义弹窗屏蔽父窗口
- 求救SSH系统性能问题-数据库连接泄漏问题[由于帖子不能贴图片,暂时先把问题放这了]
- EJB3.0定时发送jms(发布/定阅)方式
- EJB与JAVA BEAN_J2EE的异步消息机制
- 小程序员对时间管理的一点观点阐述
- 22岁年终总结
- QT自定义窗口:
- QQ远程协助没动静?QQ版本有讲究
- 在Android Shell的根目录下创建文件夹
- HillTop链接分析算法详解
- 在项目中集成hibernate遇到的问题(3)
- NSLog 参数 格式
- POJ 1363 - 模拟栈操作的水题..
- VB控制结构总结
- 操作系统——计算机系统