qt 窗口自绘、鼠标响应拖动窗口
2016-04-27 00:00
549 查看
摘要: 响应鼠标拖动窗口
setWindowFlags(Qt::FramelessWindowHint|Qt::WindowSystemMenuHint|Qt::WindowMinMaxButtonsHint); this->setWindowOpacity(0.95); this->setAttribute(Qt::WA_TranslucentBackground); QString MainWindow::loadQss(QString szFilePath) { QString szQss,line; QFile file(szFilePath); if(!file.open(QIODevice::ReadOnly|QIODevice::Text)) { qDebug()<<"can't open file !"<<endl; return ""; } QTextStream txts(&file); szQss=line=txts.readLine(); while (!line.isNull()) { line=txts.readLine(); szQss+=line; } return szQss; } void MainWindow::paintEvent(QPaintEvent *e) { QPainter painter(this); QBrush windowBrush(QColor(228, 238, 250)); QPen windowPen(Qt::NoPen); painter.setBrush(windowBrush); painter.setPen(windowPen); painter.setRenderHint(QPainter::Antialiasing,true); painter.drawRoundedRect(QRect(0,5,this->width(),this->height()-5),15,15); painter.drawPixmap(15,8,m_titlePixmap.width(),m_titlePixmap.height(),m_titlePixmap); painter.setPen(Qt::black); painter.drawText(40,25,m_szTitle); } void MainWindow::mousePressEvent(QMouseEvent *ev) { if(ev->button()==Qt::LeftButton) { m_ptDrag=frameGeometry().topLeft()-ev->globalPos(); ev->accept(); } } void MainWindow::mouseMoveEvent(QMouseEvent *ev) { if(ev->buttons()&Qt::LeftButton) { if(m_ptDrag!=QPoint(-1,-1)) { move(ev->globalPos()+m_ptDrag); } ev->accept(); } }
相关文章推荐
- QT学习 第一章:基本对话框
- 使用Shiboken为C++和Qt库创建Python绑定
- Qt 5.6更新至RC版,最终版本近在咫尺
- Qt定时器和随机数详解
- Qt实现图片移动实例(图文教程)
- Qt for Android开发实例教程
- QModelIndex/Role/Model介紹<二>
- Qt Model/View/Delegate浅谈 - QAbstractListModel
- Qt Model/View/Delegate浅谈 - roleNames()
- 基于PyQt5的快速开发框架QFramer
- OSX下安装PyQt
- ok6410开发板移植DirectFB手记
- 【笔记】给Qt内嵌一个Chrome吧
- 【算法】最短路径之A*搜索
- qt入门必备
- 在 Qt4 中使用 C++11
- Hello Word ~ v0.2.2 背单词软件发布 -- By WHYPRO
- ubuntu下opencv和qt的安装配置
- linux下opengl的安装(with qt)
- qt 学习小节