You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

61 lines
2.1 KiB
Python

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

from PyQt5.QtGui import *
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from views.Ui_caller_main import Ui_caller_main
from controllers.assembly.tray_icon import TrayIcon
import caller_src_rc
class CallerMain(QWidget):
def __init__(self):
super().__init__()
self.ui = Ui_caller_main()
self.ui.setupUi(self)
# 去除边框
self.setWindowFlag(Qt.FramelessWindowHint)
self.setAttribute(Qt.WA_TranslucentBackground) # 将界面属性设置为半透明
# 设定一个阴影半径为10 颜色为#444 定位为00
self.shadow = QGraphicsDropShadowEffect()
self.shadow.setBlurRadius(10)
self.shadow.setColor(QColor('#444'))
self.shadow.setOffset(0, 0)
self.ui.f_caller_main.setGraphicsEffect(self.shadow)
# 动态添加右键菜单 1打开右键菜单策略 2绑定事件
self.ui.f_caller_main.setContextMenuPolicy(Qt.CustomContextMenu)
self.ui.f_caller_main.customContextMenuRequested.connect(
self.show_context_menu)
# 显示右下角托盘
self.tray = TrayIcon(self)
self.tray.show()
# 重写鼠标按下事件 左键按下时获取鼠标坐标,按下右键取消
def mousePressEvent(self, event):
if event.button() == Qt.LeftButton:
self.m_flag = True
self.m_Position = event.globalPos() - self.pos()
event.accept()
elif event.button() == Qt.RightButton:
self.m_flag = False
# 重写鼠标移动事件 在按下左键移动是根据坐标移动界面
def mouseMoveEvent(self, QMouseEvent):
if Qt.LeftButton and self.m_flag:
self.move(QMouseEvent.globalPos() - self.m_Position)
QMouseEvent.accept()
# 重写鼠标释放事件 当鼠标按键释放时 取消移动
def mouseReleaseEvent(self, QMouseEvent):
self.m_flag = False
# 创建右键菜单方法
def show_context_menu(self, pos):
menu = QMenu(self)
action = menu.addAction('方法1')
action = menu.addAction('退出')
menu.exec_(QCursor.pos())