文档章节

qt 窗口自绘、鼠标响应拖动窗口

Ne0o0
 Ne0o0
发布于 2016/04/27 11:07
字数 156
阅读 50
收藏 0
  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();
   }
}

© 著作权归作者所有

Ne0o0
粉丝 2
博文 70
码字总数 29011
作品 0
程序员
私信 提问
Qt之实现360安全卫士主界面(二)

上一篇博文【Qt之实现360安全卫士主界面(一)】讲解了使用Qt对360安全卫士界面怎么进行分割、布局,如何自定义窗口以及设置窗口背景圆角等,最终形成了一个类似的主界面。但是界面却不能移动,...

长平狐
2012/11/06
735
0
【Qt笔记】布局管理器

所谓 GUI 界面,归根结底,就是一堆组件的叠加。我们创建一个窗口,把按钮放上面,把图标放上面,这样就成了一个界面。在放置时,组件的位置尤其重要。我们必须要指定组件放在哪里,以便窗口...

大道无名
2016/07/29
73
0
初识Qt绘图QGraphicsItem

最近学习Qt绘图,花了很长的时间,也费了一些心思,好在有所收获,也不枉这几个月的各种苦熬,在这里做一些总结。如题目所说,这也只是初识QGraphicsItem,我需要做的是继续往后学习,只是希...

剑神
2013/05/22
17.3K
2
1.OpenGL学习之建立窗口

使用OpenGL绘图   OpenGL是绘制三维图形的标准API。从Qt5开始,OpenGL不再是单独模块,而作为Qt GUI核心的一部分。OpenGL本身只提供平台无关的画图功能,而不包含特定平台的窗口处理功能。...

webzhuce
2017/12/04
0
0
拖放技术一

拖放 Drag and Drop,有时又被称为 DnD,是现代软件开发中必不可少的一项技术。它提供了一种能够在应用程序内部甚至是应用程序之间进行信息交换的机制,并且,操作系统与应用程序之间进行剪贴...

晨曦之光
2012/04/13
141
0

没有更多内容

加载失败,请刷新页面

加载更多

rime设置为默认简体

转载 https://github.com/ModerRAS/ModerRAS.github.io/blob/master/_posts/2018-11-07-rime%E8%AE%BE%E7%BD%AE%E4%B8%BA%E9%BB%98%E8%AE%A4%E7%AE%80%E4%BD%93.md 写在开始 我的Arch Linux上......

zhenruyan
今天
4
0
简述TCP的流量控制与拥塞控制

1. TCP流量控制 流量控制就是让发送方的发送速率不要太快,要让接收方来的及接收。 原理是通过确认报文中窗口字段来控制发送方的发送速率,发送方的发送窗口大小不能超过接收方给出窗口大小。...

鏡花水月
今天
8
0
OSChina 周日乱弹 —— 别问,问就是没空

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @tom_tdhzz :#今日歌曲推荐# 分享容祖儿/彭羚的单曲《心淡》: 《心淡》- 容祖儿/彭羚 手机党少年们想听歌,请使劲儿戳(这里) @wqp0010 :周...

小小编辑
今天
876
10
golang微服务框架go-micro 入门笔记2.1 micro工具之micro api

micro api micro 功能非常强大,本文将详细阐述micro api 命令行的功能 重要的事情说3次 本文全部代码https://idea.techidea8.com/open/idea.shtml?id=6 本文全部代码https://idea.techidea8....

非正式解决方案
今天
5
0
Spring Context 你真的懂了吗

今天介绍一下大家常见的一个单词 context 应该怎么去理解,正确的理解它有助于我们学习 spring 以及计算机系统中的其他知识。 1. context 是什么 我们经常在编程中见到 context 这个单词,当...

Java知其所以然
昨天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部