欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用python實現(xiàn)名片管理系統(tǒng)

 更新時間:2020年06月18日 17:25:14   作者:程序員不掉發(fā)  
這篇文章主要為大家詳細(xì)介紹了使用python實現(xiàn)名片管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下

python實現(xiàn)名片管理系統(tǒng)(界面+數(shù)據(jù)庫)

開發(fā)一個簡單的信息管理系統(tǒng)(類似于前面的名片管理系統(tǒng)),要求:

1.用結(jié)構(gòu)化方法或面向?qū)ο箝_發(fā)方法開發(fā)系統(tǒng)
2.有圖形用戶界面
3.用數(shù)據(jù)庫存儲數(shù)據(jù)
4.用python語言實現(xiàn)系統(tǒng)

部分功能如下圖

進入時的界面

顯示所有名片后的界面

新建名片功能

新建成功

查找名片里包含(修改名片和刪除名片)

具體代碼如下

import sys
from tkinter import *
from tkinter.messagebox import *
from tkinter import ttk
import sqlite3

con = sqlite3.connect(r"D:\Python練習(xí)\作業(yè)\12月6日python\card.db")
#con.execute("create table card(name primary key ,phone,QQ,email)")

#新增名片
def add():
 add = Tk()
 add.geometry('260x140+350+200')
 add.minsize(260, 140)
 add.maxsize(260, 140)
 add.title("新建名片")
 lf = LabelFrame(add,text="請 輸 入 :",labelanchor=N)
 lf.pack()
 Label(lf, text="姓 名:").grid(row=0,column=0)
 Label(lf, text="電 話:").grid(row=1,column=0)
 Label(lf, text="Q Q:").grid(row=2, column=0)
 Label(lf, text="Email:").grid(row=3, column=0)
 name = Entry(lf)
 name.grid(row=0,column=1,columnspan=2)
 phone = Entry(lf)
 phone.grid(row=1,column=1,columnspan=2)
 qq = Entry(lf)
 qq.grid(row=2,column=1,columnspan=2)
 email = Entry(lf)
 email.grid(row=3,column=1,columnspan=2)
 #確定按鈕添加數(shù)據(jù)
 def qd_event():
 try:
 if name.get()=="":
 showinfo(title="提示", message="姓名不能為空!")
 add.destroy()
 else:
 con = sqlite3.connect(r"D:\Python練習(xí)\作業(yè)\12月6日python\card.db")
 cardList = (name.get(),phone.get(),qq.get(),email.get())
 con.execute("insert into card(name,phone,QQ,email) values (?,?,?,?)",cardList)
 #card = {"姓名":name.get(),"電話":phone.get(),"QQ":qq.get(),"Email":email.get()}
 #card_list.append(card)
 con.commit()
 con.close()
 add.destroy()
 show_all()
 #save_data()
 showinfo(title="提示", message="新建名片成功!")
 except:
 print("error occur")
 showinfo(title="警告", message="姓名不能重復(fù)!")
 #取消按鈕
 def qx_event():
 add.destroy()
 Button(lf,text=" 確 定 ",command=qd_event).grid(row=4,column=2,sticky=W)
 Button(lf,text=" 取 消 ",command=qx_event).grid(row=4,column=1,sticky=E)
 
#顯示所有
def show_all():
 x=dataTreeview.get_children()
 for item in x:
 dataTreeview.delete(item)
 con = sqlite3.connect(r"D:\Python練習(xí)\作業(yè)\12月6日python\card.db")
 cur = con.execute("select * from card")
 for i in cur:
 print(i)
 n=0
 #dataTreeview.insert('', 1, values=("1","2","3","4"))
 dataTreeview.insert('',n, values=i)
 n+=1 

#清空數(shù)據(jù)
def del_all():
 x=dataTreeview.get_children()
 for item in x:
 dataTreeview.delete(item)

#查詢名片
def search_card():
 search = Tk()
 search.geometry('240x50+450+300')
 search.minsize(240, 80)
 search.maxsize(400, 170)
 search.title("查找名片")
 lf = LabelFrame(search, text="請 輸 入 :", labelanchor=N)
 lf.pack()
 Label(lf, text="姓 名:").grid(row=0, column=0)
 name = Entry(lf)
 name.grid(row=0, column=1, columnspan=2)
 #print(name.get())
 def sure():
 con = sqlite3.connect(r"D:\Python練習(xí)\作業(yè)\12月6日python\card.db")
 cur = con.execute("select * from card")
 for i in cur:
 #print(i)
 #print(name.get())
 #print(name.get()==i[0])
 if name.get() == i[0]:
 print("查找成功")
 #print(i[0])
 update(i[0])
 
 search.destroy()
 break
 else:
 showinfo(title="提示",message="沒有找到!")
 Button(lf, text="查找", command=sure).grid(row=1, column=1, sticky=N)

#修改名片
def update(n):
 
 update = Tk()
 update.geometry('400x170+350+200')
 update.minsize(400, 170)
 update.maxsize(400, 170)
 update.title("查找名片")
 lf1 = LabelFrame(update, text="名片信息",labelanchor=N)
 lf1.pack()
 Label(lf1, text="姓 名:").grid(row=0, column=0)
 Label(lf1, text="電 話:").grid(row=1, column=0)
 Label(lf1, text="Q Q:").grid(row=2, column=0)
 Label(lf1, text="Email:").grid(row=3, column=0)
 con = sqlite3.connect(r"D:\Python練習(xí)\作業(yè)\12月6日python\card.db")
 print(n+"好靚仔")
 cur = con.execute("select * from card where name =="+"'"+n+"'")
 print("'"+n+"'")
 for i in cur:
 print(i[0]+i[1]+i[2]+i[3])
 Label(lf1, text=i[0], width=20, anchor=W).grid(row=0, column=1, columnspan=2)
 Label(lf1, text=i[1], width=20, anchor=W).grid(row=1, column=1, columnspan=2)
 Label(lf1, text=i[2], width=20, anchor=W).grid(row=2, column=1, columnspan=2)
 Label(lf1, text=i[3], width=20, anchor=W).grid(row=3, column=1, columnspan=2)
 name = Entry(lf1)
 name.grid(row=0, column=3, columnspan=2)
 phone = Entry(lf1)
 phone.grid(row=1, column=3, columnspan=2)
 qq = Entry(lf1)
 qq.grid(row=2, column=3, columnspan=2)
 email = Entry(lf1)
 email.grid(row=3, column=3, columnspan=2)
 Label(lf1,text="提示!修改名片在空白處輸入確認(rèn)修改即可",anchor=E).grid(row=4, column=0, columnspan=3)
 def xg_event(n):
 print(n)
 print(name.get()) 
 con = sqlite3.connect(r"D:\Python練習(xí)\作業(yè)\12月6日python\card.db")
 con.execute("update card set name=?,phone=?,qq=?,email=? where name ="+"'"+n+"'",(name.get(),phone.get(),qq.get(),email.get()))
 con.commit()
 con.close()
 update.destroy()
 show_all()
 
 #刪除名片
 def delete(n):
 con = sqlite3.connect(r"D:\Python練習(xí)\作業(yè)\12月6日python\card.db")
 con.execute("delete from card where name ="+"'"+n+"'")
 con.commit()
 con.close()
 show_all()
 showinfo(title="提示", message="已刪除!")
 update.destroy()
 Button(lf1, text="修 改", command=lambda: xg_event(n)).grid(row=5, column=2, sticky=E)
 Button(lf1, text="刪 除", command=lambda: delete(n)).grid(row=5, column=1, sticky=E)

 
#退出系統(tǒng)
def quit():
 root.destroy()


def about():
 showinfo(title="關(guān)于我們",message="卡片管理系統(tǒng)\n版本號:V4.0 \n作者:華浩新\n完成日期:2019年12月18日")

 #創(chuàng)建一個Tk根窗口組件root
root=Tk()
root.title("名片管理系統(tǒng)")
root["width"]=800
root["height"]=500


#系統(tǒng)管理菜單欄
mubar=Menu(root)
muLogin=Menu(mubar,tearoff=0)
mubar.add_cascade(label="系統(tǒng)管理",menu=muLogin)
muLogin.add_command(label="加載數(shù)據(jù)",command=show_all)
muLogin.add_command(label="清空數(shù)據(jù)",command=del_all)
tc=muLogin.add_command(label="退出",command=quit)

#名片管理菜單欄
muCard=Menu(mubar,tearoff=0)
mubar.add_cascade(label="名片管理",menu=muCard)
muCard.add_command(label="顯示所有",command=show_all)
root.bind("<Button-1>,")
muCard.add_command(label="新建",command=add)
muCard.add_command(label="查找",command=search_card)
muCard.add_command(label="保存")

#幫助菜單欄
muHelp=Menu(mubar,tearoff=0)
mubar.add_cascade(label="幫助",menu=muHelp)
muHelp.add_command(label="關(guān)于",command=about)
t=Text(root,width=100,height=30)
t.pack()



dataTreeview = ttk.Treeview(root, height=19,show='headings', column=('name', 'phone', 'QQ', 'email'))
dataTreeview.column('name', width=80, anchor="center")
dataTreeview.column('phone', width=80, anchor="center")
dataTreeview.column('QQ', width=80, anchor="center")
dataTreeview.column('email', width=80, anchor="center")

dataTreeview.heading('name', text='姓名')
dataTreeview.heading('phone', text='電話')
dataTreeview.heading('QQ', text='QQ')
dataTreeview.heading('email', text='郵箱')
dataTreeview.place(rely=0, relwidth=1)
Label(root, text='名片管理系統(tǒng)V4.0', bg='white', fg='blue', font=('宋體', 15)).pack(side=BOTTOM, fill='x')

root["menu"]=mubar
root.mainloop()

更多學(xué)習(xí)資料請關(guān)注專題《管理系統(tǒng)開發(fā)》。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 解決python中import文件夾下面py文件報錯問題

    解決python中import文件夾下面py文件報錯問題

    這篇文章主要介紹了解決python中import文件夾下面py文件報錯問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • Python中的模塊導(dǎo)入和讀取鍵盤輸入的方法

    Python中的模塊導(dǎo)入和讀取鍵盤輸入的方法

    這篇文章主要介紹了Python中的模塊導(dǎo)入和讀取鍵盤輸入的方法,相關(guān)import語句和input函數(shù)的使用是Python入門學(xué)習(xí)中的基礎(chǔ)知識, 需要的朋友可以參考下
    2015-10-10
  • Python實現(xiàn)Harbor私有鏡像倉庫垃圾自動化清理詳情

    Python實現(xiàn)Harbor私有鏡像倉庫垃圾自動化清理詳情

    這篇文章主要介紹了Python實現(xiàn)Harbor私有鏡像倉庫垃圾自動化清理詳情,文章圍繞主題分享相關(guān)詳細(xì)代碼,需要的小伙伴可以參考一下
    2022-05-05
  • Python 裝飾器實現(xiàn)DRY(不重復(fù)代碼)原則

    Python 裝飾器實現(xiàn)DRY(不重復(fù)代碼)原則

    python的裝飾器就是一種代碼簡潔的手段,在函數(shù)和方法有改動時,使得改動量最小。這篇文章給大家介紹了Python 裝飾器實現(xiàn)DRY(不重復(fù)代碼)原則,感興趣的朋友一起看看吧
    2018-03-03
  • python+tkinter+mysql做簡單數(shù)據(jù)庫查詢界面

    python+tkinter+mysql做簡單數(shù)據(jù)庫查詢界面

    本文主要介紹了python+tkinter+mysql做簡單數(shù)據(jù)庫查詢界面,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • python多進程及通信實現(xiàn)異步任務(wù)的方法

    python多進程及通信實現(xiàn)異步任務(wù)的方法

    這篇文章主要介紹了python多進程及通信實現(xiàn)異步任務(wù)需求,本人也是很少接觸多進程的場景,對于python多進程的使用也是比較陌生的。在接觸了一些多進程的業(yè)務(wù)場景下,對python多進程的使用進行了學(xué)習(xí),覺得很有必要進行一個梳理總結(jié),感興趣的朋友一起看看吧
    2022-05-05
  • 利用Python獲取操作系統(tǒng)信息實例

    利用Python獲取操作系統(tǒng)信息實例

    作為一個運維人員,經(jīng)常需要獲取系統(tǒng)的的各種信息,使用python會很方便幫助獲得,這篇文章運用實例告訴大家如何利用Python來獲取操作系統(tǒng)的信息,有需要的可以參考借鑒。
    2016-09-09
  • Python?matplotlib調(diào)整坐標(biāo)軸位置、標(biāo)簽位置和標(biāo)簽方向以及X軸刻度標(biāo)簽位置

    Python?matplotlib調(diào)整坐標(biāo)軸位置、標(biāo)簽位置和標(biāo)簽方向以及X軸刻度標(biāo)簽位置

    我們在用matplotlib繪制圖的時候總是有各種需求,下面這篇文章主要給大家介紹了關(guān)于Python?matplotlib調(diào)整坐標(biāo)軸位置、標(biāo)簽位置和標(biāo)簽方向以及X軸刻度標(biāo)簽位置的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-04-04
  • python線程池threadpool使用篇

    python線程池threadpool使用篇

    這篇文章主要為大家詳細(xì)介紹了python線程池threadpool的使用方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • Django 中間鍵和上下文處理器的使用

    Django 中間鍵和上下文處理器的使用

    這篇文章主要介紹了Django 中間鍵和上下文處理器的使用,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-03-03

最新評論