python-tkinter之按钮的使用,开关方法


Posted in Python onJune 11, 2019

具体参考哪位大佬的,记不太清楚了。

直接上代码,大体逻辑是这样的。

# -*- coding:utf-8 -*-
from tkinter import *
root=Tk()
 
def g():
  if b['text']=='开始':
    b['text']='关闭'
    print('开始')
  else:
    b['text']='开始'
    print('结束')
b=Button(root,text='开始',font=('KaiTi',36,'bold'),bg='pink',fg='green',bd=2,width=10,command=g)
b.pack()
root.mainloop()

python-tkinter之按钮的使用,开关方法

说一说我遇到的问题:

from tkinter import *
from tkinter import ttk
from tkinter.messagebox import *
import os
#log日志
class CountFrame(Frame): # 继承Frame类
  def __init__(self, master=None):
    Frame.__init__(self, master)
    self.root = master # 定义内部变量root
    self.createPage()
 
  def createPage(self):
    self.B=Button(self, text='开始', width=12, command=self.switch).grid(row=6, stick=E, pady=10)
  def switch(self):
    if self.B['text']=='开始':
      self.B['text']='结束'
      print(1)
    else:
      self.B['text']='开始'

我想让这个开始按钮,点击变成开始,再次点击变成结束。

python-tkinter之按钮的使用,开关方法

使用上面的方法是失败的,我发现self.B打印出来为空。

self.B=Button(self, text='开始', width=12, command=self.switch).grid(row=6, stick=E, pady=10)
grid(row=6, stick=E, pady=10)

是因为后面调用了grid方法导致的,两个对象公用一个对象有冲突,(grid为展示方法),一个调用,一个展示,把他们两个分开写。

下面是最终的代码:

from tkinter import *
from tkinter import ttk
from tkinter.messagebox import *
import os
 
 
#基础功能
class InputFrame(Frame): # 继承Frame类
  def __init__(self, master=None):
    Frame.__init__(self, master)
    self.root = master # 定义内部变量root
    self.itemName = StringVar()
    self.importPrice = StringVar()
    self.sellPrice = StringVar()
    self.deductPrice = StringVar()
    self.createPage()
 
  def createPage(self):
    Label(self).grid(row=0, stick=W, pady=10)
    Button(self,text='截屏',width=25,height=5,).grid(row=1, stick=W, pady=10)
    Button(self, text='录像',width=25,height=5,).grid(row=2, stick=W, pady=10)
 
#mongkey
class QueryFrame(Frame): # 继承Frame类
  def __init__(self, master=None):
    Frame.__init__(self, master)
    self.root = master # 定义内部变量root
    self.itemName = StringVar()
    self.importPrice = StringVar()
    self.sellPrice = StringVar()
    self.deductPrice = StringVar()
    self.number=StringVar()
    self.createPage()
 
  def createPage(self):
    Label(self).grid(row=0, stick=W, pady=10)
    Label(self, text='包名: ').grid(row=1, stick=W, pady=10)
    Entry(self, textvariable=self.itemName).grid(row=1, column=1, stick=E)
    Label(self, text='压力: ').grid(row=2, stick=W, pady=10)
    Entry(self, textvariable=self.importPrice).grid(row=2, column=1, stick=E)
    Label(self, text='标记: ').grid(row=3, stick=W, pady=10)
    Entry(self, textvariable=self.sellPrice).grid(row=3, column=1, stick=E)
    # 创建一个下拉列表
    Label(self, text='日志级别: ').grid(row=4, stick=W, pady=10)
    numberChosen = ttk.Combobox(self, width=12, textvariable=self.number, state='readonly')
    numberChosen['values'] = (1, 2, 3) # 设置下拉列表的值
    numberChosen.grid(column=1, row=4,stick=E) # 设置其在界面中出现的位置 column代表列  row 代表行
    numberChosen.current(1) # 设置下拉列表默认显示的值,1为 numberChosen['values'] 的下标值
 
    Checkbutton(self,text='忽略崩溃').grid(row=5, column=1, stick=E)
    Checkbutton(self, text='忽略超时').grid(row=6, column=1, stick=E)
    Checkbutton(self, text='崩溃日志').grid(row=7, column=1, stick=E)
    Button(self, text='开始压测').grid(row=8, column=5, stick=E, pady=5)
    Button(self, text='报告分析').grid(row=9, column=5, stick=E, pady=5)
 
 
 
#log日志
class CountFrame(Frame): # 继承Frame类
  def __init__(self, master=None):
    Frame.__init__(self, master)
    self.root = master # 定义内部变量root
    self.logLevel=StringVar()#日志级别
    self.label=StringVar()#过滤标签
    self.filterFormat=StringVar()#过滤项格式
    self.createPage()
 
  def createPage(self):
    Label(self, text='过滤标签: ').grid(row=1, stick=W, pady=10)
    Entry(self, textvariable=self.label).grid(row=1, column=1, stick=E)
    Label(self, text='过滤字符串: ').grid(row=2, stick=W, pady=10)
    Entry(self, textvariable=self.label).grid(row=2, column=1, stick=E)
    Label(self, text='正则过滤: ').grid(row=3, stick=W, pady=10)
    Entry(self, textvariable=self.label).grid(row=3, column=1, stick=E)
    #日志级别############################################################
    # 创建一个下拉列表
    Label(self, text='日志级别: ').grid(row=4, stick=W, pady=10)
    Label(self).grid(row=0, stick=W, pady=10)
    numberChosen = ttk.Combobox(self, width=12, textvariable=self.logLevel, state='readonly')
    numberChosen['values'] = (1, 2, 3) # 设置下拉列表的值
    numberChosen.grid(column=1, row=4, stick=E) # 设置其在界面中出现的位置 column代表列  row 代表行
    numberChosen.current(1) # 设置下拉列表默认显示的值,1为 numberChosen['values'] 的下标值
    #过滤格式############################################################
    Label(self, text='过滤项格式: ').grid(row=5, stick=W, pady=10)
    Label(self).grid(row=0, stick=W, pady=10)
    filterFormat = ttk.Combobox(self, width=12, textvariable=self.filterFormat, state='readonly')
    #-- V : Verbose (明细);
    #-- D : Debug (调试);
    #-- I : Info (信息);
    #-- W : Warn (警告);
    #-- E : Error (错误);
    #-- F : Fatal (严重错误);
    filterFormat['values'] = ('Verbose','Debug','Warn','Error','Fatal') # 设置下拉列表的值
    filterFormat.grid(column=1, row=5, stick=E) # 设置其在界面中出现的位置 column代表列  row 代表行
    filterFormat.current(1) # 设置下拉列表默认显示的值,1为 numberChosen['values'] 的下标值
    self.B=Button(self, text='开始', width=12,command=self.switch )
    self.B.grid(row=6, stick=E, pady=10)
    # Button(self, text='生成日志', width=12, ).grid(row=6, stick=E, pady=10)
 
  def switch(self):
    if self.B['text']=='开始':
      self.B['text']='结束'
      print(1)
    else:
      self.B['text']='开始'
 
 
#性能测试界面
class AboutFrame(Frame): # 继承Frame类
  def __init__(self, master=None):
    Frame.__init__(self, master)
    self.root = master # 定义内部变量root
    self.createPage()
 
  def createPage(self):
    Label(self, text='性能测试开发中').pack()
 
 
#设置页面
class SeetingFrame(Frame): # 继承Frame类
  def __init__(self, master=None):
    Frame.__init__(self, master)
    self.root = master # 定义内部变量root
    self.createPage()
 
  def createPage(self):
    Label(self, text='设置开发中').pack()

以上这篇python-tkinter之按钮的使用,开关方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python基础教程之获取本机ip数据包示例
Feb 10 Python
python实现rest请求api示例
Apr 22 Python
利用TensorFlow训练简单的二分类神经网络模型的方法
Mar 05 Python
python机器学习之贝叶斯分类
Mar 26 Python
Python中将变量按行写入txt文本中的方法
Apr 03 Python
Python图像滤波处理操作示例【基于ImageFilter类】
Jan 03 Python
python使用tkinter库实现五子棋游戏
Jun 18 Python
python爬虫 模拟登录人人网过程解析
Jul 31 Python
100行Python代码实现每天不同时间段定时给女友发消息
Sep 27 Python
python可视化实现KNN算法
Oct 16 Python
通过Python实现Payload分离免杀过程详解
Jul 13 Python
windows下python 3.9 Numpy scipy和matlabplot的安装教程详解
Nov 28 Python
人工神经网络算法知识点总结
Jun 11 #Python
解决django后台样式丢失,css资源加载失败的问题
Jun 11 #Python
python实现合并多个list及合并多个django QuerySet的方法示例
Jun 11 #Python
Python GUI编程 文本弹窗的实例
Jun 11 #Python
Python API 自动化实战详解(纯代码)
Jun 11 #Python
Python-while 计算100以内奇数和的方法
Jun 11 #Python
python操作文件的参数整理
Jun 11 #Python
You might like
PHP4实际应用经验篇(5)
2006/10/09 PHP
php中ob(Output Buffer 输出缓冲)函数使用方法
2007/07/21 PHP
在PHP里得到前天和昨天的日期的代码
2007/08/16 PHP
Windows PHP5和Apache的安装与配置
2009/06/08 PHP
解析thinkphp中的M()与D()方法的区别
2013/06/22 PHP
PHP代码实现表单数据验证类
2015/07/28 PHP
javascript对数组的常用操作代码 数组方法总汇
2011/01/27 Javascript
jQuery UI Autocomplete 1.8.16 中文输入修正代码
2012/04/16 Javascript
jQuery建立一个按字母顺序排列的友好页面索引(兼容IE6/7/8)
2013/02/26 Javascript
JS 模态对话框和非模态对话框操作技巧汇总
2013/04/15 Javascript
页面按钮禁用与解除禁用的方法
2014/02/19 Javascript
Jquery日历插件制作简单日历
2015/10/28 Javascript
JS获取文件大小方法小结
2015/12/08 Javascript
javascript自动切换焦点控制效果完整实例
2016/02/02 Javascript
JS中的hasOwnProperty()、propertyIsEnumerable()和isPrototypeOf()
2016/08/11 Javascript
js正则表达式注册页面表单验证
2016/10/11 Javascript
详解angularJs中关于ng-class的三种使用方式说明
2017/06/02 Javascript
vue 中自定义指令改变data中的值
2017/06/02 Javascript
JavaScript中使用参数个数实现重载功能
2017/09/01 Javascript
Vue 过滤器filters及基本用法
2017/12/26 Javascript
微信小程序实现顶部下拉菜单栏
2018/11/04 Javascript
使用vue-cli webpack 快速搭建项目的代码
2018/11/21 Javascript
微信小程序实现点击效果
2019/06/21 Javascript
[06:16]《DAC最前线》之地区预选赛全面回顾
2015/01/19 DOTA
Python卸载模块的方法汇总
2016/06/07 Python
Python画柱状统计图操作示例【基于matplotlib库】
2018/07/04 Python
pytorch训练imagenet分类的方法
2018/07/27 Python
Django 框架模型操作入门教程
2019/11/05 Python
浅谈在JupyterNotebook下导入自己的模块的问题
2020/04/16 Python
Python获取指定网段正在使用的IP
2020/12/14 Python
酒店保洁主管岗位职责
2013/11/28 职场文书
税务会计岗位职责
2014/02/18 职场文书
会计学习心得体会
2014/09/09 职场文书
2014年乡镇党建工作总结
2014/11/11 职场文书
学生乘坐校车安全责任书
2015/05/11 职场文书
2015国庆66周年宣传语
2015/07/14 职场文书