Python?ttkbootstrap?制作賬戶注冊信息界面的案例代碼
前言
ttkbootstrap 是一個基于 tkinter 的界面美化庫,使用這個工具可以開發(fā)出類似前端 bootstrap 風(fēng)格的 tkinter 桌面程序。
ttkbootstrap 不僅有豐富的案例,同時還有完善的官方文檔,可惜是英文的。不過對于程序員來說,只要用好翻譯軟件與提供的案例代碼,一樣可以輕松上手,那么接下來我們就介紹一下這個工具的使用。
準(zhǔn)備工作
首先肯定是需要安裝一下 ttkbootstrap
版本要新,最好不要用鏡像源安裝
pip install ttkbootstrap
import ttkbootstrap as ttk from ttkbootstrap.constants import * # root = tk.Tk() # 使用 tkinter 創(chuàng)建窗口對象 root = ttk.Window() # 使用 ttkbootstrap 創(chuàng)建窗口對象 root.geometry('300x150') b1 = ttk.Button(root, text="按鈕 1", bootstyle=SUCCESS) # 使用 ttkbootstrap 的組件 b1.pack(side=LEFT, padx=5, pady=10) b2 = ttk.Button(root, text="按鈕 2", bootstyle=(INFO, OUTLINE)) # OUTLINE 是指定邊框線 b2.pack(side=LEFT, padx=5, pady=10) root.mainloop()
開始我們今天的案例教學(xué)
完整代碼,復(fù)制運行即可(明示??????)
import ttkbootstrap as tk root = tk.Window(themename='litera') root.geometry('350x500+500+500') root.title('萌新-注冊頁面') root.wm_attributes('-topmost', 1) username_str_var = tk.StringVar() password_str_var = tk.StringVar() # 0 女 1 男 -1 保密 gender_str_var = tk.IntVar() # 興趣愛好 hobby_list = [ [tk.IntVar(), '吃'], [tk.IntVar(), '喝'], [tk.IntVar(), '玩'], [tk.IntVar(), '樂'], ] # 賬戶信息 tk.Label(root, width=10).grid() tk.Label(root, text='用戶名:').grid(row=1, column=1, sticky=tk.W, pady=10) tk.Entry(root, textvariable=username_str_var).grid(row=1, column=2, sticky=tk.W) tk.Label(root, text='密 碼:').grid(row=2, column=1, sticky=tk.W, pady=10) tk.Entry(root, textvariable=password_str_var).grid(row=2, column=2, sticky=tk.W) # 性別 單選框 tk.Label(root, text='性別:').grid(row=4, column=1, sticky=tk.W, pady=10) radio_frame = tk.Frame() radio_frame.grid(row=4, column=2, sticky=tk.W) tk.Radiobutton(radio_frame, text='男', variable=gender_str_var, value=1).pack(side=tk.LEFT, padx=5) tk.Radiobutton(radio_frame, text='女', variable=gender_str_var, value=0).pack(side=tk.LEFT, padx=5) tk.Radiobutton(radio_frame, text='保密', variable=gender_str_var, value=-1).pack(side=tk.LEFT, padx=5) tk.Label(root, text='興趣:').grid(row=6, column=1, sticky=tk.W, pady=10) check_frame = tk.Frame() check_frame.grid(row=6, column=2, sticky=tk.W) tk.Checkbutton(check_frame, text=hobby_list[0][1], variable=hobby_list[0][0]).pack(side=tk.LEFT, padx=5) tk.Checkbutton(check_frame, text=hobby_list[1][1], variable=hobby_list[1][0], bootstyle="square-toggle").pack( side=tk.LEFT, padx=5) tk.Checkbutton(check_frame, text=hobby_list[2][1], variable=hobby_list[2][0], bootstyle="round-toggle").pack( tk.Checkbutton(check_frame, text=hobby_list[3][1], variable=hobby_list[3][0]).pack(side=tk.LEFT, padx=5) # 生日 tk.Label(root, text='生日:').grid(row=7, column=1, sticky=tk.W, pady=10) data_entry = tk.DateEntry() data_entry.grid(row=7, column=2, sticky=tk.W, pady=10) print(data_entry.entry.get()) # print(birth_day.get()) tk.Label(root, text="").grid(row=9, column=2, sticky=tk.W) button = tk.Button(root, text='提交', width=20) button.grid(row=10, column=2, sticky=tk.W) def get_info(): data = { '用戶名': username_str_var.get(), '密碼': password_str_var.get(), '性別': gender_str_var.get(), '興趣': [h for v, h in hobby_list if v.get()], '生日': data_entry.entry.get() } print(data) with open('1.txt', mode='a') as f: f.write('\n') f.write(str(data)) button.config(command=get_info) root.mainloop()
1、做個界面
root = tk.Window(themename='litera') root.geometry('350x500+500+500') root.title('萌新-注冊頁面') root.wm_attributes('-topmost', 1) root.mainloop()
2、用戶注冊框
tk.Label(root, width=10).grid() tk.Label(root, text='用戶名:').grid(row=1, column=1, sticky=tk.W, pady=10) tk.Entry(root, textvariable=username_str_var).grid(row=1, column=2, sticky=tk.W) tk.Label(root, text='密 碼:').grid(row=2, column=1, sticky=tk.W, pady=10) tk.Entry(root, textvariable=password_str_var).grid(row=2, column=2, sticky=tk.W)
3、性別單選框
# 0 女 1 男 -1 保密 gender_str_var = tk.IntVar() tk.Label(root, text='性別:').grid(row=4, column=1, sticky=tk.W, pady=10) radio_frame = tk.Frame() radio_frame.grid(row=4, column=2, sticky=tk.W) tk.Radiobutton(radio_frame, text='男', variable=gender_str_var, value=1).pack(side=tk.LEFT, padx=5) tk.Radiobutton(radio_frame, text='女', variable=gender_str_var, value=0).pack(side=tk.LEFT, padx=5) tk.Radiobutton(radio_frame, text='保密', variable=gender_str_var, value=-1).pack(side=tk.LEFT, padx=5)
4、興趣愛好
hobby_list = [ [tk.IntVar(), '吃'], [tk.IntVar(), '喝'], [tk.IntVar(), '玩'], [tk.IntVar(), '樂'], ] tk.Label(root, text='興趣:').grid(row=6, column=1, sticky=tk.W, pady=10) check_frame = tk.Frame() check_frame.grid(row=6, column=2, sticky=tk.W) tk.Checkbutton(check_frame, text=hobby_list[0][1], variable=hobby_list[0][0]).pack(side=tk.LEFT, padx=5) tk.Checkbutton(check_frame, text=hobby_list[1][1], variable=hobby_list[1][0], bootstyle="square-toggle").pack( side=tk.LEFT, padx=5) tk.Checkbutton(check_frame, text=hobby_list[2][1], variable=hobby_list[2][0], bootstyle="round-toggle").pack( side=tk.LEFT, padx=5) tk.Checkbutton(check_frame, text=hobby_list[3][1], variable=hobby_list[3][0]).pack(side=tk.LEFT, padx=5)
5、生日
tk.Label(root, text='生日:').grid(row=7, column=1, sticky=tk.W, pady=10) data_entry = tk.DateEntry() data_entry.grid(row=7, column=2, sticky=tk.W, pady=10) print(data_entry.entry.get())
6、提交信息按鈕
tk.Label(root, text="").grid(row=9, column=2, sticky=tk.W) button = tk.Button(root, text='提交', width=20) button.grid(row=10, column=2, sticky=tk.W)
7、保存數(shù)據(jù)
def get_info(): data = { '用戶名': username_str_var.get(), '密碼': password_str_var.get(), '性別': gender_str_var.get(), '興趣': [h for v, h in hobby_list if v.get()], '生日': data_entry.entry.get() } print(data) with open('1.txt', mode='a') as f: f.write('\n') f.write(str(data)) button.config(command=get_info)
到此這篇關(guān)于Python ttkbootstrap 制作賬戶注冊信息界面的文章就介紹到這了,更多相關(guān)Python ttkbootstrap賬戶注冊界面內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python初學(xué)者需要注意的事項小結(jié)(python2與python3)
這篇文章主要介紹了Python初學(xué)者需要注意的事項小結(jié),包括了python2與python3的一些區(qū)別,需要的朋友可以參考下2018-09-09python實現(xiàn)html轉(zhuǎn)ubb代碼(html2ubb)
這篇文章主要介紹了python實現(xiàn)html轉(zhuǎn)ubb代碼(html2ubb),使用正則表達(dá)式寫的一個函數(shù),需要的朋友可以參考下2014-07-07Python+Selenium實現(xiàn)短視頻自動上傳與發(fā)布的實踐
本文主要介紹了Python+Selenium實現(xiàn)短視頻自動上傳與發(fā)布的實踐,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-04-04如何在Flask中實現(xiàn)數(shù)據(jù)分組流程詳解
在Flask中,數(shù)據(jù)分組是指將一組數(shù)據(jù)按照某種方式進(jìn)行分類,以便更好地對數(shù)據(jù)進(jìn)行處理和展示,可以使用Python內(nèi)置的itertools模塊中的groupby方法,或者使用SQL語句中的GROUP?BY子句來實現(xiàn)數(shù)據(jù)分組,這篇文章介紹了在Flask中實現(xiàn)數(shù)據(jù)分組,感興趣的同學(xué)可以參考下文2023-05-05