最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python 實現GUI(圖形用戶界面)編程詳解

 更新時間:2019年07月17日 10:15:59   作者:peersli  
今天小編就為大家分享一篇python 實現GUI(圖形用戶界面)編程詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

Python支持多種圖形界面的第三方庫,包括:

wxWidgets

Qt

GTK

Tkinter: Tkinter 模塊(Tk 接口)是 Python 的標準 Tk GUI 工具包的接口 .Tk 和 Tkinter 可以在大多數的 Unix 平臺下使用,同樣可以應用在 Windows 和 Macintosh 系統(tǒng)里。Tk8.0 的后續(xù)版本可以實現本地窗口風格,并良好地運行在絕大多數平臺中。

wxPython:wxPython 是一款開源軟件,是 Python 語言的一套優(yōu)秀的 GUI 圖形庫,允許 Python 程序員很方便的創(chuàng)建完整的、功能鍵全的 GUI 用戶界面。

Jython:Jython 程序可以和 Java 無縫集成。除了一些標準模塊,Jython 使用 Java 的模塊。Jython 幾乎擁有標準的Python 中不依賴于 C 語言的全部模塊。比如,Jython 的用戶界面將使用 Swing,AWT或者 SWT。Jython 可以被動態(tài)或靜態(tài)地編譯成 Java 字節(jié)碼。

Tkinter

我們來梳理一下概念:

我們編寫的Python代碼會調用內置的Tkinter,Tkinter封裝了訪問Tk的接口;

Tk是一個圖形庫,支持多個操作系統(tǒng),使用Tcl語言開發(fā);

Tk會調用操作系統(tǒng)提供的本地GUI接口,完成最終的GUI。

所以,我們的代碼只需要調用Tkinter提供的接口就可以了。

在GUI中,每個Button、Label、輸入框等,都是一個Widget。Frame則是可以容納其他Widget的Widget,所有的Widget組合起來就是一棵樹。

pack()方法把Widget加入到父容器中,并實現布局。pack()是最簡單的布局,grid()可以實現更復雜的布局。

Tkinter

創(chuàng)建一個GUI程序

1、導入 Tkinter 模塊

2、創(chuàng)建控件

3、指定這個控件的 master, 即這個控件屬于哪一個

4、告訴 GM(geometry manager) 有一個控件產生了。

實例:

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import Tkinter
top = Tkinter.Tk()
# 進入消息循環(huán)
top.mainloop()

組件

Tkinter的提供各種控件,如按鈕,標簽和文本框,一個GUI應用程序中使用。這些控件通常被稱為控件或者部件。

目前有15種Tkinter的部件。我們提出這些部件以及一個簡短的介紹,在下面的表:

控件 描述
Button 按鈕控件;在程序中顯示按鈕。
Canvas 畫布控件;顯示圖形元素如線條或文本
Checkbutton 多選框控件;用于在程序中提供多項選擇框
Entry 輸入控件;用于顯示簡單的文本內容
Frame 框架控件;在屏幕上顯示一個矩形區(qū)域,多用來作為容器 *****************************
Label 標簽控件;可以顯示文本和位圖
Listbox 列表框控件;在Listbox窗口小部件是用來顯示一個字符串列表給用戶
Menubutton 菜單按鈕控件,由于顯示菜單項。
Menu 菜單控件;顯示菜單欄,下拉菜單和彈出菜單
Message 消息控件;用來顯示多行文本,與label比較類似
Radiobutton 單選按鈕控件;顯示一個單選的按鈕狀態(tài)
Scale 范圍控件;顯示一個數值刻度,為輸出限定范圍的數字區(qū)間
Scrollbar 滾動條控件,當內容超過可視化區(qū)域時使用,如列表框。.
Text 文本控件;用于顯示多行文本
Toplevel 容器控件;用來提供一個單獨的對話框,和Frame比較類似
Spinbox 輸入控件;與Entry類似,但是可以指定輸入范圍值
PanedWindow PanedWindow是一個窗口布局管理的插件,可以包含一個或者多個子控件。
LabelFrame labelframe 是一個簡單的容器控件。常用與復雜的窗口布局。
tkMessageBox 用于顯示你應用程序的消息框。

標準屬性

標準屬性也就是所有控件的共同屬性,如大小,字體和顏色等等。

屬性 描述
Dimension 控件大?。?/td>
Color 控件顏色;
Font 控件字體;
Anchor 錨點;
Relief 控件樣式;
Bitmap 位圖;
Cursor 光標;

幾何管理

Tkinter控件有特定的幾何狀態(tài)管理方法,管理整個控件區(qū)域組織,一下是Tkinter公開的幾何管理類:包、網格、位置

幾何方法 描述
pack() 包裝;
grid() 網格;
place() 位置;
#!/usr/bin/env python

import os
from time import sleep
from Tkinter import *

class DirList(object):
  def __init__(self, initdir=None):
    self.top = Tk()
    self.label = Label(self.top,
      text='Directory Lister v1.2')
    self.label.pack()

    self.cwd=StringVar(self.top)

    self.dirl = Label(self.top, fg='blue',
      font=('Helvetica', 12, 'bold'))
    self.dirl.pack()

    self.dirfm = Frame(self.top)
    self.dirsb = Scrollbar(self.dirfm)
    self.dirsb.pack(side=RIGHT, fill=Y)
    self.dirs = Listbox(self.dirfm, height=15,
      width=50, yscrollcommand=self.dirsb.set)
    self.dirs.bind('<Double-1>', self.setdirandgo)
    self.dirsb.config(command=self.dirs.yview)
    self.dirs.pack(side=LEFT, fill=BOTH)
    self.dirfm.pack()

    self.dirn = Entry(self.top, width=50,
      textvariable=self.cwd)
    self.dirn.bind('<Return>', self.dols)
    self.dirn.pack()

    self.bfm = Frame(self.top)
    self.clr = Button(self.bfm, text='Clear',
      command=self.clrdir,
      activeforeground='white',
      activebackground='blue')
    self.ls = Button(self.bfm,
      text='List Directory',
      command=self.dols,
      activeforeground='white',
      activebackground='green')
    self.quit = Button(self.bfm, text='Quit',
      command=self.top.quit,
      activeforeground='white',
      activebackground='red')
    self.clr.pack(side=LEFT)
    self.ls.pack(side=LEFT)
    self.quit.pack(side=LEFT)
    self.bfm.pack()

    if initdir:
      self.cwd.set(os.curdir)
      self.dols()

  def clrdir(self, ev=None):
    self.cwd.set('')

  def setdirandgo(self, ev=None):
    self.last = self.cwd.get()
    self.dirs.config(selectbackground='red')
    check = self.dirs.get(self.dirs.curselection())
    if not check:
      check = os.curdir
    self.cwd.set(check)
    self.dols()

  def dols(self, ev=None):
    error = ''
    tdir = self.cwd.get()
    if not tdir:
      tdir = os.curdir

    if not os.path.exists(tdir):
      error = tdir + ': no such file'
    elif not os.path.isdir(tdir):
      error = tdir + ': not a directory'

    if error:
      self.cwd.set(error)
      self.top.update()
      sleep(2)
      if not (hasattr(self, 'last') \
        and self.last):
          self.last = os.curdir
      self.cwd.set(self.last)
      self.dirs.config(
        selectbackground='LightSkyBlue')
      self.top.update()
      return

    self.cwd.set(
      'FETCHING DIRECTORY CONTENTS...')
    self.top.update()
    dirlist = os.listdir(tdir)
    dirlist.sort()
    os.chdir(tdir)
    self.dirl.config(text=os.getcwd())
    self.dirs.delete(0, END)
    self.dirs.insert(END, os.curdir)
    self.dirs.insert(END, os.pardir)
    for eachFile in dirlist:
      self.dirs.insert(END, eachFile)
    self.cwd.set(os.curdir)
    self.dirs.config(
      selectbackground='LightSkyBlue')

def main():
  d = DirList(os.curdir)
  mainloop()

if __name__ == '__main__':
  main()

以上這篇python 實現GUI(圖形用戶界面)編程詳解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • 給Python學習者的文件讀寫指南(含基礎與進階)

    給Python學習者的文件讀寫指南(含基礎與進階)

    今天,貓貓跟大家一起,好好學習Python文件讀寫的內容,這部分內容特別常用,掌握后對工作和實戰(zhàn)都大有益處,學習是循序漸進的過程,欲速則不達
    2020-01-01
  • 詳解如何用OpenCV + Python 實現人臉識別

    詳解如何用OpenCV + Python 實現人臉識別

    這篇文章主要介紹了詳解如何用OpenCV + Python 實現人臉識別,非常具有實用價值,需要的朋友可以參考下
    2017-10-10
  • Python?不設計?do-while?循環(huán)結構的理由

    Python?不設計?do-while?循環(huán)結構的理由

    Python作為一種語言不支持do-while循環(huán)。?但是,我們可以采用一種變通方法來模擬do-while循環(huán)?。下面通過本文給大家分享下Python?不設計do-while?循環(huán)結構的理由,需要的朋友可以參考下
    2022-01-01
  • 利用Python爬蟲實現搶購某寶秒殺商品

    利用Python爬蟲實現搶購某寶秒殺商品

    這篇文章主要介紹了利用Python爬蟲實現搶購某寶秒殺商品,文章基于python的相關資料展開詳細的內容介紹具有一定的參考價值,需要的小伙伴可以參考一下
    2022-06-06
  • Python3.5面向對象程序設計之類的繼承和多態(tài)詳解

    Python3.5面向對象程序設計之類的繼承和多態(tài)詳解

    這篇文章主要介紹了Python3.5面向對象程序設計之類的繼承和多態(tài),結合實例形式詳細分析了Python3.5面向對象程序設計中類的繼承與多態(tài)常見用法及相關注意事項,需要的朋友可以參考下
    2019-04-04
  • Python WEB應用部署的實現方法

    Python WEB應用部署的實現方法

    這篇文章主要介紹了Python WEB應用部署的實現方法,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • python實現圖片識別汽車功能

    python實現圖片識別汽車功能

    這篇文章主要為大家詳細介紹了python實現圖片識別汽車功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-11-11
  • python生成帶有表格的圖片實例

    python生成帶有表格的圖片實例

    今天小編就為大家分享一篇python生成帶有表格的圖片實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-02-02
  • 基于Pydantic封裝的通用模型在API請求驗證中的應用詳解

    基于Pydantic封裝的通用模型在API請求驗證中的應用詳解

    這篇文章主要介紹了基于Pydantic封裝的通用模型在API請求驗證中的應用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步早日升職加薪
    2023-05-05
  • Python中五種列表拷貝的方法

    Python中五種列表拷貝的方法

    這篇文章主要介紹了Python中五種列表拷貝的方法,在Python中,我們經常會遇到需要拷貝列表的情形,下面針對常用的列表拷貝方法進行介紹和總結,希望可以給大家?guī)砀喔行缘恼J識
    2022-02-02

最新評論

铜陵市| 剑河县| 湛江市| 曲周县| 镇赉县| 大宁县| 房山区| 洪泽县| 南通市| 吉安县| 巴中市| 博爱县| 沅陵县| 逊克县| 昭苏县| 绵竹市| 辽源市| 台湾省| 乌恰县| 修武县| 阿荣旗| 元阳县| 巫溪县| 新沂市| 左贡县| 通许县| 广河县| 滨州市| 吉木乃县| 阜城县| 乐山市| 寻乌县| 甘肃省| 望谟县| 台北县| 盱眙县| 岳阳县| 金秀| 泰州市| 万源市| 定日县|