導航:首頁 > 編程語言 > pythontkinter列表

pythontkinter列表

發布時間:2022-05-01 15:18:47

1. python Tkinter庫之OptionMenu控制項問題

'''Tkinter教程之OptionMenu篇'''
#OptionMenu為可選菜單,與Combox功能類似。
'''1.創建OptionMenu'''
# -*- coding: cp936 -*-
from Tkinter import *
root = Tk()
v = StringVar(root)
v.set('Python')
om = OptionMenu(root,v,'Python','PHP','CPP','C','Java','JavaScript','VBScript')
om.pack()

root.mainloop()
#顯示的文本自動斷行,上下行分別使用了左對齊,右對齊和居中對齊
# -*- coding: cp936 -*-
from Tkinter import *
root = Tk()
v = StringVar(root)
#創建一個OptionMenu控制項
om = OptionMenu(root,
v,
'Python',
'PHP',
'CPP',
'C',
'Java',
'JavaScript',
'VBScript'
)
om.pack()

root.mainloop()
#OptionMenu的創建需要兩個必要的參數,與當前值綁定的變數,通常為一StringVar類型;另一
#個是提供可選的內容列表,由OptionMenu的變參數指定。

'''2.設置OptionMenu的顯示值'''
#當OptionMenu與變數綁定後,直接使用變數賦值的方法即可改變當前的值
# -*- coding: cp936 -*-
from Tkinter import *
root = Tk()
v = StringVar(root)
v.set('VBScript')
#創建一個OptionMenu控制項
om = OptionMenu(root,
v,
'Python',
'PHP',
'CPP',
'C',
'Java',
'JavaScript',
'VBScript'
)
om.pack()
print v.get()

root.mainloop()
#運行程序,OptionMenu默認值為"VBScript",列印出的數值也為"VBScript"
#如果設置的值不包含在當前的列表中,會是什麼結果?如下的代碼使用"Tkinter"來測試
# -*- coding: cp936 -*-
from Tkinter import *
root = Tk()
v = StringVar(root)
v.set('Tkinter')
#創建一個OptionMenu控制項
om = OptionMenu(root,
v,
'Python',
'PHP',
'CPP',
'C',
'Java',
'JavaScript',
'VBScript'
)
om.pack()
print v.get()

root.mainloop()
#程序依舊是默認值改變為Tkinter,列印結果也變為Tkinter,但Tkinter不會添加到OptionMenu的列表中,也就是說,當選擇其它的選項時,Tkinter的值會丟失。
'''3.列印OptionMenu的值'''
# -*- coding: cp936 -*-
from Tkinter import *
root = Tk()
v = StringVar(root)
v.set('Tkinter')
def printOption(event):
print v.get()
#創建一個OptionMenu控制項
om = OptionMenu(root,
v,
'Python',
'PHP',
'CPP',
'C',
'Java',
'JavaScript',
'VBScript'
)
om.bind('<Button-1>',printOption)
om.pack()

root.mainloop()
#每次點擊OptionMenu程序列印出上次選中的項值
'''使用list作為OptionMenu的選項'''
# -*- coding: cp936 -*-
from Tkinter import *
root = Tk()
Lang = ['Python','PHP','CPP','C','Java','JavaScript','VBScript']
v = StringVar(root)
v.set('Tkinter')
def printOption(event):
print v.get()
#創建一個OptionMenu控制項,使用了apply函數
om = apply(OptionMenu,(root,v) + tuple(Lang))
om.bind('<Button-1>',printOption)
om.pack()

root.mainloop() =================================================================='''Tkinter教程之Grid篇'''
# Tkinter參考中最推薦使用的一個布局器。實現機制是將Widget邏輯上分割成表格,在指定的位置放置想要的Widget就可以了。
'''1.第一個Grid例子'''
# -*- coding: cp936 -*-
# 使用grid來布局組件
from Tkinter import *
root = Tk()
# 創建兩個Label
lb1 = Label(root,text = 'Hello')
lb2 = Label(root,text = 'Grid')

lb1.grid()
lb2.grid()

root.mainloop()
# grid有兩個最為重要的參數,用來指定將組件放置到什麼位置,一個是row,另一個是column。如果不指定row,會將組件放置到第一個可用的行上,如果不指定column,則使用第一列。
'''2.使用row和column來指定位置'''
# -*- coding: cp936 -*-
# 使用grid來布局組件
from Tkinter import *
root = Tk()
# 創建兩個Label
lb1 = Label(root,text = 'Hello')
lb2 = Label(root,text = 'Grid')

lb1.grid()
# 指定lb2為第一行(使用索引0開始),第二列(使用索引0開始)
lb2.grid(row = 0,column = 1)

root.mainloop()
# grid有兩個最為重要的參數,用來指定將組件放置到什麼位置,一個是row,另一個是column。如果不指定row,會將組件放置到第一個可用的行上,如果不指定column,則使用第一列。注意這里使用grid時不需要創建,直接使用行列就可以。
'''3.為其它組件預定位置'''
# 可以使用row/column來指定組件的放置位置,並預先留出空間,以務其它需要。
# -*- coding: cp936 -*-
# 使用grid來布局組件
from Tkinter import *
root = Tk()
# 創建兩個Label
Label(root,text = 'Hello').pack()
# 在第一行,第10列放置lb2
Label(root,text = 'Grid').grid(row = 0,column = 10)
# Lable(root,text = '3').grid(row = 0,column = 5)
root.mainloop()
# 這個例子中將lb2放置到第1行,第11列位置上,但運行結果與上一例從效果上看不出太大的區別。原因是:如果這個位置沒有組件的話,它是看不可見的。
'''4.將組件放置到預定位置上去'''
# -*- coding: cp936 -*-
# 使用grid來布局組件
from Tkinter import *
root = Tk()
# 創建兩個Label
Label(root,text = '1').grid()
# 在第1行,第11列放置lb2
Label(root,text = '2').grid(row = 0,column = 10)
Label(root,text = '3').grid(row = 0,column = 5)
root.mainloop()
# 可以看到Label('3')是位置Label('1')和Label('2')之間了,即Label('2')是在11列,Label('3')位於第3列
'''5.將兩個或多個組件同一個位置'''
# -*- coding: cp936 -*-
# 多個組件同時grid到同一個表格位置
from Tkinter import *
root = Tk()
# 創建兩個Label
lb1 = Label(root,text = '1')
lb2 = Label(root,text = '2')

# 將lb1和lb2均grid到(0,0)位置
lb1.grid(row = 0,column = 0)
lb2.grid(row = 0,column = 0)

def forgetLabel():
# grid_slaves返回grid中(0,0)位置的所有組件
# grid_forget將這個組件從grid中移除(並未刪除,可以使用grid再將它顯示出來)
print root.grid_slaves(0,0)[0].grid_forget()

# 我測試時grid_salves返回的第一個值為lb2,最後grid的那一個
Button(root,text = 'forget last',command = forgetLabel).grid(row = 1)

root.mainloop()
# 這段代碼是用來證明,多個組件同時放置到同一個位置上會產生覆蓋的問題。對於grid_slaves返回的組件list如何排序,我沒有去查想著資料,在這個例子中使用索引0,返回的正好是lb2,然後再使用grid_forget將這個刪除從grid中移除,可以看到lb1顯示出來了。
'''6.改變列(行)的屬性值'''
# -*- coding: cp936 -*-
# 設置column的屬性(columnconfigure)
from Tkinter import *
root = Tk()
# 創建兩個Label
lb1 = Label(root,text = '1',bg = 'red')
lb2 = Label(root,text = '2',bg = 'blue')

# 將lb1和lb2分別放置到第1行的1,2列位置上
lb1.grid(row = 0,column = 0)
lb2.grid(row = 0,column = 1)

# 指定列的最小寬度為100
root.columnconfigure(0,minsize = 100)
root.mainloop()
# 1與2的距離變的遠一些了。
# 但如果這個位置沒有組件存在的話這個值是不起作用的.
# 設置列或行(rowconfigure)的屬性時使用父容器的方法,不是自己調用。
'''7.組件使用多列(多行)'''
# -*- coding: cp936 -*-
# 使用多行(多列)
from Tkinter import *
root = Tk()
# 創建如下布局(一個字元佔用一個grid位置)
# A E
# B C
# D
# A佔用(0,0)(0,1),B佔用(1,0),C佔用(1,1),D佔用(2,0),E佔用(0,2)
# 創建5個Label,分別以背景色區別
lbA = Label(root,text = 'A',bg = 'red')
lbB = Label(root,text = 'B',bg = 'blue')
lbC = Label(root,text = 'C',bg = 'red')
lbD = Label(root,text = 'D',bg = 'blue')
lbE = Label(root,text = 'E',bg = 'blue')
# 以下為布局參數設置
lbA.grid(row = 0,column = 0,columnspan = 2)
lbB.grid(row = 1,column = 0)
lbC.grid(row = 1,column = 1)
lbD.grid(row = 2)
lbE.grid(row = 0,column = 2)

root.mainloop()
# A與B、D的區別,它左邊已改變,由於使用了兩個表格;
# C與E的區別:C的右邊與E的左邊對齊,也就是說E被放置到第2列的下一個位置了,原因由於A已使用了第2列。
'''8.設置表格中組件的對齊屬性'''
# -*- coding: cp936 -*-
# 使用sticky設置對齊方式
from Tkinter import *
root = Tk()
# 創建兩個Label
Label(root,text = 'hello sticky').grid()
Label(root,text = 'Tkinter').grid()
# 創建兩個Label,並指定sticky屬性
Label(root,text = 'hello sticky').grid(sticky = W)
Label(root,text = 'Tkinter').grid(sticky = W)

root.mainloop()
# 默認屬性下,組件的對齊方式為居中,設置sticky屬性可以控制對齊方式,可用的值(N,S,E,W)及其組合值

2. Python中的tkinter插件的listbox如何實現點擊按鈕後數據一行一行循環顯示,

那幹嘛要用listbox?

3. python圖形化界面設計tkinter

python提供了多個圖形開發界面的庫,幾個常用Python GUI庫如下:

4. 請教python+tkinter如何實現下拉日歷

有一個替代的方法,用ttk.combobox做成下拉列表的形式「2014-02-24」,初始值為當天的日期,緊接著是從今天到後20天的日期,
python+tkinter本身並不帶日歷控制項。

5. python中tkinter treeview如何獲取選中的條目

代碼如下(PS:為什麼源代碼功能沒了),請將#替換為空格:
import tkinter
from tkinter import ttk

def popup(event):
####print(tree.selection())
####string.set(tree.selection()[0])
####string.set(tree.focus())

win=tkinter.Tk()
tree=ttk.Treeview(win)
global string
string = tkinter.StringVar()
label=tkinter.Label(win, text="項目", textvariable=string)

myid=tree.insert("",0,"浙江",text="浙江",values=("1"))
myidx1=tree.insert(myid,0,"杭州",text="杭州",values=("2"))
myidx2=tree.insert(myid,1,"寧波",text="寧波",values=("3"))
myidy=tree.insert("",1,"山西",text="山西",values=("4"))
myidy1=tree.insert(myidy,0,"太原",text="太原",values=("5"))
myidy1=tree.insert(myidy,2,"大同",text="大同",values=("6"))

tree.bind("<ButtonRelease-1>", popup)
tree.pack()

label.pack()
win.mainloop()

6. pythion+tkinter如何讓列表裡的名字顯示在窗口中

摘要 geometry()參數的含義:

7. python tkinter 如何做一個如下所示的下拉菜單

Tkinter居然沒有這種組件,所以就只能模擬了

#! /usr/bin/python
# -*- coding: utf8 -*-
from Tkinter import *
class Select(Frame):
def __init__(self, master=None):
Frame.__init__(self, master)
self.label = Label(self, text="選擇項目")
self.listBox = Listbox(self, height=1)
self.button = Button(self, text='V', command=self.triggle)
self.hideList = True
for i in xrange(10):
self.listBox.insert(i, 'Item%d'%i)
self.label.grid(row=0, column=0, sticky=N)
self.listBox.grid(row=0, column=1, sticky=N)
self.button.grid(row=0, column=2, sticky=N)
self.grid()
def triggle(self):
self.hideList ^= 1
self.listBox.config(height=[self.listBox.size(), 1][self.hideList])
app = Select()
app.mainloop()

僅供參考。

8. 用Python tkinter 做一個圖形界面表格需要帶框架線

tkinter中可以用Treeview 顯示數據,相當於table

9. python tkinter 的下拉列表位置怎麼設置

你好,你應該用grid函數
comboxlist.grid(padx=50, pady=50) 這樣的話,就可以在x=50,y=50的地方了

10. python tkinter下拉列表菜單的位置怎麼設置

你好,那個grid函數的話,用row和column是不行的,你換一下用grid(padx=10,pady=20)來將位置設定在10,20的地方。

閱讀全文

與pythontkinter列表相關的資料

熱點內容
cnc編程前景怎麼樣 瀏覽:319
lniux命令詳解 瀏覽:493
linuxmysql查詢日誌 瀏覽:368
老捷達夥伴壓縮比 瀏覽:93
改後綴加密 瀏覽:432
郵局選址問題演算法 瀏覽:14
河北伺服器內存雲主機 瀏覽:12
在電腦上怎麼找到加密狗圖標 瀏覽:435
電腦的瀏覽器怎麼打開pdf文件怎麼打開 瀏覽:142
pdf卡片庫下載 瀏覽:11
單片機中二進製表示什麼 瀏覽:725
java網路編程推薦 瀏覽:794
施耐德開關編程 瀏覽:66
組織胚胎學pdf 瀏覽:844
linux查看發包 瀏覽:496
加密貨幣交易所暴利時代 瀏覽:824
歌詞滾動效果android 瀏覽:14
程序員一天的六場戰斗 瀏覽:797
自製壓縮泵的做法 瀏覽:622
androidstring變數 瀏覽:247