pyqt5主界面基本框架

import sys

from PyQt5.QtGui import QIcon, QContextMenuEvent, QCloseEvent
from PyQt5.QtWidgets import QApplication, QMainWindow, QAction, qApp, QMenu, QTextEdit, QMessageBox


class LoginWidget(QMainWindow):

    def __init__(self):
        super().__init__()
        self.init_ui()

    def init_ui(self):
        edit = QTextEdit()
        self.setCentralWidget(edit)
        # 状态栏句柄
        status_bar = self.statusBar()
        status_bar.showMessage('启动成功')

        # 菜单栏句柄
        menu_bar = self.menuBar()
        file_menu = menu_bar.addMenu('File')
        edit_menu = menu_bar.addMenu('Edit')

        # 功能控件一
        exit_action = QAction(QIcon("东吴人寿.png"), "退出", self)
        exit_action.setShortcut('Ctrl+Q')  # 快捷键
        exit_action.setStatusTip('Exit Application')  # 功能提示
        exit_action.triggered.connect(qApp.quit)  # 事件绑定

        # 功能控件二
        other_action = QAction("无状态", self)
        other_action.setCheckable(True)
        other_action.setChecked(True)
        other_action.setShortcut('Ctrl+Q')
        other_action.setStatusTip('Exit Application')

        # 功能控件绑定到菜单
        file_menu.addAction(exit_action)
        edit_menu.addAction(other_action)

        # 子菜单控件
        child_menu = QMenu("子菜单", self)
        child_menu.addAction(exit_action)

        # 子菜单绑定要父菜单
        file_menu.addMenu(child_menu)

        # 工具栏句柄
        tool_bar = self.addToolBar("Exit")
        tool_bar.addAction(exit_action)

        self.setGeometry(600, 300, 600, 600)  # 设置窗口坐标大小
        self.setWindowTitle('窗口标题')
        self.show()

    # X窗口事件
    def closeEvent(self, event: QCloseEvent) -> None:
        reply = QMessageBox.question(self, '消息', "确认关闭?", QMessageBox.Yes | QMessageBox.No, QMessageBox.No)
        if reply == QMessageBox.Yes:
            event.accept()
        else:
            event.ignore()

    # 右键事件
    def contextMenuEvent(self, event: QContextMenuEvent) -> None:
        q_menu = QMenu(self)
        new = q_menu.addAction("新建")
        open = q_menu.addAction("打开")
        close = q_menu.addAction("关闭")
        exec_ = q_menu.exec_(self.mapToGlobal(event.pos()))
        if exec_ == close:
            qApp.quit()


if __name__ == '__main__':
    # 启动程序
    q_application = QApplication(sys.argv)
    # 创建登录窗口
    login_widget = LoginWidget()
    # 销毁程序
    sys.exit(q_application.exec_())

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

文子阳

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

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

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

打赏作者

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

抵扣说明:

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

余额充值