python介面開發

來源:互聯網
上載者:User
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 sys reload(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')
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.