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界面
Python_用PyQt5 建 notepad 界面的更多相关文章
- 【QT】利用pyqt5实现简单界面
Topic: 利用pyqt5编写简单界面Env:win10 + Pycharm2018 + Python 3.6.8Date: 2019/4/29 by hw_Chen2018 ...
- python+pycharm+PyQt5 图形化界面安装教程
python图形化界面安装教程 配置环境变量 主目录 pip所在目录,及script目录 更新pip(可选) python -m pip install --upgrade pip ps:更新出错一般 ...
- pyqt5简单登陆界面
登陆界面姓名输入错误会弹出错误信息.正确就会弹出第二个窗体. # -*- coding:utf-8 -*- import sys from PyQt5.QtWidgets import Q ...
- pyqt5实现注册界面
__author__ = 'sign_in' import sys from PyQt5.QtGui import QPixmap from PyQt5.QtWidgets import * clas ...
- pyqt5实现注册界面并获得文本框内容
获取框里面的内容,有一个BUG,搞了好久才搞定. __author__ = 'ayew'import sysfrom PyQt5.QtCore import*from PyQt5.QtWidgets ...
- 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 ...
- 使用notepad++进行格式转换
由于历史原因,导致Windows.Unix/Linux.Mac三者之间,对于文本中所用回车换行符,表示的方法,都不一样.这就导致了很多人都会遇到回车换行符的困惑,同时需要在不同格式间进行转换. 1)查 ...
- PyQt5实时汇率查询
用PyQt5实现了界面,使用urllib实时抓取ip138.com网站的汇率信息. import sys import urllib import urllib.request from PyQt5. ...
- Java Hello World源代码notepad++版
Notepad++中写Java Hello World代码并运行,步骤如下: 1. 在E:\CodeDemo\Java文件夹下(你也可以选择自己的文件夹)新建一个txt文本文件. 如果没有NotePa ...
随机推荐
- js实现自定义弹窗
众所周知,浏览器自带的原生弹窗很不美观,而且功能比较单一,绝大部分时候我们都会按照设计图自定义弹窗或者直接使用注入layer的弹窗等等.前段时间在慕课网上看到了一个自定义弹窗的实现,自己顺便就学习尝试 ...
- WebFlux快速上手
一.新建项目 示例使用IDEA快速创建基于SpringBoot的工程. springboot 2.3.1 java 8 WebFlux 必须选用Reactive的库 POM 依赖 <depend ...
- Maven2 ---- 安装及配置
Maven详解(二)------ Maven的安装配置 目录 1.下载 Maven 2.配置 Maven 环境变量 3.查看 Maven 环境变量是否配置成功 4.在 eclipse 中集成 Ma ...
- 利用ADB命令强制卸载oppo自带浏览器
前言 oppo手机是自带oppo浏览器的,这个自带的浏览器带有oppo推荐的负面新闻很多,而且有时也自动推送一些消息给用户,页面不够简洁,打开浏览器负面内容比较多,所以想要强制卸载oppo浏览器,然后 ...
- 使用Vue简单的写组件的UI库
初始化项目vue create nature-ui 在根目录下面创建一个文件目录放置组件(我这里的创建packages) packages 目录下面创建个个组件的名称并创建index.js(用于输出所 ...
- Tensorflow--Debug
1.解决tensorflow报错ValueError: Variable conv1/weights already exists, disallowed. 解决方法1:重开一个控制台 解决方法2:在 ...
- 【Flutter 混合开发】添加 Flutter 到 Android Fragment
Flutter 混合开发系列 包含如下: 嵌入原生View-Android 嵌入原生View-iOS 与原生通信-MethodChannel 与原生通信-BasicMessageChannel 与原生 ...
- 机器学习 第5篇:knn回归
基于最邻近算法的分类,本质上是对离散的数据标签进行预测,实际上,最邻近算法也可以用于对连续的数据标签进行预测,这种方法叫做基于最邻近数据的回归,预测的值(即数据的标签)是连续值,通过计算数据点最临近数 ...
- 机器学习 第4篇:sklearn 最邻近算法概述
sklearn.neighbors 提供了针对无监督和受监督的基于邻居的学习方法的功能.监督的基于最邻近的机器学习算法是值:对带标签的数据的分类和对连续数据的预测(回归). 无监督的最近算法是许多其他 ...
- 《Clojure编程》笔记 第1章 进入Clojure仙境
目录 背景简述 第1章 进入Clojure仙境 1.1 基础概念 1.2 常用的一些符号 背景简述 本人是一个自学一年Java的小菜鸡,理论上跟大多数新手的水平差不多,但我入职的新公司是要求转Cloj ...