【python实操】用python写软件弹窗


文章目录
前言
python学习之路任重而道远,要想学完说容易也容易,说难也难。
很多人说python最好学了,但扪心自问,你会用python做什么了?
刚开始在大学学习c语言,写一个飞行棋的小游戏,用dos界面来做,真是出力不讨好。
地图要自己一点一点画出来,就像这样:
================
| |
| |
|===============
从此讨厌编程,不想继续学下去。每次作业应付。
算法考试,数据结构考试随便背代码,只求通过。
最后呢?我学会变成了吗?只能对一些概念侃侃而谈,但真的会几行代码,能写出实用工具吗?
答案变得模糊。
所以我们要从现在开始,学好python,不要再糊弄下去!!!
组件
label 与 多行文本

# coding=gbk
from tkinter import *master = Tk()
master.geometry("900x600")
#==========label
show1=Label(master,text="kunkun")
photo = PhotoImage(name="wudi",file="xxzz.gif")
show2=Label(master,image=photo)
show1.pack(side="left")
show2.pack(side="left")
#======多行文本
tshow=Text(master,width=10,height=4)
tshow.pack(side="bottom")
复选框组件

#========checkbutton
var =StringVar()
cshow=Checkbutton(master,text="猫猫",variable=var,onvalue="RGB",offvalue="L",fg="blue")
cshow.pack(side="top")var2 =StringVar()
c2show=Checkbutton(master,text="狗狗",variable=var2,onvalue="RGB",offvalue="L",fg="blue")
cshow.pack(side="top")
c2show.pack(side="top")
Radiobutton单选组件

#====radio
v=IntVar()
rshow=Radiobutton(master,text="One",variable=v,value=1)
rshow.pack(anchor=W)
anchor=W-----------放在窗体西面
anchor
美: [ˈæŋkər] 英: [ˈæŋkə®] n. 锚;给以安全感的人(或物);精神支柱;顶梁柱
v. 抛锚;下锚;使固定;扣牢 网络 锚点;安佳;锚定
Frame框架组件

labelframe标签框架

lfshow=LabelFrame(master,text="Group",padx=5,pady=5)
lfshow.pack(pady=10,padx=10,expand="yes")
e1=Entry(lfshow,width=10)
e1.pack()
e2=Entry(lfshow,width=10)
e2.pack()
entry
美: [ˈentri] 英: ['entri]
n. 记录;词条;登录;录入
网络 进入;条目;入口
列表框Listbox

#=========listbox
lbshow=Listbox(master,bg="yellow",height=5,width=20)
lbshow.pack(side="top")
for item in ["one","two","three","four"]:lbshow.insert(END,item)
scrollbar滚动条组件

#======scrollbar
sshow=Scrollbar(master)
sshow.pack(side=RIGHT,fill=Y)
lbshow1=Listbox(master,fg="red",height=5,width=20)# 创建需要滚动条的列表框
lbshow1["yscrollcommand"]=sshow.set#把滚动条对象赋值给列表框属性
lbshow1.pack(side="right")# 设置滚动条在右边
for item in range(10):lbshow1.insert(END,item)# 循环为列表框插入七个值sshow.config(command=lbshow1.yview())# 滚动条与列表框绑定联动命令属性
scale刻度条组件

#====scale 刻度条组件
scshow=Scale(master,from_=0,to=100)# 长度为100的刻度条
scshow.pack(side="right")
spinbox组件

#=====spinbox
sbshow=Spinbox(master,from_=0,to=10)
sbshow.pack(side="left")
Spinbox
网络 旋钮控件;框;纺纱箱
spin
美: [spɪn]
英: [spɪn]
v. 旋转;纺纱;吐丝;纺线
n. 头晕;(快速)旋转;常用于英式英语;晕头转向
网络 自旋;旋转球;自转
Toplevel子窗体组件

#====toplevel 子窗体
tlshow=Toplevel(master)
tlshow.wm_attributes("-topmost",1)# 子窗体永远在界面最前面
tlshow.title("ok!")
t1show=Text(tlshow,width=10,height=4)
t2show=Text(tlshow,width=10,height=4)
t1show.pack()
t2show.pack()
PanedWindow组件

PanedWindow
网络 窗格视窗
pw=PanedWindow(orient=VERTICAL,bg="green")
pw.pack(fill=BOTH,expand=1)
for w in [Label,Button,Checkbutton,Radiobutton]:pw.add(w(pw,text='可上下移动'))
Menu
下拉菜单

# coding=gbk
from tkinter import *
master=Tk()
m1=Menu(master)# 菜单实例
master.config(menu=m1)
def callback():#定义菜单鼠标单击事件的 回调函数master.title("OK")
filemenu=Menu(m1)# 在m1上 添加子菜单
m1.add_cascade(label="File",menu=filemenu)# 在m1上设置子菜单名并关联子菜单1
filemenu.add_command(label="New",command=callback())
filemenu.add_command(label="Open...",command=callback())
filemenu.add_separator()# 增加分割线
filemenu.add_command(label="Exit",command=callback())
helpmenu=Menu(m1)
m1.add_cascade(label="Help",menu=helpmenu)
helpmenu.add_command(label="About...",command=callback())
mainloop()
弹出菜单

# coding=gbk
from tkinter import *
import tkinter.messagebox
master=Tk()
class Example(Frame):# 继承framedef __init__(self):super().__init__()self.initUI()# 初始化调用initUI函数def initUI(self):self.master.title("演示鼠标右键跳出菜单")self.menu=Menu(self.master,tearoff=0)# 在窗体上frame创建菜单对象self.menu.add_command(label="提示",command=self.showClick)self.menu.add_command(label="退出",command=self.onExit)self.master.bind("<Button-3>",self.showMenu)# 窗体鼠标右键函数,调用showMenu函数self.pack()def showMenu(self,e):self.menu.post(e.x_root,e.y_root)def showClick(self):tkinter.messagebox.showinfo("提示","点上了")def onExit(self):self.quit()master.geometry("250x150")
app=Example()
master.mainloop()
总结
针对组件
可以利用frame , labelframe 容器组件把相同方向的组件一起定位。
可以容器嵌套容器,让界面整洁
鼓励用相对位置来定位。

相关文章:
【python实操】用python写软件弹窗
文章目录前言组件label 与 多行文本复选框组件Radiobutton单选组件Frame框架组件labelframe标签框架列表框Listboxscrollbar滚动条组件scale刻度条组件spinbox组件Toplevel子窗体组件PanedWindow组件Menu下拉菜单弹出菜单总结针对组件前言 python学习之路任重而道远࿰…...
Ubuntu 常用操作
版本22.04 1、开启 root # 输入新密码 sudo passwd rootUbuntu以root账号登录桌面 默认情况是不允许用root帐号直接登录图形界面的。 Ubuntu 默认使用 GNOME,GNOME 使用 GDM 显示管理器。 为了允许以 root 身份登录到 GNOME,你需要对位于 /etc/…...
井字棋--课后程序(Python程序开发案例教程-黑马程序员编著-第7章-课后作业)
实例2:井字棋 井字棋是一种在3 * 3格子上进行的连珠游戏,又称井字游戏。井字棋的游戏有两名玩家,其中一个玩家画圈,另一个玩家画叉,轮流在3 * 3格子上画上自己的符号,最先在横向、纵向、或斜线方向连成一条…...
谷粒学院开发(三):统一日志、异常及前端准备工作
特定异常处理 ControllerAdvice public class GlobalExceptionHandler {ExceptionHandler(Exception.class) // 指定出现什么异常会被处理ResponseBody // 为了能够返回数据public R error(Exception e) {e.printStackTrace();return R.error().message("执行了全局异常…...
华为OD机试题 - 招聘(JavaScript)| 机考必刷
更多题库,搜索引擎搜 梦想橡皮擦华为OD 👑👑👑 更多华为OD题库,搜 梦想橡皮擦 华为OD 👑👑👑 更多华为机考题库,搜 梦想橡皮擦华为OD 👑👑👑 华为OD机试题 最近更新的博客使用说明本篇题解:招聘题目输入输出示例一输入输出说明示例二输入输出说明示例三输…...
关于SQL优化的几点说明
1. ORACLE DBA是如何进行SQL优化的 作为一个Oracle数据库管理员(DBA),SQL优化是他们的日常工作之一,主要目标是优化查询性能,减少查询时间,并提高数据库的整体性能。 以下是Oracle DBA如何进行SQL优化的一般流程: 监控…...
使用高精度秒表StopWatch测试DateTime.Now的精度
StopWatch使用的命名空间:using System.Diagnostics;StopWatch的使用方法:创建Stopwatch对象:stopwatch;stopwatch计时表开启:stopwatch.Start();stopwatch计时表关闭:stopwatch.Stop();计算stopwatch.Stop…...
【C++】vector的使用及其模拟实现
这里写目录标题一、vector的介绍及使用1. vector的介绍2. 构造函数3. 遍历方式4. 容量操作及空间增长问题5. 增删查改6. vector二维数组二、vector的模拟实现1. 构造函数2. 迭代器和基本接口3. reserve和resize4. push_back和pop_back5. insert和erase5. 迭代器失效问题5. 浅拷…...
[洛谷-P2585][ZJOI2006]三色二叉树(树形DP+状态机DP)
[洛谷-P2585][ZJOI2006]三色二叉树(树形DP状态机DP)一、题目题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1提示数据规模与约定二、分析1、递归建树2、树形DP 状态机DP(1)状态表示(2)状态转移三、…...
BI技巧丨计算组
PowerBI有三大工具,分别是DAX Studio,Tabular Editor和Bravo。 DAX Studio通常我们会用来进行性能分析和DAX调优使用,Bravo一般用来批量格式化DAX,而Tabular Editor主要的功能就是计算组。 计算组这个名词,相信很多小伙…...
PMP项目管理项目范围管理
目录1 项目范围管理概述2 规划范围管理3 收集需求4 定义范围5 创建 WBS6 确认范围7 控制范围1 项目范围管理概述 项目范围管理包括确保项目做且只做所需的全部工作,以成功完成项目的各 个过程。管理项目范围主要在于定义和控制哪些工作应在项目内,哪些工…...
Flink 定时加载数据源
一、简介 flink 自定义实时数据源使用流处理比较简单,比如 Kafka、MQ 等,如果使用 MySQL、redis 批处理也比较简单 如果需要定时加载数据作为 flink 数据源使用流处理,比如定时从 mysql 或者 redis 获取一批数据,传入 flink 做处…...
ChatGPT、人工智能、人类和一些酒桌闲聊
© 2023 Conmajia Initiated 10th March, 2023 昨天跟某化学家喝酒,期间提到了 ChatGPT。他的评价是:这鬼东西大量输出毫无意义、错漏百出甚至是虚假的信息,“in a confident accent”。例如某次 GPT 针对“描述某某记者”这一问题&#…...
WebRTC开源库内部调用abort函数引发程序发生闪退问题的排查
目录 1、初始问题描述 2、使用Process Explorer工具查看到处理音视频业务的rtcmpdll.dll模块没有加载起来 3、使用Dependency Walker工具查看到rtcmpdll.dll依赖的库有问题 4、更新库之后Debug程序启动时就发生异常,程序闪退 5、VS调试时看不到有效的函数调用堆…...
Golang并发编程
Golang并发编程 文章目录Golang并发编程1. 协程2. channel2.1 channel的创建2.2 使用waitGroup实现同步3. 并发编程3.1 并发编程之runtime包3.2 mutex互斥锁3.3 channel遍历3.3.1 for if遍历3.3.2 for range3.4 select switch3.5 Timer3.5.1 time.NewTimer()3.5.2 Stop、reset…...
windows+Anaconda环境下安装BERT成功安装方法及问题汇总
前言 在WindowsAnaconda环境下安装BERT,遇到各种问题,几经磨难,最终成功。接下来,先介绍成功的安装方法,再附上遇到的问题汇总 成功的安装方法 1、创建虚拟环境 注意:必须加上python3.7.12以创建环境&a…...
git - 简易指南
git - 简易指南 创建新仓库 创建新文件夹,打开,然后执行 git init 以创建新的 git 仓库。 检出仓库 执行如下命令以创建一个本地仓库的克隆版本: git clone /path/to/repository 如果是远端服务器上的仓库,你的命令会是这个样…...
[论文笔记]Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context
引言 我们知道Transformer很好用,但它设定的最长长度是512。像一篇文章超过512个token是很容易的,那么我们在处理这种长文本的情况下也想利用Transformer的强大表达能力需要怎么做呢? 本文就带来一种处理长文本的Transformer变种——Transf…...
华为OD机试题 - 找目标字符串(JavaScript)| 机考必刷
更多题库,搜索引擎搜 梦想橡皮擦华为OD 👑👑👑 更多华为OD题库,搜 梦想橡皮擦 华为OD 👑👑👑 更多华为机考题库,搜 梦想橡皮擦华为OD 👑👑👑 华为OD机试题 最近更新的博客使用说明本篇题解:找目标字符串题目输入输出示例一输入输出说明Code解题思路版权说…...
C++面向对象编程之六:重载操作符(<<,>>,+,+=,==,!=,=)
重载操作符C允许我们重新定义操作符(例如:,-,*,/)等,使其对于我们自定义的类类型对象,也能像内置数据类型(例如:int,float,double&…...
从社交推荐到金融风控:动态链路预测在工业界的5个落地场景详解
动态链路预测:从理论到商业价值的五大实战场景 社交平台上那些"可能认识的人"推荐,金融交易中突然拦截的欺诈提醒,电商首页精准推送的"猜你喜欢"——这些看似无关的场景背后,都藏着一个关键技术:动…...
模拟电路延时触发音频振荡器:DIY电子蟋蟀的原理与实现
1. 项目概述:一场源于图书馆的“电子恶作剧”这个故事始于1977年,几个高中二年级的学生,在图书馆的参考书区发现了一本出版于40年代的“宝藏”书籍。书里充满了各种能让青春期男孩兴奋不已的内容:爆炸性混合物、自燃的纸飞机、三碘…...
HC32F460_ADC驱动(二)
2 ADC工作的核心要素2.1 采样保持一般来说采样保持电路(S/H)是ADC转换的前端电路。由于模拟信号是时刻连续变化的,若转换过程中输入电压持续波动会导致转换结果失真。采样保持电路的核心作用是在ADC启动转换后保持输入信号不变,保…...
OpenClaw Gateway智能守护者:双触发自愈与AI诊断实践
1. 项目概述:一个为OpenClaw Gateway设计的智能守护者如果你在运维一个基于OpenClaw Gateway的服务,大概率经历过这样的深夜惊魂:手机突然收到告警,提示网关服务挂了,然后你不得不从床上爬起来,摸黑打开电脑…...
VS Code 高效开发:从 launch.json 变量替换到 task.json 自动化构建
1. 从零开始配置 VS Code 调试环境 第一次打开 VS Code 的调试面板时,很多开发者都会感到无从下手。其实配置调试环境并不复杂,关键是要理解 launch.json 文件的作用。这个文件就像是调试器的"说明书",告诉 VS Code 如何启动和连接…...
2026 最稳 AI 论文工具合集:好用不踩雷
毕业季的论文关卡,早已不是 “单打独斗” 的时代。从选题迷茫、大纲混乱,到文献难找、格式崩溃,再到查重超标、AI 率预警,每一个卡点都在消耗本科生的时间与精力。随着 AI 技术深度渗透学术场景,一批专注毕业论文写作的…...
告别BRAM!手把手教你用Vivado 2020.1为MicroBlaze工程挂载DDR3内存(附完整MIG配置流程)
突破FPGA内存限制:MicroBlaze工程DDR3内存扩展实战指南 在FPGA开发中,MicroBlaze软核处理器因其灵活性和可定制性广受欢迎,但随着应用复杂度提升,内部BRAM的容量限制很快成为性能瓶颈。本文将带您深入探索如何通过Xilinx Vivado 2…...
网络虚拟化如何应对100G性能挑战:从SDN/NFV到DPDK与智能网卡的演进
1. 网络虚拟化与100G浪潮:一场正在发生的架构革命如果你在2015年前后从事网络或云计算相关的工作,大概会对一个词印象深刻:100G。当时,行业媒体和厂商都在热烈讨论一个预测——到2018年,100G将成为网络设备,…...
DeepSeek R1模型API接入全流程(含鉴权失效应急手册):企业级生产环境已验证
更多请点击: https://intelliparadigm.com 第一章:DeepSeek R1模型API接入全流程(含鉴权失效应急手册):企业级生产环境已验证 DeepSeek R1 是当前高性能开源大语言模型之一,其官方 API 提供稳定、低延迟的…...
Allegro丝印层加汉字和防静电标识?我找到了比自带功能更香的免费Skill工具
Allegro丝印层高效处理方案:汉字与防静电标识的终极实践指南 在PCB设计的最后阶段,丝印层的处理往往成为工程师们头疼的问题。尤其是当设计需要添加中文注释、企业标识或行业标准符号(如防静电警告标志)时,Allegro原生…...
