当前位置:   article > 正文

PyQt5(python)窗体按钮操作_pyqt5 按键处理

pyqt5 按键处理
from PyQt5.Qt import *
import sys

class Window(QWidget):
    def __init__(self,*args,**kwargs):
        super().__init__(*args,**kwargs)
        self.setWindowFlags(Qt.FramelessWindowHint)#取消窗体标题栏
        self.setWindowOpacity(0.9)#设置窗体透明度
        #2.2设置控件
        self.setWindowTitle("顶层窗口操作-案例")
        self.resize(500,500)
        self.btn_w=80
        self.btn_h=40
        self.top_margin=0
        self.setup_ui()

    def setup_ui(self):
        close_btn=QPushButton(self)
        self.close_btn=close_btn
        close_btn.setText("关闭")
        close_btn.resize(self.btn_w,self.btn_h)

        max_btn=QPushButton(self)
        self.max_btn=max_btn
        max_btn.setText("最大化")
        max_btn.resize(self.btn_w,self.btn_h)

        min_but=QPushButton(self)
        self.min_but=min_but
        min_but.setText("最小化")
        min_but.resize(self.btn_w,self.btn_h)

        def max_mormal():
            if self.isMaximized():
                self.showNormal()
                max_btn.setText("最大化")
            else:
                self.showMaximized()
                max_btn.setText("恢复")
         #按钮功能
        close_btn.pressed.connect(self.close)
        max_btn.pressed.connect(max_mormal)
        min_but.pressed.connect(self.showMinimized)
    def resizeEvent(self, QResizeEvent):
        close_btn_x=self.width()-self.btn_w
        close_btn_y=self.top_margin
        self.close_btn.move(close_btn_x,close_btn_y)

        max_btn_x=close_btn_x-self.btn_w
        max_but_y=self.top_margin
        self.max_btn.move(max_btn_x,max_but_y)

        min_but_x=max_btn_x-self.btn_w
        min_but_y=self.top_margin
        self.min_but.move(min_but_x,min_but_y)

    def mousePressEvent(self,evt):#鼠标执行
        if evt.button()==Qt.LeftButton:#判断是否为左键执行
            self.Flag=True
            self.mouse_x=evt.globalX()
            self.mouse_y=evt.globalY()
            self.origin_x=self.x()
            self.origin_y=self.y()
    def mouseMoveEvent(self, evt):#鼠标移动
        if self.Flag==True:
            move_x=evt.globalX()-self.mouse_x
            move_y=evt.globalY()-self.mouse_y
            dest_x=self.origin_x+move_x
            dest_y=self.origin_y+move_y
            self.move(dest_x,dest_y)
    def mouseReleaseEvent(self, QMouseEvent):#鼠标释放
        self.Flag=False

if __name__=="__main__":
    app=QApplication(sys.argv)
    win=Window()
    win.show()
    sys.exit(app.exec_())
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/爱喝兽奶帝天荒/article/detail/930883
推荐阅读
相关标签
  

闽ICP备14008679号