第二部分 Python提高—GUI图形用户界面编程(八)

2024-04-19 09:52

本文主要是介绍第二部分 Python提高—GUI图形用户界面编程(八),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

实战项目 编制简易笔记本
要求:

#开发记事本功能
'''开发一个简单的记事本。
包含:新建、保存、修改文本内容、退出
包含:各种快捷键的处理
'''
# -*- coding: utf-8 -*-
"""
Created on Fri Apr 19 07:43:27 2024@author: Administrator
"""#开发记事本功能
'''开发一个简单的记事本。
包含:新建、保存、修改文本内容、退出
包含:各种快捷键的处理
'''from tkinter import *
from tkinter.filedialog import *
from tkinter.colorchooser import *class Application(Frame):def __init__(self,master=None):super().__init__(master)self.master = masterself.textpad = Noneself.filename = Noneself.contextMenu = Noneself.pack()self.createWidget()def createWidget(self):menubar = Menu(root)menuFile = Menu(menubar)menuEdit = Menu(menubar)menuHelp = Menu(menubar)menubar.add_cascade(label="文件(F)",menu=menuFile)menubar.add_cascade(label="编辑(E)",menu=menuEdit)menubar.add_cascade(label="帮助(H)",menu=menuHelp)menuFile.add_command(label="新建(N)",accelerator="ctrl+n",command=self.newfile)menuFile.add_command(label="打开(O)",accelerator="ctrl+o",command=self.openfile)menuFile.add_command(label="保存(S)",accelerator="ctrl+s",command=self.savefile)menuFile.add_separator()menuFile.add_command(label="退出",accelerator='ctrl+q',command=self.exit)root["menu"]=menubarroot.bind("<Control-n>",lambda event:self.newfile())root.bind("<Control-s>",lambda event:self.savefile())root.bind("<Control-o>",lambda event:self.openfile())root.bind("<Control-q>",lambda event:self.exit())self.textpad = Text(root,width=50,height=30)self.textpad.pack()self.contextMenu = Menu(root)self.contextMenu.add_command(label="背景颜色",command=self.openAskColor)root.bind("Button-3",self.createContextMenu)def newfile():        self.textpad.delete("1.0",'end')self.filename = asksaveasfilename(title='另存为',initialfile="未命名.txt",filetype=["文本文档","*.txt"],defaultextension="*.txt")print(self.filename)self.savefile()def openfile(self):self.textpad.delete("1.0","end")with askopenfile(title="打开文件") as f:self.textpad.insert(INSERT,f.read())self.filename = f.nameprint(f.name)def savefile(self):with open(self.filename,"w") as f:c = self.textpad.get(1.0,END)f.write(c)def exit(self):root.quit()def openAskColor(self):s1 = askcolor(color = "red", title="选择背景色")self.textpad.config(bg=s1[1])def createContextMenu(self,event):self.contextMenu.post(event.x_root,event.y_root)if __name__=="__main__":root = Tk()root.geometry("500x500+250+300")root.title("简易记事本")app = Application(master=root)root.mainloop()

这篇关于第二部分 Python提高—GUI图形用户界面编程(八)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/917208

相关文章

闲置电脑也能活出第二春?鲁大师AiNAS让你动动手指就能轻松部署

对于大多数人而言,在这个“数据爆炸”的时代或多或少都遇到过存储告急的情况,这使得“存储焦虑”不再是个别现象,而将会是随着软件的不断臃肿而越来越普遍的情况。从不少手机厂商都开始将存储上限提升至1TB可以见得,我们似乎正处在互联网信息飞速增长的阶段,对于存储的需求也将会不断扩大。对于苹果用户而言,这一问题愈发严峻,毕竟512GB和1TB版本的iPhone可不是人人都消费得起的,因此成熟的外置存储方案开

python: 多模块(.py)中全局变量的导入

文章目录 global关键字可变类型和不可变类型数据的内存地址单模块(单个py文件)的全局变量示例总结 多模块(多个py文件)的全局变量from x import x导入全局变量示例 import x导入全局变量示例 总结 global关键字 global 的作用范围是模块(.py)级别: 当你在一个模块(文件)中使用 global 声明变量时,这个变量只在该模块的全局命名空

Linux 网络编程 --- 应用层

一、自定义协议和序列化反序列化 代码: 序列化反序列化实现网络版本计算器 二、HTTP协议 1、谈两个简单的预备知识 https://www.baidu.com/ --- 域名 --- 域名解析 --- IP地址 http的端口号为80端口,https的端口号为443 url为统一资源定位符。CSDNhttps://mp.csdn.net/mp_blog/creation/editor

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

Java 创建图形用户界面(GUI)入门指南(Swing库 JFrame 类)概述

概述 基本概念 Java Swing 的架构 Java Swing 是一个为 Java 设计的 GUI 工具包,是 JAVA 基础类的一部分,基于 Java AWT 构建,提供了一系列轻量级、可定制的图形用户界面(GUI)组件。 与 AWT 相比,Swing 提供了许多比 AWT 更好的屏幕显示元素,更加灵活和可定制,具有更好的跨平台性能。 组件和容器 Java Swing 提供了许多

poj 2976 分数规划二分贪心(部分对总体的贡献度) poj 3111

poj 2976: 题意: 在n场考试中,每场考试共有b题,答对的题目有a题。 允许去掉k场考试,求能达到的最高正确率是多少。 解析: 假设已知准确率为x,则每场考试对于准确率的贡献值为: a - b * x,将贡献值大的排序排在前面舍弃掉后k个。 然后二分x就行了。 代码: #include <iostream>#include <cstdio>#incl

nudepy,一个有趣的 Python 库!

更多资料获取 📚 个人网站:ipengtao.com 大家好,今天为大家分享一个有趣的 Python 库 - nudepy。 Github地址:https://github.com/hhatto/nude.py 在图像处理和计算机视觉应用中,检测图像中的不适当内容(例如裸露图像)是一个重要的任务。nudepy 是一个基于 Python 的库,专门用于检测图像中的不适当内容。该

pip-tools:打造可重复、可控的 Python 开发环境,解决依赖关系,让代码更稳定

在 Python 开发中,管理依赖关系是一项繁琐且容易出错的任务。手动更新依赖版本、处理冲突、确保一致性等等,都可能让开发者感到头疼。而 pip-tools 为开发者提供了一套稳定可靠的解决方案。 什么是 pip-tools? pip-tools 是一组命令行工具,旨在简化 Python 依赖关系的管理,确保项目环境的稳定性和可重复性。它主要包含两个核心工具:pip-compile 和 pip