当前位置: 首页 > news >正文

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

在这里插入图片描述

在这里插入图片描述

文章目录

  • 前言
  • 组件
    • label 与 多行文本
    • 复选框组件
    • Radiobutton单选组件
    • Frame框架组件
    • labelframe标签框架
    • 列表框Listbox
    • scrollbar滚动条组件
    • scale刻度条组件
    • spinbox组件
    • Toplevel子窗体组件
    • PanedWindow组件
  • Menu
    • 下拉菜单
    • 弹出菜单
  • 总结
    • 针对组件

前言

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学习之路任重而道远&#xff0…...

Ubuntu 常用操作

版本22.04 1、开启 root # 输入新密码 sudo passwd rootUbuntu以root账号登录桌面 默认情况是不允许用root帐号直接登录图形界面的。 Ubuntu 默认使用 GNOME&#xff0c;GNOME 使用 GDM 显示管理器。 为了允许以 root 身份登录到 GNOME&#xff0c;你需要对位于 ​​/etc/…...

井字棋--课后程序(Python程序开发案例教程-黑马程序员编著-第7章-课后作业)

实例2&#xff1a;井字棋 井字棋是一种在3 * 3格子上进行的连珠游戏&#xff0c;又称井字游戏。井字棋的游戏有两名玩家&#xff0c;其中一个玩家画圈&#xff0c;另一个玩家画叉&#xff0c;轮流在3 * 3格子上画上自己的符号&#xff0c;最先在横向、纵向、或斜线方向连成一条…...

谷粒学院开发(三):统一日志、异常及前端准备工作

特定异常处理 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)&#xff0c;SQL优化是他们的日常工作之一&#xff0c;主要目标是优化查询性能&#xff0c;减少查询时间&#xff0c;并提高数据库的整体性能。 以下是Oracle DBA如何进行SQL优化的一般流程&#xff1a; 监控…...

使用高精度秒表StopWatch测试DateTime.Now的精度

StopWatch使用的命名空间&#xff1a;using System.Diagnostics;StopWatch的使用方法&#xff1a;创建Stopwatch对象&#xff1a;stopwatch&#xff1b;stopwatch计时表开启&#xff1a;stopwatch.Start();stopwatch计时表关闭&#xff1a;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]三色二叉树&#xff08;树形DP状态机DP&#xff09;一、题目题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1提示数据规模与约定二、分析1、递归建树2、树形DP 状态机DP&#xff08;1&#xff09;状态表示&#xff08;2&#xff09;状态转移三、…...

BI技巧丨计算组

PowerBI有三大工具&#xff0c;分别是DAX Studio&#xff0c;Tabular Editor和Bravo。 DAX Studio通常我们会用来进行性能分析和DAX调优使用&#xff0c;Bravo一般用来批量格式化DAX&#xff0c;而Tabular Editor主要的功能就是计算组。 计算组这个名词&#xff0c;相信很多小伙…...

PMP项目管理项目范围管理

目录1 项目范围管理概述2 规划范围管理3 收集需求4 定义范围5 创建 WBS6 确认范围7 控制范围1 项目范围管理概述 项目范围管理包括确保项目做且只做所需的全部工作&#xff0c;以成功完成项目的各 个过程。管理项目范围主要在于定义和控制哪些工作应在项目内&#xff0c;哪些工…...

Flink 定时加载数据源

一、简介 flink 自定义实时数据源使用流处理比较简单&#xff0c;比如 Kafka、MQ 等&#xff0c;如果使用 MySQL、redis 批处理也比较简单 如果需要定时加载数据作为 flink 数据源使用流处理&#xff0c;比如定时从 mysql 或者 redis 获取一批数据&#xff0c;传入 flink 做处…...

ChatGPT、人工智能、人类和一些酒桌闲聊

© 2023 Conmajia Initiated 10th March, 2023 昨天跟某化学家喝酒&#xff0c;期间提到了 ChatGPT。他的评价是&#xff1a;这鬼东西大量输出毫无意义、错漏百出甚至是虚假的信息&#xff0c;“in a confident accent”。例如某次 GPT 针对“描述某某记者”这一问题&#…...

WebRTC开源库内部调用abort函数引发程序发生闪退问题的排查

目录 1、初始问题描述 2、使用Process Explorer工具查看到处理音视频业务的rtcmpdll.dll模块没有加载起来 3、使用Dependency Walker工具查看到rtcmpdll.dll依赖的库有问题 4、更新库之后Debug程序启动时就发生异常&#xff0c;程序闪退 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&#xff0c;遇到各种问题&#xff0c;几经磨难&#xff0c;最终成功。接下来&#xff0c;先介绍成功的安装方法&#xff0c;再附上遇到的问题汇总 成功的安装方法 1、创建虚拟环境 注意&#xff1a;必须加上python3.7.12以创建环境&a…...

git - 简易指南

git - 简易指南 创建新仓库 创建新文件夹&#xff0c;打开&#xff0c;然后执行 git init 以创建新的 git 仓库。 检出仓库 执行如下命令以创建一个本地仓库的克隆版本&#xff1a; git clone /path/to/repository 如果是远端服务器上的仓库&#xff0c;你的命令会是这个样…...

[论文笔记]Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context

引言 我们知道Transformer很好用&#xff0c;但它设定的最长长度是512。像一篇文章超过512个token是很容易的&#xff0c;那么我们在处理这种长文本的情况下也想利用Transformer的强大表达能力需要怎么做呢&#xff1f; 本文就带来一种处理长文本的Transformer变种——Transf…...

华为OD机试题 - 找目标字符串(JavaScript)| 机考必刷

更多题库,搜索引擎搜 梦想橡皮擦华为OD 👑👑👑 更多华为OD题库,搜 梦想橡皮擦 华为OD 👑👑👑 更多华为机考题库,搜 梦想橡皮擦华为OD 👑👑👑 华为OD机试题 最近更新的博客使用说明本篇题解:找目标字符串题目输入输出示例一输入输出说明Code解题思路版权说…...

C++面向对象编程之六:重载操作符(<<,>>,+,+=,==,!=,=)

重载操作符C允许我们重新定义操作符&#xff08;例如&#xff1a;&#xff0c;-&#xff0c;*&#xff0c;/&#xff09;等&#xff0c;使其对于我们自定义的类类型对象&#xff0c;也能像内置数据类型&#xff08;例如&#xff1a;int&#xff0c;float&#xff0c;double&…...

MFC内存泄露

1、泄露代码示例 void X::SetApplicationBtn() {CMFCRibbonApplicationButton* pBtn GetApplicationButton();// 获取 Ribbon Bar 指针// 创建自定义按钮CCustomRibbonAppButton* pCustomButton new CCustomRibbonAppButton();pCustomButton->SetImage(IDB_BITMAP_Jdp26)…...

深入理解JavaScript设计模式之单例模式

目录 什么是单例模式为什么需要单例模式常见应用场景包括 单例模式实现透明单例模式实现不透明单例模式用代理实现单例模式javaScript中的单例模式使用命名空间使用闭包封装私有变量 惰性单例通用的惰性单例 结语 什么是单例模式 单例模式&#xff08;Singleton Pattern&#…...

P3 QT项目----记事本(3.8)

3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...

Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!

一、引言 在数据驱动的背景下&#xff0c;知识图谱凭借其高效的信息组织能力&#xff0c;正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合&#xff0c;探讨知识图谱开发的实现细节&#xff0c;帮助读者掌握该技术栈在实际项目中的落地方法。 …...

JDK 17 新特性

#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持&#xff0c;不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的&#xff…...

实战三:开发网页端界面完成黑白视频转为彩色视频

​一、需求描述 设计一个简单的视频上色应用&#xff0c;用户可以通过网页界面上传黑白视频&#xff0c;系统会自动将其转换为彩色视频。整个过程对用户来说非常简单直观&#xff0c;不需要了解技术细节。 效果图 ​二、实现思路 总体思路&#xff1a; 用户通过Gradio界面上…...

文件上传漏洞防御全攻略

要全面防范文件上传漏洞&#xff0c;需构建多层防御体系&#xff0c;结合技术验证、存储隔离与权限控制&#xff1a; &#x1f512; 一、基础防护层 前端校验&#xff08;仅辅助&#xff09; 通过JavaScript限制文件后缀名&#xff08;白名单&#xff09;和大小&#xff0c;提…...

门静脉高压——表现

一、门静脉高压表现 00:01 1. 门静脉构成 00:13 组成结构&#xff1a;由肠系膜上静脉和脾静脉汇合构成&#xff0c;是肝脏血液供应的主要来源。淤血后果&#xff1a;门静脉淤血会同时导致脾静脉和肠系膜上静脉淤血&#xff0c;引发后续系列症状。 2. 脾大和脾功能亢进 00:46 …...

Tauri2学习笔记

教程地址&#xff1a;https://www.bilibili.com/video/BV1Ca411N7mF?spm_id_from333.788.player.switch&vd_source707ec8983cc32e6e065d5496a7f79ee6 官方指引&#xff1a;https://tauri.app/zh-cn/start/ 目前Tauri2的教程视频不多&#xff0c;我按照Tauri1的教程来学习&…...

C++中vector类型的介绍和使用

文章目录 一、vector 类型的简介1.1 基本介绍1.2 常见用法示例1.3 常见成员函数简表 二、vector 数据的插入2.1 push_back() —— 在尾部插入一个元素2.2 emplace_back() —— 在尾部“就地”构造对象2.3 insert() —— 在任意位置插入一个或多个元素2.4 emplace() —— 在任意…...