python界面开发

来源:互联网 发布:bigapp源码 编辑:程序博客网 时间:2024/05/18 18:46

python GUI界面开发

大体代码框架

class Application(Frame):    def __init__(self,master=None):        Frame.__init__(self,master)        self.pack()        self.createWidgets()    def createWidgets(self):        self.helloLabel = Label(self, text='Hello,world')        self.helloLabel.pack()        self.apktoolButton = Button(self,text='反编译apk',command=self.deBuildApk)        self.apktoolButton.pack()        self.quitButton = Button(self, text='Quit',command=self.quit)        self.quitButton.pack()if __name__ == '__main__':    app = Application()    #设置窗口标题    app.master.title('hello wolrd')    #主消息循环    app.mainloop()

label文字动态修改

label或者button没有setText或者set这样的函数。

不过可以直接使用赋值的方法来修改

label=Enter(root,text=”My name is rocky”)

label[“text”]=”My name is Ben”

验证过,可以动态修改label上的文本。

utf-8编码

#coding=utf-8   //这句是使用utf8编码方式方法, 可以单独加入python头使用。# -*- coding:cp936 -*-import sysreload(sys)sys.setdefaultencoding('utf-8')

python机器学习算法库:sklearn

安装sklearn

1.安装sklearn之前,我们需要先安装numpy,scipy函数库。
Numpy下载地址:
http://sourceforge.net/projects/numpy/files/NumPy
Scipy下载地址:
http://sourceforge.net/projects/scipy/files/Scipy
下载对应本机的Python版本。
2、安装sklearn机器学习库
下载地址:
https://github.com/scikit-learn/scikit-learn
下载压缩包之后,解该压缩包压缩。使用CMD进入sklearn文件夹,执行

python setup.py install

sklearn使用

训练svm分类器,根据分类器模型进行分类

class classify:    def __init__(self):        self.model = svm.SVC()    """    data:    X = [[0, 0], [1, 1], [1, 0]]  # training samples    y = [0, 1, 1]  # training target    """    def createModel(self,samples,target):        self.model.fit(samples,target)    def predictSample(self,sample):        return self.model.predict(sample)

sklearn中提供了高效的模型持久化模块joblib,将模型保存至硬盘。

from sklearn.externals import joblib#lr是一个LogisticRegression模型joblib.dump(lr, 'lr.model')lr = joblib.load('lr.model')

tk相关模块

http://www.jianshu.com/p/e88ba6c5f65e

Python 3.4 tk支持库描述

tkinter.scrolledtext    Text widget with a vertical scroll bar built in.tkinter.colorchooser    Dialog to let the user choose a color.tkinter.commondialog    Base class for the dialogs defined in the other modules listed here.tkinter.filedialog    Common dialogs to allow the user to specify a file to open or save.tkinter.font    Utilities to help work with fonts.tkinter.messagebox    Access to standard Tk dialog boxes.tkinter.simpledialog    Basic dialogs and convenience functions.tkinter.dnd    Drag-and-drop support for tkinter. turtle    Turtle graphics in a Tk window.

python2.7 tk支持库描述的描述

ScrolledText    Text widget with a vertical scroll bar built in.tkColorChooser    Dialog to let the user choose a color.tkCommonDialog    Base class for the dialogs defined in the other modules listed here.tkFileDialog    Common dialogs to allow the user to specify a file to open or save.tkFont    Utilities to help work with fonts.tkMessageBox    Access to standard Tk dialog boxes.tkSimpleDialog    Basic dialogs and convenience functions.Tkdnd    Drag-and-drop support for Tkinter. turtle    Turtle graphics in a Tk window.

text文本框:支持滚动条

    #-*- coding:utf-8 -*-      """     Text    文本框样例     实现功能有:Ctrl+a全选文本, 竖向滚动条,横向滚动条(不自动换行) 自动缩放     有谁知道全选文本的方法为会要 return 'break' 吗?     http://blog.csdn.net/xxb2008     """      import Tkinter      class MainFrame(Tkinter.Frame):          def __init__(self, master=None):              Tkinter.Frame.__init__(self, master)              self.grid(row=0, column=0, sticky="nsew")              self.createFrame()          def createFrame(self):              label_frame_top = Tkinter.LabelFrame(self)              #label_frame_top.pack()              label_frame_center = Tkinter.LabelFrame(self)              label_frame_center.pack(fill="x")              lfc_field_1 = Tkinter.LabelFrame(label_frame_center)              lfc_field_1.pack(fill="x")              self.lfc_field_1_l = Tkinter.Label(lfc_field_1, text="文件路径:", width=10)              self.lfc_field_1_l.pack(fill="y", expand=0, side=Tkinter.LEFT)              self.lfc_field_1_b = Tkinter.Button(lfc_field_1, text="清除:", width=10, height=1, command=self.clearText)              self.lfc_field_1_b.pack(fill="none", expand=0, side=Tkinter.RIGHT, anchor=Tkinter.SE)              ##########文本框与滚动条              self.lfc_field_1_t_sv = Tkinter.Scrollbar(lfc_field_1, orient=Tkinter.VERTICAL)  #文本框-竖向滚动条              self.lfc_field_1_t_sh = Tkinter.Scrollbar(lfc_field_1, orient=Tkinter.HORIZONTAL)  #文本框-横向滚动条              self.lfc_field_1_t = Tkinter.Text(lfc_field_1, height=15, yscrollcommand=self.lfc_field_1_t_sv.set,                                                xscrollcommand=self.lfc_field_1_t_sh.set, wrap='none')  #设置滚动条-不换行              #滚动事件              self.lfc_field_1_t_sv.config(command=self.lfc_field_1_t.yview)              self.lfc_field_1_t_sh.config(command=self.lfc_field_1_t.xview)              #布局              self.lfc_field_1_t_sv.pack(fill="y", expand=0, side=Tkinter.RIGHT, anchor=Tkinter.N)              self.lfc_field_1_t_sh.pack(fill="x", expand=0, side=Tkinter.BOTTOM, anchor=Tkinter.N)              self.lfc_field_1_t.pack(fill="x", expand=1, side=Tkinter.LEFT)              #绑定事件              self.lfc_field_1_t.bind("", self.selectText)              self.lfc_field_1_t.bind("", self.selectText)              ##########文本框与滚动条end              label_frame_bottom = Tkinter.LabelFrame(self)              #label_frame_bottom.pack()              pass          #文本全选          def selectText(self, event):              self.lfc_field_1_t.tag_add(Tkinter.SEL, "1.0", Tkinter.END)              #self.lfc_field_1_t.mark_set(Tkinter.INSERT, "1.0")              #self.lfc_field_1_t.see(Tkinter.INSERT)              return 'break'  #为什么要return 'break'          #文本清空          def clearText(self):              self.lfc_field_1_t.delete(0.0, Tkinter.END)      def main():          root = Tkinter.Tk()          root.columnconfigure(0, weight=1)          root.rowconfigure(0, weight=1)          root.geometry('640x360')  #设置了主窗口的初始大小960x540 800x450 640x360          main_frame = MainFrame(root)          main_frame.mainloop()      if __name__ == "__main__":          main()          pass  

Tkinter 组件

Tkinter的提供各种控件,如按钮,标签和文本框,一个GUI应用程序中使用。这些控件通常被称为控件或者部件。

目前有15种Tkinter的部件。我们提出这些部件以及一个简短的介绍,在下面的表:

    控件              描述    Button          按钮控件;在程序中显示按钮。    Canvas          画布控件;显示图形元素如线条或文本    Checkbutton     多选框控件;用于在程序中提供多项选择框    Entry           输入控件;用于显示简单的文本内容    Frame           框架控件;在屏幕上显示一个矩形区域,多用来作为容器    Label           标签控件;可以显示文本和位图    Listbox         列表框控件;在Listbox窗口小部件是用来显示一个字符串列表给用户    Menubutton      菜单按钮控件,由于显示菜单项。    Menu            菜单控件;显示菜单栏,下拉菜单和弹出菜单    Message         消息控件;用来显示多行文本,与label比较类似    Radiobutton     单选按钮控件;显示一个单选的按钮状态    Scale           范围控件;显示一个数值刻度,为输出限定范围的数字区间    Scrollbar       滚动条控件,当内容超过可视化区域时使用,如列表框。.    Text            文本控件;用于显示多行文本    Toplevel        容器控件;用来提供一个单独的对话框,和Frame比较类似    Spinbox         输入控件;与Entry类似,但是可以指定输入范围值    PanedWindow     PanedWindow是一个窗口布局管理的插件,可以包含一个或者多个子控件。    LabelFrame      labelframe 是一个简单的容器控件。常用与复杂的窗口布局。    tkMessageBox        用于显示你应用程序的消息框。

标准属性

标准属性也就是所有控件的共同属性,如大小,字体和颜色等等。

    属性          描述    Dimension       控件大小;    Color           控件颜色;    Font            控件字体;    Anchor          锚点;    Relief          控件样式;    Bitmap          位图;    Cursor          光标;

设置text属性

不可编辑

    CONFIG.TEXT.bind("",lambda e: "break")

删除内容

    CONFIG.TEXT.delete(1.0,END)  

设置颜色

    CONFIG.TEXT['fg'] = 'black'  

插入内容

    CONFIG.TEXT.insert(ABOUT_MESSAGE)  

text保存

#直接保存with open (os.getcwd()+r'log.txt','w+') as fb:            fb.write(CONFIG.TEXT.get(0.0,'end'))#交互式保存r = filedialog.asksaveasfilename(title='保存文件', initialdir=os.getcwd(), initialfile='myLog.txt')
阅读全文
0 0
原创粉丝点击