from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QPushButton, QDialog from PyQt5.QtCore import Qt, QRect class KetWidget(QWidget) : def __init__(self, parent) : super().__init__() self.initUI() self.parent = parent def initUI(self) : btn_box = QVBoxLayout() self.float_button1 = QPushButton("↑", self) self.float_button1.move(self.width() - 200, self.height() - 200) self.float_button1.setFixedSize(90, 90) self.float_button1.clicked.connect(self.focus_do_inscrease) self.float_button2 = QPushButton("↓", self) self.float_button2.move(self.width() - 200, self.height() - 100) self.float_button2.setFixedSize(90, 90) self.float_button2.clicked.connect(self.focus_do_decrease) self.float_button3 = QPushButton("enter", self) self.float_button3.move(self.width() - 100, self.height() - 200) self.float_button3.setFixedSize(90, 90) self.float_button3.clicked.connect(self.focus_do_action) self.float_button4 = QPushButton("esc", self) self.float_button4.move(self.width() - 100, self.height() - 100) self.float_button4.setFixedSize(90, 90) self.float_button4.clicked.connect(self.focus_do_escape) self.show_hide_button = QPushButton("show/hide", self) self.show_hide_button.move(self.width()-10, self.height() - 100) self.show_hide_button.setFixedSize(90, 90) self.show_hide_button.clicked.connect(self.focus_show_hide) btn_box.addWidget(self.float_button1) btn_box.addWidget(self.float_button2) btn_box.addWidget(self.float_button3) btn_box.addWidget(self.float_button4) def focus_do_inscrease(self) : if hasattr(self.parent, 'stack'): self.parent.stack.currentWidget().key_decrease_parameter() else : self.parent.key_increase_parameter() def focus_do_decrease(self) : if hasattr(self.parent, 'stack'): self.parent.stack.currentWidget().key_increase_parameter() else : self.parent.key_decrease_parameter() def focus_do_action(self) : if hasattr(self.parent, 'stack'): self.parent.stack.currentWidget().key_enter_process() else : self.parent.key_enter_process() def focus_do_escape(self) : if hasattr(self.parent, 'stack'): self.parent.stack.currentWidget().key_escape_process() else : self.parent.key_escape_process() def focus_show_hide(self) : if self.float_button1.isHidden() : self.float_button1.show() self.float_button2.show() self.float_button3.show() self.float_button4.show() else : self.float_button1.hide() self.float_button2.hide() self.float_button3.hide() self.float_button4.hide() def showEvent(self, event): super().showEvent(event) # 获取屏幕大小 screen = QApplication.primaryScreen() screen_rect = screen.geometry() # 计算窗口在屏幕右下角的位置 width, height = self.width(), self.height() x = screen_rect.width() - width y = screen_rect.height() - height # 设置窗口位置 self.move(x, y)