• Python_用PyQt5 建 notepad 界面


    用PyQt5建notepad界面

      1 # -*-coding:utf-8 -*-
      2 """
      3 简介:用PyQt5做一个对话框,有菜单(2个、有独立图标、快捷键)、提示栏(只有主窗口才有提示栏),退出时有二次确认
      4 思路:引用并重构PyQt5里的方法
      5 
      6 思考:PyQt5要求先建组件,再调用,但是可以将连接对象放在后面
      7 """
      8 
      9 
     10 import sys
     11 from PyQt5.QtWidgets import QApplication,QMainWindow,QAction,QMessageBox #引入组件库里的整体组件、主窗口、动作、弹出框(最末端,页面上层的,必须先处理)
     12 from PyQt5.QtGui import QIcon
     13 
     14 
     15 class myWin(QMainWindow):   #新定义类一个类,继承并重构QMainWindow这个方法
     16     def __init__(self):     #这里固定不动
     17         super().__init__()
     18         self.initUI()       #initUI() 这个方法重构
     19 
     20     # 创建动作对象并设置
     21     def initUI(self):
     22         
     23         #动作------------------------------------------------------------
     24         #文件_新建
     25         action_buliding=QAction(QIcon('1.ico'),'&新建(N)',self)
     26         action_buliding.setShortcut('Ctrl+N')
     27         action_buliding.setStatusTip('新建文本文件')  #提示语,默认没有
     28         action_buliding.triggered.connect(self.open)  #链接到打开动作------------
     29         #文件_打开
     30         action_open=QAction(QIcon('1.ico'),'&打开(O)',self)
     31         action_open.setShortcut('Ctrl+O')
     32         action_open.triggered.connect(self.open)   #链接到打开动作------------
     33         # 文件_保存
     34         action_save = QAction(QIcon('1.ico'), '&打开(O)', self)
     35         action_save.setShortcut('Ctrl+O')
     36         action_save.triggered.connect(self.open)  # 链接到打开动作------------
     37         # 文件_另存为
     38         action_other_save = QAction(QIcon('1.ico'), '&另存为(A)', self)
     39         action_other_save.triggered.connect(self.open)  # 链接到打开动作------------
     40         # 文件_页面设计
     41         action_page_design = QAction(QIcon('1.ico'), '&页面设计', self)
     42         action_page_design.triggered.connect(self.open)  # 链接到打开动作------------
     43         # 文件_打印
     44         action_page_print = QAction(QIcon('1.ico'), '&打印', self)
     45         action_page_print.triggered.connect(self.open)  # 链接到打开动作------------
     46         #文件_退出
     47         action_close=QAction(QIcon('1.ico'),'&退出',self)
     48         action_close.setShortcut('A')
     49         action_close.setStatusTip('这是退出功能')
     50         action_close.triggered.connect(self.close)
     51 
     52         #菜单栏-------------------------------------------------------------------------
     53         menuBar=self.menuBar()
     54         menufile=menuBar.addMenu('&文件(F)')
     55         menufile.addAction(action_buliding)         #新建
     56         menufile.addAction(action_open)        #打开
     57         menufile.addAction(action_save)        #保存
     58         menufile.addAction(action_other_save)        #另存为
     59         menufile.addAction(action_page_design)        #页面设置
     60         menufile.addAction(action_page_print)        #打印
     61         menufile.addAction(action_close)        #退出
     62 
     63         menuBar = self.menuBar()
     64         menufile = menuBar.addMenu('&编辑(E)')
     65         menufile.addAction(action_open)
     66 
     67         menuBar = self.menuBar()
     68         menufile = menuBar.addMenu('&格式(O)')
     69         menufile.addAction(action_open)
     70 
     71         menuBar = self.menuBar()
     72         menufile = menuBar.addMenu('&查看(V)')
     73         menufile.addAction(action_open)
     74         
     75         menuBar = self.menuBar()
     76         menufile = menuBar.addMenu('&帮助(H)')
     77         menufile.addAction(action_open)
     78 
     79         #(新增)创建工具栏-------------------------------------------------------------------
     80 #        toolbar=self.addToolBar("退出")
     81 #        toolbar.addAction(action_open***)#与上面的动作重复,需要换一个动作或临时注掉上面
     82 
     83 
     84 #        toolbar=self.addToolBar("退出")
     85 #        toolbar.addAction(action_close***)#与上面的动作重复,需要换一个动作或临时注掉上面
     86 
     87         #设置状态栏
     88         self.statusBar().showMessage('这个是状态栏,会实时显示正在进行额操作....')
     89 
     90         #设置窗口属性
     91         self.setGeometry(100,300,400,400)   #geometry 几何
     92         self.setWindowTitle('新建文本文档')
     93         self.setWindowIcon(QIcon('1.ico'))
     94         self.show()         #窗口展示方式 - 阻断进程,当有结束信号时再关闭
     95         
     96     def closeEvent(self,event): #关闭
     97         #获取消息框实例的值
     98         msg=QMessageBox.question(self,'退出警告','你确认退出吗??',QMessageBox.Yes | QMessageBox.No,QMessageBox.No)
     99         #判定消息框的返回值
    100         if msg==QMessageBox.Yes:
    101             event.accept()
    102         else:
    103             event.ignore()
    104     def open(self):
    105         print('这里代指**动作')
    106 #主方法
    107 if __name__=='__main__':
    108     app=QApplication(sys.argv)
    109     my=myWin()
    110     sys.exit(app.exec_())
    PyQt5_notepad界面
  • 相关阅读:
    NOP(4) default
    NOP(三) ASP.NET Application Life Cycle
    About the IoC
    开园庆祝!
    js 添加/删除数组开头/结尾元素
    JavaScript String.prototype.slice()
    JavaScript Array.prototype.splice()方法的使用
    js Map
    js Set
    Bruteforce Algorithm [HDU 3221]
  • 原文地址:https://www.cnblogs.com/hellangels333/p/8206207.html
Copyright © 2020-2023  润新知