python 使用tkinter与messagebox写界面和弹窗


Posted in Python onMarch 20, 2022

1、grid 布局

说明:

参数说明:

  •     sticky:在插件正常尺寸下,分配单元中多余的空间(如果没有声明属性,默认插件居中)
  •         NE:靠右上方
  •         SE:靠右下方
  •         NW:靠左上方
  •         N:靠上方
  •         E:靠右方
  •         S:靠下方
  •         W:靠左方
  •         N+S:在垂直方向上延伸插件,并保持水平居中
  •         E+W:在水平方向上延伸插件,并保持垂直居中
  •         N+W:在水平和垂直方向上延伸插件,填满单位
  •        N+S+W:在垂直方向上延伸插件,并靠左布放

注意:pack() 和  grid() 是不能同时使用的 

  •     row: 行
  •     column:列

2、Button 按钮

参数说明:

  •     :text:按钮名称
  •     :fg:按钮的前景色(按钮文本的颜色)
  •     :bd:按钮边框的大小,默认为 2 个像素
  •     :bg: 按钮的背景色
  •     :font: 文本字体,文字字号,文字字形。字形有overstrike/italic/bold/underline
  •     :width:按钮的宽度,如未设置此项,其大小以适应按钮的内容(文本或图片的大小)
  •     :height: 按钮的高度,如未设置此项,其大小以适应按钮的内容(文本或图片的大小)
  •     :image: 按钮上要显示的图片,图片必须以变量的形式赋值给image,图片必须是gif格式
  •     :justify: 显示多行文本的时候,设置不同行之间的对齐方式,可选项包括left, right, center
  •     :padx: 按钮在x轴方向上的内边距(padding),是指按钮的内容与按钮边缘的距离
  •     :pady: 按钮在y轴方向上的内边距(padding)
  •     :relief: 边框样式,设置控件显示效果,可选的有:FLAT、SUNKEN、RAISED、GROOVE、RIDGE。
  •     :wraplength: 限制按钮每行显示的字符的数量,超出限制数量后则换行显示
  •     :underline: 下划线。默认按钮上的文本都不带下划线。取值就是带下划线的字符串索引,为 0 时,第一个字符带下划线,为 1 时,第两个字符带下划线,以此类推
  •     :state:按钮状态 (状态要用小写,大写报错)
    •         1、normal  正常
    •         2、active  激活
    •         3、disabled  禁用
  •     :command:执行内容(按钮关联的函数,当按钮被点击时,执行该函数)
  •     :activebackground: 当鼠标放上去时,按钮的背景色
  •     :activeforeground: 当鼠标放上去时,按钮的前景色

3、使用:

from tkinter import *
from tkinter import messagebox  # python3.0的messagebox,属于tkinter的一个组件

top = Tk()  #。生成窗口
top.title("grid test")  #  窗口标题
top.geometry('300x400')  #。窗口大小


def box():
    return messagebox.askyesno(title='弹窗', message='内容')


Popup1 = Button(top, text="按钮1", fg="blue", bd=2, width=5, command=box, state="normal")
Popup1.grid(row=1, column=1, sticky='E')

Popup2 = Button(top, text="按钮2", fg="yellow", bd=2, width=5, command=box, state="normal")
Popup2.grid(row=2, column=2, sticky='NE')

效果:

python 使用tkinter与messagebox写界面和弹窗

4、无限循环的小弹窗:

:不选yes,不给通过!

这里需要改一下messagebox内的源代码!

  • 1、进入messagebox内,找到askyesnocancel弹窗方法
  • 2、在方法内把判断修改为一下内容(python会提示是否修改,同意即可)
    if s == CANCEL or s == NO:
        return None
    elif s == YES:
        return YES

python 使用tkinter与messagebox写界面和弹窗

代码:

from tkinter import *
from tkinter import messagebox


tk = Tk()
tk.title('测试')
tk.geometry('100x200')
nub = 1


def Popup1():
    global nub
    '''
    askyesnocancel 弹窗:  方法解释是这样的
    Ask a question; return true if the answer is yes, None if cancelled.
    '''
    d = messagebox.askyesnocancel(title='问题', message='python \n你是否愿意继续学习下去?')
    while True:
        if d is None:
            n = Popup2(nub)
            if n is None:
                pass
            else:
                messagebox.showinfo(title=' 提示 ', message='坚持就是胜利!\n加油!一起继续学习下去!')
                #  关闭弹窗
                tk.destroy()
                return
        else:
            return
        nub += 1


def Popup2(value):
    return messagebox.askyesnocancel(title='选择', message='你选择的第%s次' % value)


d = Button(tk, text='开始选择', fg='blue', bd=2, width=10, command=Popup1)
d.grid(row=1, column=1, sticky='NE')


tk.mainloop()

到此这篇关于python 使用tkinter与messagebox写界面和弹窗的文章就介绍到这了,更多相关python 写界面和弹窗内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
pymssql数据库操作MSSQL2005实例分析
May 25 Python
使用Django的模版来配合字符串翻译工作
Jul 27 Python
详解Python3中的Sequence type的使用
Aug 01 Python
Python ldap实现登录实例代码
Sep 30 Python
Python实现将不规范的英文名字首字母大写
Nov 15 Python
Python实现对象转换为xml的方法示例
Jun 08 Python
PyCharm代码格式调整方法
May 23 Python
Python在for循环中更改list值的方法【推荐】
Aug 17 Python
python实现K近邻回归,采用等权重和不等权重的方法
Jan 23 Python
如何使用django的MTV开发模式返回一个网页
Jul 22 Python
pyenv虚拟环境管理python多版本和软件库的方法
Dec 26 Python
Python调用飞书发送消息的示例
Nov 10 Python
python中的sys模块和os模块
Mar 20 #Python
python_tkinter事件类型详情
Mar 20 #Python
再谈python_tkinter弹出对话框创建
python_tkinter弹出对话框创建
Mar 20 #Python
Python读写yaml文件
Mar 20 #Python
PO模式在selenium自动化测试框架的优势
Python IO文件管理的具体使用
You might like
《破坏领主》销量已超100万 未来将继续开发新内容
2020/03/08 其他游戏
PHP 中的面向对象编程:通向大型 PHP 工程的办法
2006/12/03 PHP
php操作sqlserver关于时间日期读取的小小见解
2009/11/29 PHP
创建配置文件 用PHP写出自己的BLOG系统 2
2010/04/12 PHP
PHP 第三节 变量介绍
2012/04/28 PHP
php生成zip压缩文件的方法详解
2013/06/09 PHP
深入解读php中关于抽象(abstract)类和抽象方法的问题分析
2014/01/03 PHP
19个超实用的PHP代码片段
2014/03/14 PHP
浅谈PHP定义命令空间的几个注意点(推荐)
2016/10/29 PHP
php微信公众号开发之图片回复
2018/10/20 PHP
IE网页js语法错误2行字符1、FF中正常的解决方法
2013/09/09 Javascript
jquery div模态窗口的简单实例
2016/05/28 Javascript
浅谈JavaScript对象的创建方式
2016/06/13 Javascript
深究AngularJS中ng-drag、ng-drop的用法
2017/06/12 Javascript
Vue.set() this.$set()引发的视图更新思考及注意事项
2018/08/30 Javascript
JavaScript学习笔记之数组基本操作示例
2019/01/09 Javascript
基于vue开发微信小程序mpvue-docs跳转页面功能
2019/04/10 Javascript
echarts实现折线图的拖拽效果
2019/12/19 Javascript
《javascript设计模式》学习笔记四:Javascript面向对象程序设计链式调用实例分析
2020/04/07 Javascript
Vue组件间数据传递的方式(3种)
2020/07/13 Javascript
Javascript实现关闭广告效果
2021/01/29 Javascript
Python自定义函数的创建、调用和函数的参数详解
2014/03/11 Python
Python基于FTP模块实现ftp文件上传操作示例
2018/04/23 Python
python中的decorator的作用详解
2018/07/26 Python
零基础使用Python读写处理Excel表格的方法
2019/05/02 Python
Django框架实现分页显示内容的方法详解
2019/05/10 Python
django 捕获异常和日志系统过程详解
2019/07/18 Python
pytorch 可视化feature map的示例代码
2019/08/20 Python
Python实现银行账户资金交易管理系统
2020/01/03 Python
python 实现全球IP归属地查询工具
2020/12/18 Python
Vans奥地利官方网站:美国原创极限运动潮牌
2018/09/30 全球购物
波兰汽车配件网上商店:iParts.pl
2020/09/08 全球购物
《中国梦我的梦》中学生演讲稿
2014/08/20 职场文书
承兑汇票转让证明怎么写?
2014/11/30 职场文书
pytorch加载预训练模型与自己模型不匹配的解决方案
2021/05/13 Python
SQL语句中EXISTS的详细用法大全
2022/06/25 MySQL