PYQT5 实现 无frame窗口的拖动和放缩
来源:互联网 发布:python rest接口测试 编辑:程序博客网 时间:2024/05/22 10:55
# -*- coding:utf-8 -*-'''Created on 2016年12月14日@author: DXLCopyright (C) 2004-2019 Shandong Zhaoyuan Software Development Co.,Ltd'''import cgitbcgitb.enable( format='text')from PyQt5.QtWidgets import QWidget, QApplicationfrom PyQt5.QtCore import Qt import sipfrom ctypes.wintypes import *print (help(MSG))PADDING = 2UP,DOWN,LEFT,RIGHT,LEFTTOP,LEFTBOTTOM,RIGHTTOP,RIGHTBOTTOM,UNDIRECT = range(9)HTLEFT = 10HTRIGHT = 11HTTOP = 12HTTOPLEFT = 13HTTOPRIGHT = 14HTBOTTOM = 15HTBOTTOMLEFT = 16HTBOTTOMRIGHT = 17HTCAPTION = 2 class CustomWidget(QWidget): def __init__(self,parent=None): QWidget.__init__(self,parent) self.setWindowFlags(Qt.FramelessWindowHint) def isInTitle(self, xPos, yPos): return yPos < 30 def GET_X_LPARAM(self, param): return param & 0xffff def GET_Y_LPARAM(self, param): return param >> 16 def nativeEvent(self,eventType,message): result = 0 msg2 = ctypes.wintypes.MSG.from_address(message.__int__()) minV,maxV = 18,22 if msg2.message == 0x0084: print(msg2) xPos = self.GET_X_LPARAM(msg2.lParam) - self.frameGeometry().x() yPos = self.GET_Y_LPARAM(msg2.lParam) - self.frameGeometry().y()# if self.childAt(xPos,yPos) == 0:# result = HTCAPTION# else:# return (False,result) if(xPos > minV and xPos < maxV): result = HTLEFT elif(xPos > (self.width() - maxV) and xPos < (self.width() - minV)): result = HTRIGHT elif(yPos > minV and yPos < maxV): result = HTTOP elif(yPos > (self.height() - maxV) and yPos < (self.height() - minV)): result = HTBOTTOM elif(xPos > minV and xPos < maxV and yPos > minV and yPos < maxV): result = HTTOPLEFT elif(xPos > (self.width() - maxV) and xPos < (self.width() - minV) and yPos > minV and yPos < maxV): result = HTTOPRIGHT elif(xPos > minV and xPos < maxV and yPos > (self.height() - maxV) and yPos < (self.height() - minV)): result = HTBOTTOMLEFT elif(xPos > (self.width() - maxV) and xPos < (self.width() - minV) and yPos > (self.height() - maxV) and yPos < (self.height() - minV)): result = HTBOTTOMRIGHT else: result = HTCAPTION return (True,result) ret= QWidget.nativeEvent(self,eventType,message) return retif __name__ == '__main__': app = QApplication([]) try: w = CustomWidget () w.show() except: import traceback traceback.print_exc() app.exec_()
0 0
- PYQT5 实现 无frame窗口的拖动和放缩
- PyQt5无边框窗口的标题拖动和窗口缩放实现
- 无标题栏窗口拖动的实现
- 无标题栏窗口拖动的实现
- Qt无边框窗口实现拖动和改变大小(修改)
- 拖动无标题栏的窗口
- 拖动无标题栏的窗口
- c#无边框窗口的入门级拖动实现
- 实现无边框可拖动调整大小的阴影窗口
- 实现无边框时拖动窗口
- 实现CDHtmlDialog无标题栏拖动窗口
- C# 无边框窗口实现拖动
- WinForm 无边框窗口 拖动实现
- C# 实现无边框窗口拖动
- C# 实现无标题栏窗口拖动效果
- subversion和qt无窗口拖动
- 解决无标题栏窗口的拖动
- c#无标题栏窗口的拖动
- oracle笔记
- 动态链接库开发说明
- Java多线程概述
- Spring常用配置
- Java归并排序
- PYQT5 实现 无frame窗口的拖动和放缩
- Linux操作系统中如何安装二进制版的MySQL数据库
- Qt之findChildren()
- 安卓权限:用户的注意力、理解和行为
- java IO,字符字节终极理解
- informatica 9.6.1安装“坑”列表
- java join的用法
- C# VB.net WPF利用MediaFoundation打开摄像头捕捉图片
- Python中写入csv和txt