Qt隐藏标题栏,鼠标实现窗口右下角放缩窗口

这篇具有很好参考价值的文章主要介绍了Qt隐藏标题栏,鼠标实现窗口右下角放缩窗口。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

#include <QPoint>
#include <QMouseEvent>
#include <QTimer>
class CDemo : public QDialog
{
	Q_OBJECT

public:
	CDemo(QWidget *parent = Q_NULLPTR);
protected:
	void mouseMoveEvent(QMouseEvent *event);
	void mousePressEvent(QMouseEvent *event);
	void mouseReleaseEvent(QMouseEvent* event);//鼠标释放事件

private:
	Ui::CDemoClass ui;
private:
	bool m_isLeftPressed = false; //判断是否是左键点击
	QPoint m_clickedPositon;      //获取鼠标左键按下时光标在全局(屏幕而非窗口)的位置
	int m_distance=20;

};

#include "CDemo.h"
#include <QPushButton>
#include <QDebug>
CDemo::CDemo(QWidget *parent)
	: QDialog(parent)
{
	ui.setupUi(this);
	this->setWindowFlags(Qt::FramelessWindowHint); //隐藏菜单栏
	setMouseTracking(true);//设置鼠标追踪
}

void CDemo::mouseMoveEvent(QMouseEvent *event)
{
	Q_UNUSED(event);
	if (this->isFullScreen()) return;//全屏时不处理
	QPoint t_pos(this->geometry().width(), this->geometry().height());
	m_distance = QLineF(t_pos, event->pos()).length();
	if ( m_distance < 10){
		setCursor(Qt::SizeFDiagCursor);
	}else{
		setCursor(Qt::ArrowCursor);
	}
	if (m_isLeftPressed)//是否左击
	{
		QPoint t_pos = event->globalPos();//当前鼠标在桌面上的位置
		t_pos = t_pos - m_clickedPositon;//减去点击时的点,得到新的点(x,y)是右下角的移动距离
		QRect t_lastWidget = this->geometry();//窗口的几何位置
		t_lastWidget.setBottomRight(t_lastWidget.bottomRight() + t_pos);//改变窗口右下角的位置
        //设置最小大小
		if (t_lastWidget.size().width()<200 || t_lastWidget.size().height() < 200)
		{
			return;
		}
		this->setGeometry(t_lastWidget);//更新窗口的集合位置
		m_clickedPositon = event->globalPos();//更新位置
	}
}

void CDemo::mousePressEvent(QMouseEvent *event)
{
	Q_UNUSED(event);
	if (event->button() == Qt::LeftButton && m_distance < 10)
	{
		this->m_isLeftPressed = true;
		QPoint t_pos = event->globalPos();
		m_clickedPositon = t_pos;//记录点击时的点的坐标
	}

}

void CDemo::mouseReleaseEvent(QMouseEvent* event)
{
	Q_UNUSED(event);
	if (m_isLeftPressed)
		m_isLeftPressed = false;
	setCursor(Qt::ArrowCursor);
}




重写鼠标移动事件就可以了,如果想实现其它位置的缩放,可以自己根据鼠标的位置来实现,思路都是一样的文章来源地址https://www.toymoban.com/news/detail-537060.html

到了这里,关于Qt隐藏标题栏,鼠标实现窗口右下角放缩窗口的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Win11电脑右下角时间显示秒方法教学

           Win11电脑右下角时间显示秒方法教学。Win11系统的最新版本已经可以支持状态栏显示秒的功能了。如果你使用的Win11不是最新版本,其实也是可以实现秒数的显示的。接下来我们就来看看具体的设置方法吧。         具体操作如下: 1、无法直接通过修改Win11注册

    2024年02月11日
    浏览(111)
  • pycharm右下角出现IDE error occured

    在使用pycharm运行程序的时候,右下角出现了IDE error occured,see detail submit display的提示 解决方案: 在PyCharm中出现“IDE error occurred”的错误提示通常是由于程序崩溃或Python解释器故障引起的。以下是可能导致此错误的一些常见原因和解决方案: 1 问题插件:有些PyCharm插件可能

    2024年02月12日
    浏览(46)
  • uniapp写出文本域,右下角并限制字数200

    js代码  在data中定义一个变量desc   desc: \\\'\\\', descInput(e) {     console.log(e.detail.value.length, \\\'输入的字数\\\') },  样式: .textarea_box{     padding: 20rpx;     background-color: #F2F2F2;     /deep/ .uni-textarea-textarea{         font-size: 28rpx;         line-height: 45rpx;     }     .num{         t

    2024年02月10日
    浏览(50)
  • windows11电脑右下角没有输入法解决方法

    打开windows11电脑的设置选项,点击高级键盘设置,勾选使用桌面语言栏选项,点击保存就能在右下角找到输入法了,还可以尝试打开运行窗口,输入ctfmon.exe命令回车,这样就能快速打开输入法啦。 windows11电脑右下角没有输入法解决方法 1、使用键盘组合键“win+I”直接打开

    2024年02月05日
    浏览(69)
  • 任务栏右下角上网拨号连接图标不能显示的解决方法

    上网拨号连接图标不能显示的解决方法如下: 右击【网上邻居】图标,在弹出的快捷菜单中执行【属性】命令,在弹出的【网络连接】窗口中右击【本地连接】图标,在win7系统下载弹出的快捷菜单中执行【属性】命令;在【本地连接属性】对话框中选中最后两项复选框操作如

    2024年02月06日
    浏览(56)
  • idea右下角显示git管理图标,IDEA功能显示

    IntelliJ IDEA 2021.2.1 左右的版本如下图勾选即可 显示services窗口 点击设置图标,勾选Show Services Tree即可

    2024年02月16日
    浏览(56)
  • 【Unity】去除Unity打包出来右下角trial version 水印

    今天打包出来在android机上跑突然发现右下角出现trial version水印,网上找了很多发现都千篇一律的说到unity的Help下面的Manage License下去下载许可证,再在官网上去重新激活许可证再下载下来重新打开Unity,但是自己操作发现流程跟他们说的完全不一样,因为Unity和UnityHub版本更新

    2024年03月18日
    浏览(126)
  • allegro 差分等长布线时,右下角提示 Sphase 和 Rdly 的区别

    allegro 差分等长布线时,右下角提示 Sphase 和 Rdly 的区别 布差分线时,自己做个备忘。 Static Phase Tolerance(Sphase): 这个约束设置了两根差分线之间的差值 Relative Propagation Daley (RDly):这个约束设置了match group的等长

    2024年02月15日
    浏览(48)
  • IDEA创建完Maven工程后,右下角一直显示正在下载Maven插件

    这是由于新建的Maven工程,IDEA会用它内置的默认的Maven版本,使用国外的网站下载Maven所需的插件,速度很慢 。 每次创建 Project 后都需要设置 Maven 家目录位置(就是我们自己下载的Maven),否则 IDEA 将使用内置的 Maven(不稳定)并使用默认的本地仓库位置。这样一来,我们在

    2024年02月08日
    浏览(66)
  • 【Win10系统右下角网络图标消失、无法联网、网络Internet状态闪退等问题解决方法】

    今天开机突然碰到网络异常情况: 头天晚上还正常使用,正常关机,上午再打开就出了问题; 任务栏右下角网络图标消失,有线无线网均无法连接; 系统设置中的“网络”的状态无法打开,打开就闪退; 从更改适配器选项中打开网络任务栏,发现没有可用网络,以往的WL

    2024年02月04日
    浏览(67)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包