pyqt5主界面基本框架

亦凉 2022-09-03 15:12 264阅读 0赞
  1. import sys
  2. from PyQt5.QtGui import QIcon, QContextMenuEvent, QCloseEvent
  3. from PyQt5.QtWidgets import QApplication, QMainWindow, QAction, qApp, QMenu, QTextEdit, QMessageBox
  4. class LoginWidget(QMainWindow):
  5. def __init__(self):
  6. super().__init__()
  7. self.init_ui()
  8. def init_ui(self):
  9. edit = QTextEdit()
  10. self.setCentralWidget(edit)
  11. # 状态栏句柄
  12. status_bar = self.statusBar()
  13. status_bar.showMessage('启动成功')
  14. # 菜单栏句柄
  15. menu_bar = self.menuBar()
  16. file_menu = menu_bar.addMenu('File')
  17. edit_menu = menu_bar.addMenu('Edit')
  18. # 功能控件一
  19. exit_action = QAction(QIcon("东吴人寿.png"), "退出", self)
  20. exit_action.setShortcut('Ctrl+Q') # 快捷键
  21. exit_action.setStatusTip('Exit Application') # 功能提示
  22. exit_action.triggered.connect(qApp.quit) # 事件绑定
  23. # 功能控件二
  24. other_action = QAction("无状态", self)
  25. other_action.setCheckable(True)
  26. other_action.setChecked(True)
  27. other_action.setShortcut('Ctrl+Q')
  28. other_action.setStatusTip('Exit Application')
  29. # 功能控件绑定到菜单
  30. file_menu.addAction(exit_action)
  31. edit_menu.addAction(other_action)
  32. # 子菜单控件
  33. child_menu = QMenu("子菜单", self)
  34. child_menu.addAction(exit_action)
  35. # 子菜单绑定要父菜单
  36. file_menu.addMenu(child_menu)
  37. # 工具栏句柄
  38. tool_bar = self.addToolBar("Exit")
  39. tool_bar.addAction(exit_action)
  40. self.setGeometry(600, 300, 600, 600) # 设置窗口坐标大小
  41. self.setWindowTitle('窗口标题')
  42. self.show()
  43. # X窗口事件
  44. def closeEvent(self, event: QCloseEvent) -> None:
  45. reply = QMessageBox.question(self, '消息', "确认关闭?", QMessageBox.Yes | QMessageBox.No, QMessageBox.No)
  46. if reply == QMessageBox.Yes:
  47. event.accept()
  48. else:
  49. event.ignore()
  50. # 右键事件
  51. def contextMenuEvent(self, event: QContextMenuEvent) -> None:
  52. q_menu = QMenu(self)
  53. new = q_menu.addAction("新建")
  54. open = q_menu.addAction("打开")
  55. close = q_menu.addAction("关闭")
  56. exec_ = q_menu.exec_(self.mapToGlobal(event.pos()))
  57. if exec_ == close:
  58. qApp.quit()
  59. if __name__ == '__main__':
  60. # 启动程序
  61. q_application = QApplication(sys.argv)
  62. # 创建登录窗口
  63. login_widget = LoginWidget()
  64. # 销毁程序
  65. sys.exit(q_application.exec_())

发表评论

表情:
评论列表 (有 0 条评论,264人围观)

还没有评论,来说两句吧...

相关阅读

    相关 PyQt5设置登录界面界面美化

    写在前面 前一段时间博主刷了半个多月的LeetCode算法题,刷的归类为简单的那些题,做到自己简直要怀疑人生。想着人生在世,何苦这么为难自己呢,何不做点自己擅长的东西。想