① 關於python中GUI編程的一個小問題,怎麼用鍵盤輸入與滑鼠點擊同時完成一個Button
bind key到app或button:
#修改add函數
def add(event = None):
num.set(num.get()+1)
app=Tk()
num=IntVar()
num.set(0)
b1=Button(app,text="add",command=add)
b1.pack()
#支持"a" 和"A"
b1.bind('<a>', add)
b1.bind('<A>', add)
b1.focus_force()
label=Label(app,textvariable=num)
label.pack()
app.mainloop()
② python 如何對intvar做加減乘除
python做加減乘除功能上比較容易實現。
就是做計算器的界面,這個選擇比較多。
tk,wxpython,Qt都可以
tk內置,不需要另外安裝庫,簡潔。就是看起來,比較windows。
wxpython庫比較成熟了,各種樣式很多。
qt,有界面編輯很方便。我沒用過。
我覺得wxpython比較好,demo中的樣式就很多了。
具體實現的話:用wxpython做一個計算器的界面,有一個輸入框。然後將輸入的數字和加減乘除,str=「32*32-543/543+25」 直接eval(str)成表達式,就知道結果了。
③ python中的intvar()的含義與stringvar()的區別
一、作用不同
1、intvar():屬於Tkinter下的對象。用於處理整型。
2、stringvar():StringVar並不是python內建的對象,而是屬於Tkinter下的對象。
二、值變化不同
1、intvar():不需要跟蹤變數的值的變化。
2、stringvar():需要跟蹤變數的值的變化,以保證值的變更隨時可以顯示在界面上。
三、特點不同
1、intvar():intVar類型調用get函數時,先將變數轉變成了tuples類型的數據。
2、stringvar():StringVar類型調用set函數時,先將變數轉變成了tuples類型的數據。實際上調用set函數之前就直接使用Tuples類型的數據.
④ python tkinter 上位機如何將數據顯示在框里。。
fromtkinterimport*
root=Tk()
temp1=35
Label(root,text="溫度1").grid(row=0,column=0)
entryvar=IntVar()
Entry(root,variable=entryvar).grid(row=0,column=1)
entryvar.set(temp1)
root.mainloop()
⑤ python 關於StringVar的問題
print learngree 列印出來的結果應該是 learngree 這個對象在內存中的存儲地址,而不是這個變數剛剛被你設置的字元串.
要想獲取你設置的字元串(「kaoyan」),你需要看一下這個 StringVar類型的對象是否提供了一個函數來讓你訪問到該對象中保存的字元串.
你可以這樣來看一下: 在 python prompt shell 裡面用 dir(StringVar) 來看一下所有的函數.
⑥ Python怎麼將tkinter 輸入框中輸入的字元串內容轉換為 整數類型
設定變數類型,收到輸入的內容之後進行轉換,如下:
import tkinter
windows = tkinter.Tk() # 實例化窗口類
windows.title('Demo') # 窗口標題
def sub(): # 創建相加函數
number1 = int(ent1.get()) # 獲得兩個按鈕的內容轉換為字元串類型
number2 = int(ent2.get())
number3 = number1 + number2
var.set(number3)
var = tkinter.IntVar() # 定義變數類型
ent1 = tkinter.Entry(windows)
ent2 = tkinter.Entry(windows)
ent3 = tkinter.Entry(windows,textvariable=var)
ent1.pack(side = tkinter.LEFT,padx=5) # 包裝定位控制項
ent2.pack(side = tkinter.LEFT,padx=5)
ent3.pack(side = tkinter.LEFT,padx=5)
button1 = tkinter.Button(windows,text='計算',command = sub).pack() # 綁定信號
button2 = tkinter.Button(windows,text='退出',command = windows.destroy).pack()
windows.mainloop() # 循環保持窗口運行
⑦ python tkinter grid布局顯示問題求助
什麼時候使用Grid管理器
grid管理器是Tkinter裡面最靈活的幾何管理布局器。如果你不確定什麼情況下從三種布局管理中選擇,你至少要保證自己會使用grid。
當你設計對話框的時候,grid布局管理器是一個非常方便的工具。如果你之前使用pack進行布局的話,你會被使用grid後的簡潔而震驚。與適應很多frame來讓pack工作不同,在大多數情況下,你只需要將所有控制項放置到容器中,然後使用grid將它們布局到任何你想要布局的地方。
參考下面這個例子:
使用pack進行布局的話,你不得不使用一些額外的frame控制項,而且還需要花費一些功夫讓他們變得好看。如果你使用grid的話,你只需要對每個控制項使用grid,所有的東西都會以合適的方式顯示。
注意:不要試圖在一個主窗口中混合使用pack和grid。
使用grid進行布局管理非常容易。只需要創建控制項,然後使用grid方法去告訴布局管理器在合適的行和列去顯示它們。你不用事先指定每個網格的大小,布局管理器會自動根據裡面的控制項進行調節。
from Tkinter import *
master = Tk()
Label(master, text="First").grid(row=0)
Label(master, text="Second").grid(row=1)
e1 = Entry(master)
e2 = Entry(master)
e1.grid(row=0, column=1)
e2.grid(row=1, column=1)
mainloop()
運行如下圖所示:
label1占據0行0列,label2占據1行0列,entry1占據0行1列,entry2占據1行1列。
注意:1.在使用grid方法時,如果不指定column參數,則默認從0開始。
2.沒有被使用的行和列號將被忽略,在上面的例子中如果使用10行和20行,則運行效果是一樣的。
使用sticky參數
默認的空間會在網格中居中顯示。你可以使用sticky選項去指定對齊方式,可以選擇的值有:N/S/E/W,分別代表上/下/左/右。如果你想讓label靠左顯示,你可以設置stricky的值為W。
from Tkinter import *
master = Tk()
Label(master, text="First").grid(row=0, sticky=W)
Label(master, text="Second").grid(row=1, sticky=w)
e1 = Entry(master)
e2 = Entry(master)
e1.grid(row=0, column=1)
e2.grid(row=1, column=1)
mainloop()
運行效果如下圖:
你同樣可以指定控制項跨越一個或者多個網格。columnspan選項可以指定控制項跨越多列顯示,而rowspan選項同樣可以指定控制項跨越多行顯示。
下面的代碼創建了我們最初演示的示意圖:
from Tkinter import *
master = Tk()
var = IntVar()
Label(master, text="First").grid(sticky=E)
Label(master, text="Second").grid(sticky=E)
e1 = Entry(master)
e2 = Entry(master)
e1.grid(row=0, column=1)
e2.grid(row=1, column=1)
checkbutton = Checkbutton(master, text='Preserve aspect', variable=var)
checkbutton.grid(columnspan=2, sticky=W)
photo = PhotoImage(file='2qq.gif')
label = Label(image=photo)
label.image = photo
label.grid(row=0, column=2, columnspan=2, rowspan=2, sticky=W+E+N+S, padx=5, pady=5)
button1 = Button(master, text='Zoom in')
button1.grid(row=2, column=2)
button2 = Button(master, text='Zoom out')
button2.grid(row=2, column=3)
mainloop()
運行效果如下圖:
在這段代碼中,有一些細節需要注意:
1. 我們沒有為左邊的兩個label控制項指定具體的位置,在這種情況下,column將會從0開始,而row將會從第一個沒有使用的值開始。
2. 我們隊checkbutton設置了columnspan參數,所以它會顯示在第二行,並占據第0和1列。
3. 圖像label佔用了2行2列,而最後的兩個button都只佔用了1列。
望採納
⑧ 一個python的問題
看num的定義是:
num=tkinter.IntVar()
也就是說,num是一個IntVar對象,不是Integer對象,用法當然不一樣。