Qt 圆角矩形+鼠标左键拖动窗口
2016-04-19 16:50
477 查看
#ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> namespace Ui { class MainWindow; } class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent = 0); ~MainWindow(); protected: void paintEvent(QPaintEvent *event); void mousePressEvent(QMouseEvent *event); void mouseMoveEvent(QMouseEvent *event); void mouseReleaseEvent(QMouseEvent *event); private: Ui::MainWindow *ui; QPoint m_pos; bool m_drag; }; #endif // MAINWINDOW_H
#include "mainwindow.h" #include "ui_mainwindow.h" #include <QPainter> #include <QBitmap> #include <QMouseEvent> MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); ui->menuBar->close(); ui->mainToolBar->close(); ui->statusBar->close(); setFixedSize(400, 300); setWindowFlags(Qt::FramelessWindowHint); m_drag = false; } MainWindow::~MainWindow() { delete ui; } void MainWindow::paintEvent(QPaintEvent *event) { Q_UNUSED(event); QBitmap bitmap(this->size()); QPainter painter(&bitmap); painter.fillRect(this->rect(), Qt::white); painter.setBrush(QColor(0, 0, 0)); painter.setRenderHint(QPainter::Antialiasing); painter.setPen(QPen(Qt::blue, 1, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin)); painter.drawRoundedRect(this->rect(), 4, 4); this->setMask(bitmap); } void MainWindow::mousePressEvent(QMouseEvent *event) { if (Qt::LeftButton == event->button()) { m_drag = true; m_pos = event->pos(); } } void MainWindow::mouseMoveEvent(QMouseEvent *event) { Q_UNUSED(event); if (m_drag) { this->move(event->globalPos() - m_pos); } } void MainWindow::mouseReleaseEvent(QMouseEvent *event) { Q_UNUSED(event); m_drag = false; }
相关文章推荐
- Opencv + Qt(VS编译器MSVC版本)的使用
- Qt 程序构建执行过程中出错:make: *** No rule to make target ` ‘, needed by xxx. Stop.
- qt4.8程序打包 64位
- Qt 控件
- qt获取IP地址
- 解决QT5.5.1 could not find or load the Qt platform plugin "windows"
- Qt for Windows:Qt 5.5 MinGW 静态编译版本制作带Mysql
- ubuntu下Qt cannot find -lGL错误的解决方法
- Qt 使用statusBar来显示程序打印信息
- Ubuntu qt-4.8.1 SDK 安装
- 【QT】:QT实现连接opencv,版本为2.3.10
- Qt音频播放器
- Qt学习记录--05 函数指针以及类函数指针用于Qt信号槽
- qt4.8.7 2016年4月18日 error reading collection file qthelpcollection cannot load sql
- window10下qt creator下自定义并使用 基于Qt5.3.2
- Qt之图形(渐变填充)
- Qt之图形(渐变填充)
- 艰难的Qt学习之路——可视化排序演示
- PyQt5-Beginner-tutorial-part 2
- 基于QT和opencv的摄像头(本地图片)读取并输出程序