Python_PyQt5_打开文件并修改字体
在同文件夹下新建一个 测试文档.txt 再运行下面代码,可以实现效果
代码
1 #!Python3
2 # -*- coding:utf-8 -*-
3
4 """
5 目标:主窗口打开文本文件,修改字体
6
7 文本编辑控件和一个状态栏
8 """
9
10 import sys
11 from PyQt5.QtWidgets import QApplication,QMainWindow,QTextEdit,QAction,QFileDialog,QFontDialog
12 from PyQt5.QtGui import QIcon
13
14 class Example (QMainWindow):
15 def __init__(self):
16 super().__init__()
17 self.initUI()
18
19 def initUI(self):
20 self.textEdit = QTextEdit()
21 self.setCentralWidget(self.textEdit)
22 self.statusBar()
23
24 #打开文件
25 openFile = QAction(QIcon("打开ico.ico"),"打开",self)
26 #定义快捷键
27 openFile.setShortcut("Ctrl+o")
28 openFile.setStatusTip("打开一个文件") #提示语
29 #发送信号
30 openFile.triggered.connect(self.showDialog)
31
32 #改字体
33 chengFont = QAction(QIcon("设置字体ico.ico"),"设置字体",self)
34 #定义快捷键
35 chengFont.setShortcut("Ctrl+A")
36 chengFont.setStatusTip("设置字体") #提示语
37 #发送信号
38 chengFont.triggered.connect(self.chengeFont)
39
40
41 #实例化菜单栏
42 menubar = self.menuBar()
43 #创建菜单
44 fileMenu = menubar.addMenu("&打开文件")
45 fileMenu.addAction(openFile)
46 fileMenu = menubar.addMenu("&设置字体")
47 fileMenu.addAction(chengFont)
48
49 self.setGeometry(300,300,350,300)
50 self.setWindowTitle("打开文件并修改字体")
51 self.show()
52
53 def showDialog(self):
54 fname = QFileDialog.getOpenFileName(self,"打开文件",".") #打开文件当前文件夹下的文件
55 if fname[0]:
56 with open(fname[0],'r') as f:
57 data = f.read()
58 self.textEdit.setText(str(data))
59
60 def chengeFont(self):
61 font,ok =QFontDialog.getFont()
62 if ok:
63 self.textEdit.setFont(font) #打开测试文档里的
64
65 if __name__ == "__main__" :
66 app = QApplication(sys.argv)
67 ex = Example()
68 sys.exit(app.exec_())
PyQt5窗口打开txt文件并设置字体
Python_PyQt5_打开文件并修改字体的更多相关文章
- CAD打开文件总是弹出要求选择字体怎么办
CAD打开文件总是弹出要求选择字体怎么办1.在C:\Documents and Settings\下搜索acad.fmp文件,双击用记事本打开acad.fmp文件,在最后添加内容,上面几行本来就有,不 ...
- IDE-IntelliJ IDEA 主题、字体、编辑区主题、文件编码修改、乱码问题
主题修改 上图标注 1 所示为 IntelliJ IDEA 修改主题的地方,可以通过打开左上角的File -> Setting.在 Windows 系统上 IntelliJ IDEA 默认提供的 ...
- IntelliJ IDEA 主题、字体、编辑区主题、文件编码修改
主题修改 上图标注 1 所示为 IntelliJ IDEA 修改主题的地方,在 Windows 系统上 IntelliJ IDEA 默认提供的主题有四套:Darcula.IntelliJ.Window ...
- winform 保存文件 打开文件 选择文件 字体样式颜色(流 using System.IO;)
string filePath = ""; private void 保存SToolStripMenuItem_Click(object sender, EventArgs e) ...
- vs2013修改为双击打开文件
vs2012和vs2013默认是单击打开文件,让人突然就不习惯了,各种不爽. 修改方法: 工具-选项-环境-选项卡和窗口-不勾选允许在预览选项卡中打开新文件.
- CentOS 7下修改rabbitmq打开文件数量方法
以下为使用systemd的修改方法: 1.系统层修改: 通过修改sysctl配置,提高系统的打开文件数量 vim /etc/sysctl.conf,添加: fs.file-max = 65535 ...
- 053_修改 Linux 系统的最大打开文件数量
#!/bin/bash#往/etc/security/limits.conf 文件的末尾追加两行配置参数,修改最大打开文件数量为 65536 cat >> /etc/security/li ...
- 脚本_修改 Linux 系统的最大打开文件数量
#!bin/bash#作者:liusingbon#功能:修改 Linux 系统的最大打开文件数量#追加两行配置参数到文件/etc/security/limits.conf的末尾,修改最大打开文件数量为 ...
- MFC之向导页、消息框、文件选择、字体、颜色(三)
属性页对话框的分类 属性页对话框想必大家并不陌生,XP系统中桌面右键点属性,弹出的就是属性页对话框,它通过标签切换各个页面.另外,我们在创建MFC工程时使用的向导对话框也属于属性页对话框,它通过点击“ ...
随机推荐
- <audio> 标签
<audio> 标签定义声音,比如音乐或其他音频流. 实例 一段简单的 HTML 5 音频:
- 完美解决pyinstaller 打包报错找不到依赖pypiwin32 或pywin32-ctypes的错误
报错信息 最近闲来无事,用python的tkinter库开发了一款带日程提醒的万年历桌面程序.在程序开发结束开始打包时,却发现一直报错 PyInstaller cannot check for ass ...
- 看完这篇良心帖!你的Python入门基础就差不多了
有段时间没跟各位粉丝分享编程资源福利了,看了下自己的资料夹,就剩下我认为比较好的Python学习资料了.相信这套资料可以对你进阶高级工程师有帮助!全民学Python的话题铺天盖地,中国的Python学 ...
- Spring源码分析之`BeanFactoryPostProcessor`调用过程
前文传送门: Spring源码分析之预启动流程 Spring源码分析之BeanFactory体系结构 本文内容: AbstractApplicationContext#refresh前部分的一点小内容 ...
- vue-cli axios ie9 问题
vue在ie9中碰到的问题 最近我们的项目选择用vue来做开发,在这个过程我们还要兼容ie9这个坑,在这里我写一点我碰到的坑 开发选用:vue+vue-cli+axios+router+iview+m ...
- B. Psychos in a Line 解析(思維、單調棧)
Codeforce 319 B. Psychos in a Line 解析(思維.單調棧) 今天我們來看看CF319B 題目連結 題目 給一個數列,如果相鄰兩數,左邊大於右邊,那麼就可以殺死右邊的數字 ...
- abp(net core)+easyui+efcore实现仓储管理系统——出库管理之四(五十三)
abp(net core)+easyui+efcore实现仓储管理系统目录 abp(net core)+easyui+efcore实现仓储管理系统--ABP总体介绍(一) abp(net core)+ ...
- SpringBoot第四集:静态资源与首页定(2020最新最易懂)
SpringBoot第四集:静态资源与首页定(2020最新最易懂) 问题 SpringBoot构建的项目结构如下:没有webapp目录,没有WEB-INF等目录,那么如果开发web项目,项目资源放在那 ...
- php socket通信的简单实现
socket通信的原理在这里就不说了,它的用途还是比较广泛的,我们可以使用socket来做一个API接口出来,也可以使用socket来实现两个程序之间的通信,我们来研究一下在php里面如何实现sock ...
- model基础操作(下)
3.Django多对多表结构操作 3.1 第一种: ManyToManyField 自己不创建第三张关系表,有m2m字段: 根据queryset对象增删改查(推荐) from django ...