南通市网站建设_网站建设公司_Bootstrap_seo优化
2026/1/8 0:03:29 网站建设 项目流程
importsysfromPyQt5.QtWidgetsimportQApplication,QMainWindow,QMenuBar,QMenu,QAction,QMessageBoxfromPyQt5.QtCoreimportQt,QEvent,QTimerclassMainWindow(QMainWindow):def__init__(self):super().__init__()self.setWindowTitle("菜单快捷键焦点保持解决方案")self.setGeometry(100,100,600,400)# 创建菜单栏menubar=self.menuBar()# 文件菜单file_menu=menubar.addMenu("&文件")action_open=QAction("&打开弹窗1",self)action_open.setShortcut("Ctrl+O")action_open.triggered.connect(self.show_dialog1)file_menu.addAction(action_open)# 编辑菜单edit_menu=menubar.addMenu("&编辑")action_copy=QAction("&打开弹窗2",self)action_copy.setShortcut("Ctrl+C")action_copy.triggered.connect(self.show_dialog2)edit_menu.addAction(action_copy)defevent(self,event):# 阻止窗口失焦事件ifevent.type()==QEvent.WindowDeactivate:event.ignore()# 忽略失焦事件returnTrue# 表示事件已处理returnsuper().event(event)defshow_dialog1(self):self._show_dialog("弹窗1","按 Ctrl+O 触发的弹窗")defshow_dialog2(self):self._show_dialog("弹窗2","按 Ctrl+C 触发的弹窗")def_show_dialog(self,title,text):msg=QMessageBox(self)msg.setWindowTitle(title)msg.setText(text)msg.setStandardButtons(QMessageBox.Ok)msg.setWindowModality(Qt.NonModal)# 使用非模态对话框msg.show()# 关键:延迟恢复主窗口焦点QTimer.singleShot(50,self._restore_focus)def_restore_focus(self):"""恢复主窗口焦点并激活"""self.activateWindow()self.setFocus()if__name__=="__main__":app=QApplication(sys.argv)window=MainWindow()window.show()sys.exit(app.exec_())

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询