Qt之去除窗口的标题栏、通过鼠标移动窗口
设置标题栏图标,位置与大小示例
#include<QApplication>
#include<QWidget>
#include<QDebug>
#include"mywidget.h"
int main(int argc,char **argv)
{
QApplication app(argc,argv);
//功能新的需求:不再使用框架提供的窗口,自定义一个窗口;
//派生类;
MyWidget w; //MyWidget类继承于基类QWidget类;
w.show();
return app.exec();
} //------------ MyWidget.h -------------------
#ifndef MYWIDGET_H
#define MYWIDGET_H
#include<QMouseEvent>
#include <QWidget> class MyWidget : public QWidget
{
Q_OBJECT
public:
explicit MyWidget(QWidget *parent = );
void mousePressEvent(QMouseEvent *ev);
void mouseMoveEvent(QMouseEvent *ev);
//移动窗口
void mouseReleaseEvent(QMouseEvent *ev);
//释放窗口
//鼠标原始位置
QPoint posMouseOrigin; signals: public slots: }; #endif // MYWIDGET_H //------------ MyWidget.cpp -------------------
#include "mywidget.h"
#include<QDebug>
#include<QWidget>
#include<QPoint>
#include<QMouseEvent>
MyWidget::MyWidget(QWidget *parent) :
QWidget(parent)
{
this->setWindowTitle("QQ ");
this->setWindowIcon(QIcon(":/images/po.jpg"));//设置图标
this->setWindowFlags(Qt::FramelessWindowHint);//去掉标题栏
this->setGeometry(QRect(, , , ));//可设置窗口显示的方位与大小this->setWindowFlags(Qt::FramelessWindowHint); //去掉标题栏; } //获取鼠标的按下操作
void MyWidget::mousePressEvent(QMouseEvent *ev)
{
this->posMouseOrigin = QCursor::pos(); //cursor是一个光标类;
} //获得鼠标移动的操作
void MyWidget::mouseMoveEvent(QMouseEvent *ev)
{
QPoint ptMouseNow = QCursor::pos();
QPoint ptDelta = ptMouseNow - this->posMouseOrigin;
move(this->pos() + ptDelta); posMouseOrigin = ptMouseNow;
} //获得鼠标的释放操作;
void MyWidget::mouseReleaseEvent(QMouseEvent *ev)
{
}
Qt之去除窗口的标题栏、通过鼠标移动窗口的更多相关文章
- QT窗口渐现效果,窗口震动效果,鼠标移动窗口
//窗口渐现效果void MainWindow::closeWindowAnimation() //关闭窗口效果 { QPropertyAnimation *animation = new QProp ...
- 动态隐藏显示窗口的标题栏(同时保持窗口的sizeable性能
今天考虑作界面的时候,想去掉窗体的标题栏,但设置 Form.BorderStyle := bsNone; 会导致窗体不可再 Sizeable (通过鼠标操作改变窗体大小),仔细翻看了相关Help也没找 ...
- Qt窗口的标题栏自绘
因个人需要,要修改Qt Widget的标题栏,网上找了大半天,没有得到答案,但发现问的人比较多 所以现将找到的此文分享一下. (原文:http://www.qtsoftware.com/develop ...
- qt 鼠标拖动窗口放大缩小
// 鼠标拖动 具体实现void mouseMoveEvent(QMouseEvent * pEvent) { if (pEvent->buttons() & Qt::LeftButto ...
- Qt之界面(自定义标题栏、无边框、可移动、缩放)
效果 自定义标题栏 titleBar.h #ifndef TITLEBAR_H #define TITLEBAR_H #include <QLabel> #include <QPus ...
- WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里?
原文:WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 在 WPF 程序中,我们有 Mouse.GetPosition(IInputElement relativeTo) 方法可以拿到鼠标 ...
- ARM Linux Qt 5.x.x 无标题栏
/********************************************************************************* * ARM Linux Qt 5. ...
- 我在tmux中最不可少的配置: 用鼠标切换窗口/调节分屏大小
前两天在给另外一个团队帮忙时,看他们在Rails日志.代码文件.git文件系统里面来回穿梭,觉得他们太累了,于是就介绍了 tmux 给他们用.但只讲了一点基本的开窗口.分屏,没给讲太多技巧,因为一下子 ...
- Duilib 实现右下角弹出像QQ新闻窗口,3秒后窗口透明度渐变最后关闭,若在渐变过程中鼠标放到窗口上,窗口恢复最初状态(二)
效果: 1.定义两个个定时器ID #define ID_TIMER_DISPLAY_DELAY 30 #define ID_TIMER_DISPLAY_CLOSE 40 2.添加一个成员函数和成员变量 ...
随机推荐
- Shell初学(六)Linux Shell 时间运算以及时间差计算方法
Linux Shell 时间运算以及时间差计算方法 时间的加减,以及时间差的计算. 1. 时间加减 这里处理方法,是将基础的时间转变为时间戳,然后,需要增加或者改变时间,变成 秒. 如:1990-01 ...
- sql server如何精准匹配字符中的字符,绝对匹配
举例: 我现在是需要查询这字段里包含1的数据 我如果直接charindex,那么11,12也会被包含. 解决(1): select * from ( select '1,2,12,111' as s ...
- HanLP-实词分词器详解
在进行文本分类(非情感分类)时,我们经常只保留实词(名.动.形)等词,为了文本分类的分词方便,HanLP专门提供了实词分词器类NotionalTokenizer,同时在分类数据集加载处理时,默认使用了 ...
- MY TESTS
励志整理所有的n次考试的博客: [五一qbxt]test1 [五一qbxt]test2 [校内test]桶哥的问题 [6.10校内test] noip模拟 6.12校内test [6.12校内test ...
- 自动生成ID
public class IdUtil { /** * * @return 返回时间id,类似于20191217195622 */ public static String timeId(){ Dat ...
- python多任务——协程的使用
使用yield完成多任务 import time def test1(): while True: print("--1--") time.sleep(0.5) yield Non ...
- Git提交代码的小知识
1.需要切换到项目目录下并创建一个Repository用于提交代码到这个仓库里 cd /g/....//cd后面有空格,用于进入某个项目文件夹 git init//用于创建Repository 2.添 ...
- 爬取YY评级信息
#!/usr/bin/env python # -*- coding: utf-8 -*- # @File : 爬取YY评级基本信息.py # @Author: lattesea # @Date : ...
- O012、Linux如何实现VLAN
参考https://www.cnblogs.com/CloudMan6/p/5313994.html LAN 表示 Local Area Network ,本地局域网,通常使用 Hub 或者 Sw ...
- ArcEngine介绍
一.ArcEngine简介ArcEngine被定位为一个嵌入式的产品,它并非面向最终用户,而是一个面向开发者的产品.对于繁冗的GIS开发工作而言,理想的解决方案是一个基于组件的实用的开发框架,且该框架 ...