導航:首頁 > 編程知識 > 編程如何調用tkinter

編程如何調用tkinter

發布時間:2024-11-29 01:10:12

『壹』 Python 中用 Tkinter GUI編程

可以使用sqlite,下面是使用方法。

  1. 導入PythonSQLITE資料庫模塊

Python2.5之後,內置了SQLite3,成為了內置模塊,這給我們省了安裝的功夫,只需導入即可~

importsqlite3


2.創建/打開資料庫


在調用connect函數的時候,指定庫名稱,如果指定的資料庫存在就直接打開這個資料庫,如果不存在就新創建一個再打開。


cx=sqlite3.connect("E:/test.db")

也可以創建資料庫在內存中。

con=sqlite3.connect(":memory:")

3.資料庫連接對象


打開資料庫時返回的對象cx就是一個資料庫連接對象,它可以有以下操作:


commit()--事務提交


rollback()--事務回滾

close()--關閉一個資料庫連接

cursor()--創建一個游標


關於commit(),如果isolation_level隔離級別默認,那麼每次對資料庫的操作,都需要使用該命令,你也可以設置isolation_level=None,這樣就變為自動提交模式。

4.使用游標查詢資料庫


我們需要使用游標對象SQL語句查詢資料庫,獲得查詢對象。通過以下方法來定義一個游標。


cu=cx.cursor()

游標對象有以下的操作:

execute()--執行sql語句

executemany--執行多條sql語句

close()--關閉游標

fetchone()--從結果中取一條記錄,並將游標指向下一條記錄

fetchmany()--從結果中取多條記錄

fetchall()--從結果中取出所有記錄

scroll()--游標滾動


1.建表

cu.execute("createtablecatalog(idintegerprimarykey,pidinteger,namevarchar(10)UNIQUE,nicknametextNULL)")


上面語句創建了一個叫catalog的表,它有一個主鍵id,一個pid,和一個name,name是不可以重復的,以及一個nickname默認為NULL。


2.插入數據


請注意避免以下寫法:


#Neverdothis--insecure會導致注入攻擊


pid=200

c.execute("...wherepid='%s'"%pid)

正確的做法如下,如果t只是單個數值,也要採用t=(n,)的形式,因為元組是不可變的。

fortin[(0,10,'abc','Yu'),(1,20,'cba','Xu')]:

cx.execute("insertintocatalogvalues(?,?,?,?)",t)

簡單的插入兩行數據,不過需要提醒的是,只有提交了之後,才能生效.我們使用資料庫連接對象cx來進行提交commit和回滾rollback操作.

cx.commit()


3.查詢

cu.execute("select*fromcatalog")


要提取查詢到的數據,使用游標的fetch函數,如:


In[10]:cu.fetchall()

Out[10]:[(0,10,u'abc',u'Yu'),(1,20,u'cba',u'Xu')]

如果我們使用cu.fetchone(),則首先返回列表中的第一項,再次使用,則返回第二項,依次下去.


4.修改

In[12]:cu.execute("updatecatalogsetname='Boy'whereid=0")

In[13]:cx.commit()

注意,修改數據以後提交


5.刪除


cu.execute("deletefromcatalogwhereid=1")

cx.commit()


6.使用中文

請先確定你的IDE或者系統默認編碼是utf-8,並且在中文前加上u


x=u'魚'

cu.execute("updatecatalogsetname=?whereid=0",x)

cu.execute("select*fromcatalog")

cu.fetchall()

[(0,10,u'u9c7c',u'Yu'),(1,20,u'cba',u'Xu')]

如果要顯示出中文字體,那需要依次列印出每個字元串


In[26]:foritemincu.fetchall():

....:forelementinitem:

....:printelement,

....:print

....:

010魚Yu

120cbaXu


7.Row類型

Row提供了基於索引和基於名字大小寫敏感的方式來訪問列而幾乎沒有內存開銷。原文如下:

sqlite3.Rowprovidesbothindex-basedandcase-insensitivename-.-basedapproachorevenadb_rowbasedsolution.

Row對象的詳細介紹


classsqlite3.Row

_factoryforConnectionobjects..


,iteration,representation,equalitytestingandlen().


,theycompareequal.


Changedinversion2.6:Addediterationandequality(hashability).


keys()

.Immediatelyafteraquery,.description.


Newinversion2.6.


下面舉例說明


In[30]:cx.row_factory=sqlite3.Row


In[31]:c=cx.cursor()


In[32]:c.execute('select*fromcatalog')

Out[32]:<sqlite3.Cursorobjectat0x05666680>


In[33]:r=c.fetchone()


In[34]:type(r)

Out[34]:<type'sqlite3.Row'>


In[35]:r

Out[35]:<sqlite3.Rowobjectat0x05348980>


In[36]:printr

(0,10,u'u9c7c',u'Yu')


In[37]:len(r)

Out[37]:4


In[39]:r[2]#使用索引查詢

Out[39]:u'u9c7c'


In[41]:r.keys()

Out[41]:['id','pid','name','nickname']


In[42]:foreinr:

....:printe,

....:

010魚Yu


使用列的關鍵詞查詢

In[43]:r['id']

Out[43]:0


In[44]:r['name']

Out[44]:u'u9c7c'

『貳』 14. python GUI編程之Tkinter詳細講解一

GUI編程概述

1.1 GUI含義及Tkinter介紹

1.2 常見的GUI庫

1.3 tkinter GUI開發核心步驟

Thinker整體描述

2.1 類繼承關系圖

2.2 相關類的簡單解釋

2.3 標準的GUI程序類的寫法模板

主窗口和布局管理器

3.1 主窗口大小位置方法

3.2 布局管理器

3.2.1 pack()

3.2.1 grid()

3.2.1 place()

感謝閱讀,更多干貨知識搜索:嵌入式軟體開發園!!!

『叄』 Python GUI編程利器:Tkinker中的消息對話框(13)

學習Tkinter中的消息對話框的使用,實現文本、警告、錯誤、疑問、是否、是否取消、確定取消、重試取消消息對話框的效果。

文本消息對話框通過showinfo()創建,語法為:showinfo(title,message),title為標題,message為內容。

提示警告消息對話框使用showwarning(title,message),點擊確定返回ok。

提示錯誤消息對話框使用showerror(title,message),點擊確定返回ok。

疑問消息對話框分為askquestion()和askyesno()函數,askquestion()返回yes或no,askyesno()返回True或False,語法為:askquestion(title,message)和askyesno(title,message)。

疑問消息對話框包含是否、是否取消、確定取消、重試取消功能,使用askyesnocancel(title,message)和askokcancel(title,message)及askretrycancel(title,message)函數,返回值分別為True、False或None。

參考代碼提供實踐指導。

學習完成,歡迎提問交流。

閱讀全文

與編程如何調用tkinter相關的資料

熱點內容
華為榮耀a5怎麼刷機教程 瀏覽:982
臨時緩存文件找不到 瀏覽:190
蘋果手機焦段 瀏覽:234
怎樣將掃描文件插入word文件中 瀏覽:347
iphone的序列號可以作假嗎 瀏覽:217
qq空間許可權漏洞2017 瀏覽:878
win7共享許可權工具 瀏覽:895
怎麼關閉瀏覽器pdf文件在哪裡 瀏覽:330
微信號和密碼都忘了 瀏覽:689
文件主文件名是什麼 瀏覽:596
慈溪市大數據發展中心在哪裡 瀏覽:350
明華二代u盾驅動程序 瀏覽:478
axis2java2wsdl命令 瀏覽:528
怎麼創建圖標文件 瀏覽:301
jsp頁面截取字元串 瀏覽:668
壓縮文件傳電腦打不開 瀏覽:34
如何弄個自己的app 瀏覽:361
如何在銀行app中改密碼 瀏覽:316
什麼app拍視頻又瘦又高 瀏覽:979
編程語言foo是什麼意思 瀏覽:826

友情鏈接