圖庫--import Tkinter

--********************************************************************************************************************************

--import------import Tkinter 模塊---圖庫----------------------------------------------------------------------------

--********************************************************************************************************************************

--圖1-------------import------import Tkinter 模塊-------------Python GUI編程--------tkinter 佈局---------------------------------------------------------

Tkinter 編程

Tkinter 是 Python 的標準 GUI 庫。Python 使用 Tkinter 可以快速的創建 GUI 應用程序。

由於 Tkinter 是內置到 python 的安裝包中、只要安裝好 Python 之後就能 import Tkinter 庫、而且 IDLE 也是用 Tkinter 編寫而成、對於簡單的圖形界面 Tkinter 還是能應付自如。

注意:  Python3.x 版本使用的庫名爲 tkinter,即首寫字母 T 爲小寫。

import tkinter

創建一個GUI程序

1、導入 Tkinter 模塊

2、創建控件

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

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

實例:

#!/usr/bin/python

# -*- coding: UTF-8 -*-

import Tkinter

top = Tkinter.Tk()

# 進入消息循環

top.mainloop()

以上代碼執行結果如下圖:

tkwindow

實例2:

#!/usr/bin/python

# -*- coding: UTF-8 -*-

from Tkinter import *           # 導入 Tkinter 庫

root = Tk()                     # 創建窗口對象的背景色

                                # 創建兩個列表

li     = ['C','python','php','html','SQL','java']

movie  = ['CSS','jQuery','Bootstrap']

listb  = Listbox(root)          #  創建兩個列表組件

listb2 = Listbox(root)

for item in li:                 # 第一個小部件插入數據

    listb.insert(0,item)

for item in movie:              # 第二個小部件插入數據

    listb2.insert(0,item)

listb.pack()                    # 將小部件放置到主窗口中

listb2.pack()

root.mainloop()                 # 進入消息循環

以上代碼執行結果如下圖:

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 光標;

幾何管理

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

幾何方法 描述

pack() 包裝;

grid() 網格;

place() 位置;

--python的tkinter佈局之簡單的聊天窗口實現方法

這篇文章主要介紹了python的tkinter佈局之簡單的聊天窗口實現方法,對於tkinter用法做了初步的介紹與應用展示,需要的朋友可以參考下

本文實例展示了一個python的tkinter佈局的簡單聊天窗口。分享給大家供大家參考之用。具體方法如下:

該實例展示的是一個簡單的聊天窗口,可以實現下方輸入聊天內容,點擊發送,可以增加到上方聊天記錄列表中。現在只是“單機”版。

右側預留了空位可以放點兒其它東西。感興趣的讀者可以進一步做成socket雙方互聊。

以下是功能代碼部分:

from Tkinter import *

import datetime

import time

root = Tk()

root.title(unicode('與xxx聊天中','eucgb2312_cn'))

#發送按鈕事件

def sendmessage():

  #在聊天內容上方加一行 顯示發送人及發送時間

  msgcontent = unicode('我:','eucgb2312_cn') + time.strftime("%Y-%m-%d %H:%M:%S",time.localtime()) + '\n '

  text_msglist.insert(END, msgcontent, 'green')

  text_msglist.insert(END, text_msg.get('0.0', END))

  text_msg.delete('0.0', END)

#創建幾個frame作爲容器

frame_left_top   = Frame(width=380, height=270, bg='white')

frame_left_center  = Frame(width=380, height=100, bg='white')

frame_left_bottom  = Frame(width=380, height=20)

frame_right     = Frame(width=170, height=400, bg='white')

##創建需要的幾個元素

text_msglist    = Text(frame_left_top)

text_msg      = Text(frame_left_center);

button_sendmsg   = Button(frame_left_bottom, text=unicode('發送','eucgb2312_cn'), command=sendmessage)

#創建一個綠色的tag

text_msglist.tag_config('green', foreground='#008B00')

#使用grid設置各個容器位置

frame_left_top.grid(row=0, column=0, padx=2, pady=5)

frame_left_center.grid(row=1, column=0, padx=2, pady=5)

frame_left_bottom.grid(row=2, column=0)

frame_right.grid(row=0, column=1, rowspan=3, padx=4, pady=5)

frame_left_top.grid_propagate(0)

frame_left_center.grid_propagate(0)

frame_left_bottom.grid_propagate(0)

#把元素填充進frame

text_msglist.grid()

text_msg.grid()

button_sendmsg.grid(sticky=E)

#主事件循環

root.mainloop()

以下是運行截圖:

希望本文所述對大家的Python程序設計有所幫助

--Python Tkinter簡單佈局實例教程

這篇文章主要介紹了Python Tkinter簡單佈局實例教程,包括了填充、左右佈局、絕對佈局、網格佈局等,需要的朋友可以參考下

本文實例展示了Python Tkinter實現簡單佈局的方法,示例中備有較爲詳盡的註釋,便於讀者理解。分享給大家供大家參考之用。具體如下:

# -*- coding: utf-8 -*-

from Tkinter import *

root = Tk()

# 80x80代表了初始化時主窗口的大小,0,0代表了初始化時窗口所在的位置

root.geometry('80x80+10+10')

# 填充方向

'''

Label(root, text = 'l1', bg = 'red').pack(fill = Y)

Label(root, text = 'l2', bg = 'green').pack(fill = BOTH)

Label(root, text = 'l3', bg = 'blue').pack(fill = X)

# 左右佈局

Label(root, text = 'l1', bg = 'red').pack(fill = Y, side = LEFT)

Label(root, text = 'l2', bg = 'green').pack(fill = BOTH, side = RIGHT)

Label(root, text = 'l3', bg = 'blue').pack(fill = X, side = LEFT)

# 絕對佈局

l4 = Label(root, text = 'l4')

l4.place(x = 3, y = 3, anchor = NW)

'''

# Grid 網格佈局

l1 = Label(root, text = 'l1', bg = 'red')

l2 = Label(root, text = 'l2', bg = 'blue')

l3 = Label(root, text = 'l3', bg = 'green')

l4 = Label(root, text = 'l4', bg = 'yellow')

l5 = Label(root, text = 'l5', bg = 'purple')

l1.grid(row = 0, column = 0)

l2.grid(row = 1, column = 0)

l3.grid(row = 1, column = 1)

l4.grid(row = 2 )

l5.grid(row = 0, column = 3)

root.mainloop()

Grid 網格佈局運行效果如下圖所示:

感興趣的讀者可以測試一下本文實例運行效果,相信對大家的Python程序設計有一定的借鑑價值。

--Python模塊結構與佈局操作方法實例分析

這篇文章主要介紹了Python模塊結構與佈局操作方法,結合實例形式分析了Python模塊與佈局的相關概念、使用方法與相關注意事項,需要的朋友可以參考下

本文實例講述了Python模塊結構與佈局操作方法。分享給大家供大家參考,具體如下:

#coding=utf8

#起始行

#!/usr/bin/env python

#模塊文檔

'''''

合理的Module佈局:

(1) 起始行(Unix)    通常只有在類Unix環境下才使用起始行,有起始行可以輸入腳本名來執行腳本。

(2) 模塊文檔        簡要介紹模塊功能及重要全局變量的含義,模塊外可以通過module.__doc__訪問這些內容。

(3) 模塊導入        導入當前模塊的代碼需要的所有模塊;每個模塊僅導入一次;    函數內部的模塊導入代碼不會被執行,除非該函數正在執行。

(4) 變量定義        這裏定義的變量爲全局變量,本模塊中的所有函數都可以直接使用。    儘量使用局部變量代替全局變量,這樣不但容易維護,還可以提高性能並節省內存。

(5) 類定義          所有的類需要在這裏定義。當模塊被導入時class語句會被執行,類也會被定義。       類的文檔變量是class.__doc__

(6) 函數定義        此處定義的函數可以通過module.function()在外部被訪問到,當模塊被導入時def語句會被執行,     函數也就會定義好,函數的文檔變量是function.__doc__

(7) 主程序          無論這個模塊使被別的模塊導入還是作爲腳本直接執行,都會執行這部分代碼。       通常這裏不會有太多功能性代碼,而是根據執行的模式調用不同的函數。

'''

#導入模塊

import sys

import time

from scrapy.utils import job

#定義變量

flag=1

#類定影

class Person(object):

  '''''

  Person class

  set person name、sex、age、job

  output the person information

  '''

  def __init__(self):

    self.name=''

    self.sex=''

    self.age=18

    self.job=''

  def setName(self,name):

    self.name=name

  def setSex(self,sex):

    self.sex=sex

  def setAge(self,age):

    self.age=age

  def setJob(self,job):

    self.job=job

  def outPut(self):

    print '''''

    name:%s

    sex:%s

    age:%d

    job:%s

    ''' %(self.name,self.sex,self.age,self.job)

#函數定義

def test():

  '''''

  test function

  '''

  if flag:

    print '''''

    run test()

    '''

    person=Person()

    person.setName("ewang")

    person.setAge(25)

    person.setSex("famale")

    person.setJob("big data testing")

    person.outPut()

#主程序

#如果模塊使被導入,__name__的值爲模塊名字

#如果模塊使被直接執行,__name__的值爲'__main__'

if __name__=='__main__':

  test()


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章