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 相关文章推荐
Python中防止sql注入的方法详解
Feb 25 Python
浅谈Python用QQ邮箱发送邮件时授权码的问题
Jan 29 Python
一行代码让 Python 的运行速度提高100倍
Oct 08 Python
Python常用爬虫代码总结方便查询
Feb 25 Python
树莓派与PC端在局域网内运用python实现即时通讯
Jun 22 Python
Kali Linux安装ipython2 和 ipython3的方法
Jul 11 Python
python 进程间数据共享multiProcess.Manger实现解析
Sep 23 Python
Django框架models使用group by详解
Mar 11 Python
Python如何重新加载模块
Jul 29 Python
pandas apply多线程实现代码
Aug 17 Python
一些关于python 装饰器的个人理解
Aug 31 Python
Python self用法详解
Nov 28 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
Zend Framework教程之Bootstrap类用法概述
2016/03/14 PHP
php版银联支付接口开发简明教程
2016/10/14 PHP
Laravel给生产环境添加监听事件(SQL日志监听)
2017/06/19 PHP
用javascript实现的激活输入框后隐藏初始内容
2007/06/29 Javascript
jQuery 连续列表实现代码
2009/12/21 Javascript
扩展javascript的Date方法实现代码(prototype)
2010/11/20 Javascript
Extjs gridpanel 出现横向滚动条问题的解决方法
2011/07/04 Javascript
Express作者TJ告别Node.js奔向Go
2014/07/14 Javascript
javascript实现计时器的简单方法
2016/02/21 Javascript
js滚轮事件兼容性问题需要注意哪些
2016/11/15 Javascript
Bootstrap复选框和单选按钮美化插件(推荐)
2016/11/23 Javascript
vue2组件实现懒加载浅析
2017/03/29 Javascript
vue bus全局事件中心简单Demo详解
2018/02/26 Javascript
JavaScript高级函数应用之分时函数实例分析
2018/08/03 Javascript
详解微信小程序工程化探索之webpack实战
2020/04/20 Javascript
Vue 同步异步存值取值实现案例
2020/08/05 Javascript
PyQt5每天必学之创建窗口居中效果
2018/04/19 Python
解决pandas无法在pycharm中使用plot()方法显示图像的问题
2018/05/24 Python
python打包生成的exe文件运行时提示缺少模块的解决方法
2018/10/31 Python
python 利用pandas将arff文件转csv文件的方法
2019/02/12 Python
python实现统计文本中单词出现的频率详解
2019/05/20 Python
超简单的Python HTTP服务
2019/07/22 Python
python tkinter canvas使用实例
2019/11/04 Python
Python脚本去除文件的只读性操作
2020/03/05 Python
Python 实现将大图切片成小图,将小图组合成大图的例子
2020/03/14 Python
html5超简单的localStorage实现记住密码的功能实现
2017/09/07 HTML / CSS
几个人围成一圈的问题
2013/09/26 面试题
南京某软件公司的.net面试题
2015/11/30 面试题
拉拉队口号
2014/06/16 职场文书
授权委托书范文
2014/07/31 职场文书
实习科室评语
2015/01/04 职场文书
2016党员读书思廉心得体会
2016/01/23 职场文书
经销商会议开幕词
2016/03/04 职场文书
创业计划书之牛肉汤快餐店
2019/10/08 职场文书
AudioContext 实现音频可视化(web技术分享)
2022/02/24 Javascript
Win11软件图标固定到任务栏
2022/04/19 数码科技