用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. 【不知道怎么分类】NOIP2016 蚯蚓

    题目大意 洛谷链接 给出\(n\)条蚯蚓,给出\(m\)秒,每一秒都把蚯蚓中最长的蚯蚓分成两段,一段是原来的\(p\)倍,剩下的就是\((1-p)\)倍.每一秒,除了刚刚产生的两条新蚯蚓,其余蚯蚓长度 ...

  2. linux wget指定下载目录和重命名

    当我们在使用wget命令下载文件时,通常会需要将文件下载到指定的目录,这时就可以使用 -P 参数来指定目录,如果指定的目录不存在,则会自动创建. 示例: p.p1 { margin: 0; font: ...

  3. UML类图还不懂?来看看这版乡村爱情类图,一把学会!

    作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.码场心得

  4. Python基础数据类型方法补充

    str 补充的方法: capitalize():首字母大写,其余变小写 s = 'liBAI' s1 = s.capitalize() print(s1) # Libai swapcase():大小写 ...

  5. IDEA 半天卡住buid(编译)不动

    [号外号外!] 最终解决办法并不复杂,关键在于"遇见问题,怎么样层层分析,多条路径试错,最终解决问题的思路或者能力"--资深码农的核心竞争力之一 背景 今天结束完最近2个月的一个项 ...

  6. Java 悲观锁 synchronized (member){代码块}

    Java 如果遇到会出现高并发的情况,一般建议使用悲观锁 :synchronized (member){代码块}  需要对数据库进行修改或新增的时候,建议写上事务--@Transactional @T ...

  7. 存储系列1-openfiler开源存储管理平台实践

    (一)openfiler介绍 Openfiler能把标准x86/64架构的系统变为一个更强大的NAS.SAN存储和IP存储网关,为管理员提供一个强大的管理平台,并能应付未来的存储需求.openfile ...

  8. C++学习---单链表的构建及操作

    #include <iostream> using namespace std; typedef struct LinkNode { int elem;//节点中的数据 struct Li ...

  9. 第二十七章 ansible变量介绍

    一.ansible变量介绍 1.概念 变量提供了便捷的方式来管理Ansible playbook的每一个项目中的动态值,比如nginx-1.6.3这个软件包的版本,在其它地方或许会反复使用,那么如果讲 ...

  10. 一道在输入上有坑点的LCS

    原题连接 http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=114&p ...