有没有tkinter用的比较溜的? 正在学习来问问前辈们
python吧
全部回复
仅看楼主
level 1
likili 楼主
想问两个问题.
第一.
我发现主窗口Tk()的颜色 可变.
譬如
root = Tk()
建立一个按钮 功能函数写成这样
def 功能():
root['bg'] = 'red'
这样 无论建立的时候 填的什么颜色,只要点击按钮,就能把主窗口变成红色的.
但是 Frame容器不行.
譬如 建立好窗口 又建立了一个Frame容器 F1
然后设置按钮函数
def 功能():
F1['bg'] = 'red'
点击无效.
我想问问 是Frame容器不能改 点击按钮报错
TypeError: 'NoneType' object does not support item assignment
2018年08月12日 08点08分 1
level 1
likili 楼主
第二个问题
root = Tk()
我现在做了个随机颜色的函数
然后挂在按钮上,一点击,root窗口就随机变色. 没有问题.
但是突然想 让root窗口 隔几秒 自动变色一下 不用按钮点.
还是用那个随机颜色的函数.
试了很多思路 要么不行
要么就是颜色是变了,但是遮盖住按钮和输入框之类的元件
有没有什么好的思路?
2018年08月12日 09点08分 2
level 1
likili 楼主
先放出我写的
为了方便用tkinter写一些小东西, 我把经常会用的几个元件功能 写成自己习惯用的函数,保存成一个文件 基础.PY
#coding=utf-8
from tkinter import *
class 主题窗口():
def __init__(self,neirong,daxiao):
self.root =Tk()
self.root.title(neirong)
self.root.geometry(daxiao)
self.root.resizable(width= False,height=False)
def 容器(chuangkou,kuan,gao,yanse,xzb,yzb):
f1 =Frame(chuangkou,width=kuan,height=gao,bg=yanse).place(x =xzb,y = yzb)
class 广播牌():
def __init__(self,chuangkou,neirong,xzuobiao,yzuobiao):
self.li_s =StringVar()
self.li_s.set(neirong)
self.l1 = Label(chuangkou,textvariable =self.li_s ,font = ('微软雅黑',18) ,bg ='#FFFFE0').place(x =xzuobiao,y = yzuobiao)
class 输入框():
def __init__(self,chuangkou,neirong,xzuobiao,yzuobiao):
self.e1_s = StringVar()
self.e1 =Entry(chuangkou,textvariable = self.e1_s,font =('黑体',12))
self.e1_s.set(neirong)
self.e1.place(width=150, height=50,x =xzuobiao, y=yzuobiao)
def 按钮(chuangkou,neirong,gongneng,xzb,yzb):
b1 = Button(chuangkou,text = neirong,bg = '#FFFEEF',command = gongneng).place(x =xzb,y=yzb)
2018年08月12日 09点08分 3
level 1
likili 楼主
然后这是我刚才问的那两个问题里 写的
#coding = utf-8
from tkinter_基础四大件 import *
import os,random,time
def 随机颜色():
基零 = '0'
跳16 = ['A','B','C','D','E','F']
for i in range(0,10):
跳16.append(str(i))
红 = random.choice(跳16)
绿 = random.choice(跳16)
蓝 = random.choice(跳16)
颜色 = '#'+红+基零+绿+基零+蓝+基零
return 颜色
def 功能1():
文本路径 = r'模拟改造位置ip.doc'
os.startfile(文本路径)
def 功能2():
root.root['bg']=随机颜色()
root = 主题窗口('hehehehe','800x600')
L1 = 广播牌(root.root,'点击下列按钮打开文本文档',250,280)
B1 = 按钮(root.root,'点我换个颜色',功能2,320,330)
B2 = 按钮(root.root,'点我打开监控位置',功能1,420,330)
root.root.mainloop()
2018年08月12日 09点08分 4
level 1
likili 楼主
调入time模块 是想让窗口
无论是Tk() 还是 容器Frame 能自动几秒一变色.
暂时还没用上
2018年08月12日 09点08分 5
level 12
中文类和中文方法,你是把他当易语言写吗
2018年08月12日 10点08分 6
有何不可 是又怎样
2018年08月12日 13点08分
level 9
sleep呗
2018年08月12日 13点08分 7
没思路啊- - time.sleep到哪..
2018年08月12日 13点08分
@likili time.sleep(延长的秒数) 如果想多变几次的话迭代就行了
2018年08月12日 13点08分
@叫我彩笔就好☜ 首先谢答. 那还是需要一个按钮来启动啊. 我现在想找到,不用按钮,让这个函数自动运行成功的方法. 也就是说 打开程序后,不做任何操作 背景色自动变.
2018年08月12日 13点08分
@叫我彩笔就好☜ 我不设置按钮, 而直接运行这个方法函数的话. 画面没有任何改变.
2018年08月12日 13点08分
1