pyqt5 +qtdesigner 无边框移动,双击表头放大

1.双击表头放大复原

1.1重写表头类

from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtCore import pyqtSignal

class myQFrame(QtWidgets.QFrame):
    # 自定义信号, 注意信号必须为类属性
    mouseDoubleClickSignal = pyqtSignal(object)

    def __init__(self, parent=None):
        super(myQFrame, self).__init__(parent)

    def mouseDoubleClickEvent(self, QMouseEvent):
        self.mouseDoubleClickSignal.emit(self)

1.2.槽函数

# 信号槽连接显示子窗口的槽函数
     self.ui.WindowWidget.mouseDoubleClickSignal.connect(self.on_maximizeRestoreAppBtn_clicked)

# 最大化与复原
    def on_maximizeRestoreAppBtn_clicked(self):

        if self.isMaximized():
            self.showNormal()

            self.ui.maximizeRestoreAppBtn.setToolTip("<html><head/><body><p>最大化</p></body></html>")
        else:
            self.showMaximized()
            self.ui.maximizeRestoreAppBtn.setToolTip("<html><head/><body><p>恢复</p></body></html>")

1.3.生成的ui修改 

2.无边框+移动

# 无边框
        self.setWindowFlags(Qt.FramelessWindowHint)

 # 最小化
    def on_minimizeAppBtn_clicked(self):
        self.ui.minimizeAppBtn.setToolTip("<html><head/><body><p>最小化</p></body></html>")
        self.showMinimized()

    # 最大化与复原
    def on_maximizeRestoreAppBtn_clicked(self):

        if self.isMaximized():
            self.showNormal()

            self.ui.maximizeRestoreAppBtn.setToolTip("<html><head/><body><p>最大化</p></body></html>")
        else:
            self.showMaximized()
            self.ui.maximizeRestoreAppBtn.setToolTip("<html><head/><body><p>恢复</p></body></html>")

    # 关闭程序
    def on_closeAppBtn_clicked(self):
        self.close()
    #移动
    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
        self.setCursor(QCursor(Qt.ArrowCursor))


    def mousePressEvent(self,e):
        if e.buttons()==  Qt.LeftButton:
            if e.button() == Qt.LeftButton:
                print("左键按下")
                self.m_flag = True
                self.m_Position = e.globalPos() - self.pos()  # 获取鼠标相对窗口的位置
                e.accept()
                # self.setCursor(QCursor(Qt.OpenHandCursor))  # 更改鼠标图标

        elif e.buttons()== Qt.RightButton:
          print("右")
        super(MainWindow,self).mousePressEvent(e)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Y_Hungry

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值