用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界面

Python_用PyQt5 建 notepad 界面的更多相关文章

  1. 【QT】利用pyqt5实现简单界面

    Topic: 利用pyqt5编写简单界面Env:win10 + Pycharm2018 + Python 3.6.8Date: 2019/4/29 by hw_Chen2018            ...

  2. python+pycharm+PyQt5 图形化界面安装教程

    python图形化界面安装教程 配置环境变量 主目录 pip所在目录,及script目录 更新pip(可选) python -m pip install --upgrade pip ps:更新出错一般 ...

  3. pyqt5简单登陆界面

          登陆界面姓名输入错误会弹出错误信息.正确就会弹出第二个窗体. # -*- coding:utf-8 -*- import sys from PyQt5.QtWidgets import Q ...

  4. pyqt5实现注册界面

    __author__ = 'sign_in' import sys from PyQt5.QtGui import QPixmap from PyQt5.QtWidgets import * clas ...

  5. pyqt5实现注册界面并获得文本框内容

    获取框里面的内容,有一个BUG,搞了好久才搞定. __author__ = 'ayew'import sysfrom PyQt5.QtCore import*from PyQt5.QtWidgets ...

  6. PyQt5系列教程(二)利用QtDesigner设计UI界面

    软硬件环境 OS X EI Capitan Python 3.5.1 PyQt 5.5.1 PyCharm 5.0.1 前言 在PyQt5系列教程的第一篇http://blog.csdn.net/dj ...

  7. 使用notepad++进行格式转换

    由于历史原因,导致Windows.Unix/Linux.Mac三者之间,对于文本中所用回车换行符,表示的方法,都不一样.这就导致了很多人都会遇到回车换行符的困惑,同时需要在不同格式间进行转换. 1)查 ...

  8. PyQt5实时汇率查询

    用PyQt5实现了界面,使用urllib实时抓取ip138.com网站的汇率信息. import sys import urllib import urllib.request from PyQt5. ...

  9. Java Hello World源代码notepad++版

    Notepad++中写Java Hello World代码并运行,步骤如下: 1. 在E:\CodeDemo\Java文件夹下(你也可以选择自己的文件夹)新建一个txt文本文件. 如果没有NotePa ...

随机推荐

  1. 笔趣阁小说 selenium爬取

    import re from time import sleep from lxml import etree from selenium import webdriver options = web ...

  2. C# 微信access_token缓存和过期刷新

    摘自:http://blog.csdn.net/hechurui/article/details/22398849 首先建立一个Access_token类 /// <summary> // ...

  3. D. Number of Parallelograms 解析(幾何)

    Codeforce 660 D. Number of Parallelograms 解析(幾何) 今天我們來看看CF660D 題目連結 題目 給你一些點,求有多少個平行四邊形. 前言 @copyrig ...

  4. JUC---13各种锁

    一.公平锁与非公平锁 公平锁:加锁前检查是否有排队等待的线程,优先排队等待的线程,先来先得 非公平锁:加锁时不考虑排队等待问题,直接尝试获取锁,获取不到自动到队尾等待 非公平锁性能比公平锁高5~10倍 ...

  5. NB-IoT的HARQ过程是怎么样的

    NB-IoT的HARQ是一种将前向纠错(Forward Error Correction,FEC)编码和ARQ相结合而形成的技术.HARQ的基本原理是缓存没有正确接收到的数据,并且将重传数据和原始数据 ...

  6. day80:luffy:短信sdk接入&点击获取验证码&注册功能的实现&Celery实现短信发送功能

    目录 1.短信sdk接入 2.前端点击获取验证码效果 3.注册后端接口实现 4.注册-前端 5.Celery 6.Celery完成短信发送功能 1.短信sdk接入 1.准备工作 1.下载云通讯相关的文 ...

  7. 使用Asponse.Words处理Word模板

    一.客户需求 近期接到一个项目,在与客户初步沟通后,客户描述的需求听起来也非常简单,就是目前客户需要在Excel录入数据,然后把这些数据分别复制到多个Word的多个地方,除了单个值之外,还需要复制表格 ...

  8. 联发科Mediatek工业路由芯片上网稳定低功耗的Router模块WiFi中继——无线AP定制方案

    Router模块又名路由器模块,是指将路由器的接口类型及部分扩展功能是可以根据实际需求来进行无线接入服务,允许其他无线设备接入,通过局域无线端或联网远程端,进行数据访问,对无线设备进行远程控制.常见的 ...

  9. 聊聊Go代码覆盖率技术与最佳实践

    "聊点干货" 覆盖率技术基础 截止到Go1.15.2以前,关于覆盖率技术底层实现,以下知识点您应该知道: go语言采用的是插桩源码的形式,而不是待二进制执行时再去设置breakpo ...

  10. CSP-S 2020全国开放赛前冲刺模拟训练题1 T4 二维码

    组合 首先可以考虑一个状态合法的条件,可以发现的是最后得到的矩阵一定是至少有一行或是有一列全$0$或$1$,如果把这一列或这一行删掉那么将剩下的子矩阵拼接起来又是一个子问题,同样的也是至少有一列或一行 ...