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

原文地址:https://www.cnblogs.com/hellangels333/p/8206207.html

时间: 2024-10-23 17:48:16

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

pyqt5实现注册界面

__author__ = 'sign_in' import sys from PyQt5.QtGui import QPixmap from PyQt5.QtWidgets import * class login(QWidget): def __init__(self): super(login,self).__init__() self.initUi() def initUi(self): self.setWindowTitle("login") layout = QGridLay

Notepad++编辑器——Verilog、代码片段、直接编译

Notepad++是一款精致小巧的编辑器,自带Verilog语法识别功能,插件也挺好用的.尤其是利用插件实现代码片段,大大节省我们写Verilog的时间.此外少有人知道的,可以利用某款插件实现在Notepad++界面中编译Verilog的功能.下面就来说说这几个功能要如何设置. 版本:Notepad++ 7.6.6 ,32位 //========================================================================//==      安装

六步轻松搞定,自建APP不求人

随着互联网浪潮的席卷,越来越多的传统企业开始涉足互联网领域.无论是出于企业转型升级考虑,还是受市场整体环境的驱动,很多企业凭借某一领域的绝对优势,浩浩荡荡进军移动互联网领域,通过自建APP的方式,推出属于自己的移动端应用产品. 不少企业在探寻如何自建APP的过程中,遇到的第一个决策性难题就是:自建APP开发团队还是外包APP建设?其实对于大多数企业而言,由于企业内部组织架构设置问题,尚没有配备完善的自建APP开发团队,同时财政预算有限,难以承担整体自建APP工作.对于这类中小型企业而言,如何能够

notepad编写的脚本在shell下无法运行

Notepad++ 是一款Windows环境下免费开源的代码编辑器,支持的语言:C, C++ , Java , C#, XML, HTML, PHP, Javascript! 本文给大家讲解的是用notepad++在windows下开发的shell脚本上传到Linux下无法执行问题解决方法(bom问题),感兴趣的同学参考下. 问题描述: 在一次调试shell语句的过程中发现,从notepad++文本拷贝出来的shell到linux执行时,无任何错误!但是把notepad写好 的shell脚本上传

使用notepad++进行格式转换

由于历史原因,导致Windows.Unix/Linux.Mac三者之间,对于文本中所用回车换行符,表示的方法,都不一样.这就导致了很多人都会遇到回车换行符的困惑,同时需要在不同格式间进行转换. 1)查看当前文本格式 Notepad++界面中,在右下角有文件格式的描述:“Dos\Windows或UNIX或Mac”.2)格式转换 编辑->档案格式转换->,其中可以进行三种文本格式的转换

QT开发(三十一)——NotePad实例开发

QT开发(三十一)--NotePad实例开发 一.界面开发 NotePad使用主窗口作为顶层窗口组件,使用QMainWindow作为基类,QMainWindow内部封装了菜单栏.工具栏.中央组件.停靠组件.状态栏等.QMainWindow内置了布局管理器,基本的组件布局如下: 使用二阶构造模式构建NotePad界面. MainWindow::MainWindow() {     resize(800, 600); }   MainWindow::~MainWindow() {   }   Mai

0.notepad++

本来准备 学习 Lime, Lime 是 由 go + python+界面工具 写的一个 sublime 的开源实现.但是这个配置比较复杂,所以我决定先研究一下它的兄弟产品notepad++. notepad++的实现已经有10年了,已经是一款非常成熟的软件了.我现在 需要做的就是慢慢 把它的代码啃一遍,把它的架构理出来.由于是自主学习,所有我有更多的精力去去学习它的方方面.由点及面发散开来,夯实基础. 为了促进学习,同时又检验学习的目标,我给自己设定的一个目标是给 notepad++开发一个插

Notepad++最新版本介绍!支持全部编辑语言(Java、HTML、Python等)

Notepad++最新版本介绍!支持全部编辑语言(Java.HTML.Python等) Notepad++介绍 Notepad++是经常用的一个编辑软件,对于我这样的技术白菜来说,有这么个神器真是方便多了,Notepad++界面简洁明了,而且可以定制界面,又支持多国语言,是站长们的得力助手.免费.开源.绿色,对中文支持的很好,并有完整的中文化接口及支援多国语言撰写的功能(UTF8 技术).Notepad++内置支持多达27种语法高亮度显示(包括各种常见的源代码.脚本,能够很好地支持 .nfo 文

课程表

http://www.cnblogs.com/jycboy/p/kcbyl.html 超超boy 超级课程表原理解析(如何获取网页内容) 一直对手机怎么访问网页很好奇,比如网页上填的姓名密码之类的,在手机上怎么填上去,怎么把网页的内容解析完放在手机上.这次就手机访问教务系统举个简单的例子,相信看完你就懂啦,以后就可以随心所欲的解析网页啦. 君欲善其事,必先利其器.首先要准备两个工具:1.HttpWatch(网页数据分析工具,利用它抓取网页内容),2.一个Jar包:Jsoup(解析网页内容).有了