QT异形图形的开发
2016-03-15 00:06
357 查看
这里的异形图形是指哪种
原图
处理后效果
原代码
部分说明
.cpp 文件
main 文件
原图
处理后效果
原代码
部分说明
这里的异形图形是指哪种?
这里所谓的异形图形是指非正方形或矩形这种规则的图形。 因为,QT普通的一个Dialog或widget生成的一个窗口就是一个矩形或正方形,如果要显示不规则图形,该怎么处理呢?下面是一个简单的小实例。原图
处理后效果
原代码
.h文件#ifndef YIXINGDIALOG_H #define YIXINGDIALOG_H #include <QWidget> #include <QToolButton> class YiXingDialog : public QWidget { Q_OBJECT public: explicit YiXingDialog(QWidget *parent = 0); void paintEvent(QPaintEvent* event); protected: virtual void mouseMoveEvent(QMouseEvent *); signals: public slots: private: QPixmap m_pixmap; }; #endif // YIXINGDIALOG_H
.cpp 文件
#include "yixingdialog.h" #include <QBitmap> #include <QPalette> #include <QPaintEvent> #include <QDebug> #include <QtMath> YiXingDialog::YiXingDialog(QWidget *parent) : QWidget(parent, Qt::FramelessWindowHint) { this->setWindowOpacity(0.9); // 这里设置整体的透明度。 m_pixmap.load(":/images/background.png"); m_pixmap = m_pixmap.scaled(size()); setAutoFillBackground(true); setMask(m_pixmap.mask()); //这里设置遮罩层,如果不设置原图透明部份为黑色。 } void YiXingDialog::paintEvent(QPaintEvent *event) { QPalette bgPalette = this->palette(); bgPalette.setBrush(QPalette::Background, m_pixmap); this->setPalette(bgPalette); //画图操作 } void YiXingDialog::mouseMoveEvent(QMouseEvent *event) { int moveX = cursor().pos().x(); int moveY = cursor().pos().y(); move(moveX, moveY); //这里监控鼠标的移动过程。如果拖动图片时,图片进行移动。 }
main 文件
#include <QApplication> #include "yixingdialog.h" int main(int argc, char *argv[]) { QApplication a(argc, argv); YiXingDialog yixing; yixing.show(); return a.exec(); }
部分说明
那张效果图是可以拖动的,后面的背景是因为在桌面上。如果不在桌面可以看到是透明的。相关文章推荐
- 在 QT5 中使用 SQLITE
- QT学习之路————QT程序在开发板上旋转
- Qt制作应用插件
- 笔记:QT的模态对话框、非模态对话框及QLineEdit的验证器和补全器
- QT解析命令行(QCommandLineOption和QCommandLineParser类)
- 配置QtCreator+CDB远程调试环境(要设置_NT_SYMBOL_PATH和QT_PLUGIN_PATH和Path)
- 让VC2012生成的程序支持XP系统(QT的DLL都是支持XP的,只与EXE有关)
- Cogs 1672. [SPOJ375 QTREE]难存的情缘 LCT,树链剖分,填坑计划
- Qt 自定义控件应用QSS(setStyleSheet)设置由Q_PROPERTY设置的属性
- 基于Jmeter的MQTT测试插件-上
- qt翻译
- Qt信号和槽问题
- QT中qmlRegisterType qmlRegisterSingletonType的区别
- VS2013配置Qt5.4
- Ubuntu 15.10下Qt5的安装实战
- Ubuntu 15.10下Qt5的安装实战
- Qt窗体内控件自适应调整大小
- Qt 如何给Widget设置背景图片
- QT编程解决Error: no such instruction: `swpb %cl,%dl,[%edi]'
- Qt5下实现摄像头预览及捕获图像方法二(openCV3与Qt5交互使用)