Python的图形化模块Tkinter的一些用法

#-*- encoding=UTF-8 -*-

from Tkinter import *
from ttk import *
import os  


def get_sub_path(path):
    if os.path.isdir(path):
        for sub_path in os.listdir(path):
            get_sub_path(path+'\\'+sub_path)
    else:
        if os.path.splitext(path)[1].find('java')>0:
            count_line(path)

def count_line(path):
    count_p=0
    global count
    with open(path,'r')as f:
        while f.readline():
            count_p+=1;
    temp_path=os.path.split(path)[1]
    temp=temp_path+' 共 '+str(count_p)+' 行\r\n'
    app.text.insert(1.0,temp)
    print path,'共',count_p,'行'
    count+=count_p

class App:
    def __init__(self, master):
        #构造函数里传入一个父组件(master),创建一个Frame组件并显示
        frame = Frame(master)
        frame.pack()
        #创建两个button,并作为frame的一部分
        
        self.path=Entry(frame)
        self.path['width']=80
        self.path.pack()
        self.count = Button(frame, text="统计", command=self.count)
        self.count.pack()
        self.text_scroll_y = Scrollbar(frame, orient=VERTICAL)  #文本框-竖向滚动条
        self.text =Text(frame, yscrollcommand=self.text_scroll_y.set,wrap='none')
        self.text_scroll_y.config(command=self.text.yview) 
        self.text_scroll_y.pack(fill="y", expand=0, side=RIGHT, anchor=N)

        self.text.pack()
  
        global val
        self.label=Label(frame,textvariable=var)
        
        self.label.pack()
    def count(self):
        global var
        get_sub_path(self.path.get())
        var.set('该文件下共有:'+str(count)+'行')
        
        

win = Tk()
win.title('代码行数计数器')    #定义窗体标题
win.geometry('600x400')     #定义窗体的大小,是400X200像素
var=StringVar()
app = App(win)

count=0;
win.mainloop()

这是一个统计项目中代码行数的小工具

1:get_sub_path是递归查找文件下的所以子文件。

2:count_line 是对文件进行行数统计

3:引入Tkinter包,之后可以使用Python中带的一些图形化控件

4:Entry是文本输入控件

5:获取Entry值的方法为get()

6:text是文本框,scrollbar为滚动条

7:设置text加垂直滚动条的步骤要先设置滚动事件config,再设置布局。

8:设置label值的方法为

var=StringVar()
label=Label(frame,textvariable=var)
var.set('hello,world!')

 9:引入ttk模块之后可以使显示的效果更像windows的风格

运行效果如下:


Python的图形化模块Tkinter的一些用法_第1张图片
 

你可能感兴趣的:(Python的图形化模块Tkinter的一些用法)