鎮樓圖

文章目錄
- 寫在前面
- 制作二維碼
- 安裝myqr庫
- myqr.run()引數詳解
- 制作普通二維碼
- 制作黑白背景二維碼
- 制作彩色背景二維碼
- 制作大邊長二維碼
- 制作動態二維碼
- 決議二維碼
- tkinter制作可視化界面
- 設定界面主題
- 自定義組件樣式
- 添加輸入框組件
- 添加下拉框組件
- 添加選擇背景組件
- 添加輸出顯示框組件
- 原始碼打包
- ??原始碼獲取方式??
寫在前面
二維碼的使用之處越來越多,普通的二維碼,相信大家已經都司空見慣了,今天就帶大家使用 Python 的 myqr 庫,來制作些不一樣的二維碼,
制作二維碼
安裝myqr庫
pip install -i https://pypi.douban.com/simple myqr
安裝之后可以使用 pip show myqr 命令來檢查是否安裝成功,成功的提示應該類似于下面這樣,

myqr.run()引數詳解
我們使用 myqr.run() 來生成二維碼,先看一下它的引數含義,
| 引數 | 型別 | 簡義 | 詳細 |
|---|---|---|---|
words | str | 鏈接/字串 | 二維碼指向的內容 |
version | int | 二維碼大小 | 邊長引數,范圍是1到40,默認邊長是取決于你輸入資訊的長度和使用的糾錯等級 |
level | str | 糾錯等級 | 二維碼的糾錯等級,范圍是L、M、Q、H,H最高,默認糾錯等級為H |
picture | str | 二維碼背景圖片 | 將二維碼影像與指定的圖片相融合 |
colorized | boolean | 顏色 | 指定產生的圖片的顏色,True為彩色,False為黑白色, |
contrast | float | 對比度 | 以1.0為界限,值越小表示對比度越低,值越大表示對比度越高 |
brightness | float | 亮度 | 以1.0為界限,值越小表示對比度越低,值越大表示亮度越高 |
save_name | str | 輸出檔案名 | 默認輸出檔案名是“qrcode.png” |
save_dir | str | 二維碼存盤位置 | 默認存盤位置是當前目錄 |
制作普通二維碼
制作普通的二維碼,只需要指定二維碼指向的內容與保存的名稱,其他引數均按照默認引數,
# 生成普通二維碼
from MyQR import myqr
myqr.run(words='http://weixin.qq.com/r/6h3Ty4DETt0xrcSo90j4',
save_name='普通二維碼.png')

制作黑白背景二維碼
如果只指定了背景圖片,默認是黑白色的,效果如下,
myqr.run(words='http://weixin.qq.com/r/6h3Ty4DETt0xrcSo90j4',
picture='bg.png',
save_name='黑白背景二維碼.png')

制作彩色背景二維碼
使用 colorized=True 來使背景的顏色改為彩色,
myqr.run(words='http://weixin.qq.com/r/6h3Ty4DETt0xrcSo90j4',
picture='bg.png',
colorized=True,
save_name='彩色背景二維碼.png')

制作大邊長二維碼
之前的圖片 version 默認為1,現在指定 version=20 ,圖片相對于之前看起來會變的更清晰,
# 調節二維碼邊長
myqr.run(words='http://weixin.qq.com/r/6h3Ty4DETt0xrcSo90j4',
version=20,
picture='bg.png',
colorized=True,
save_name='彩色背景二維碼(大).png')

制作動態二維碼
這里制作一個大邊長的動態二維碼,要注意 gif 圖片的大小(記憶體不是尺寸),圖片太大,制作出的二維碼動圖速度會變慢,
# 動態二維碼
myqr.run(words='http://weixin.qq.com/r/6h3Ty4DETt0xrcSo90j4',
version=20,
picture='bg.gif',
colorized=True,
save_name='彩色背景動態二維碼(大).gif')

決議二維碼
這里再介紹一下決議二維碼的一個庫 zxing ,安裝方式與文章開頭 myqr 相似,使用是只需要指定路徑引數,函式回傳決議得到的二維碼內容,
import zxing
reader = zxing.BarCodeReader()
barcode = reader.decode('C:/Users/pc/Desktop/圖片/test.jpg')
print(barcode.parsed)
tkinter制作可視化界面
設定界面主題
創建主組件物件,并添加標題,
window = ThemedTk(theme="adapta", fonts=True, themebg=True)
window.title('二維碼生成器')
自定義組件樣式
根據自己的需要,添加自己喜歡的樣式,這里我添加了兩款 label 的樣式,
label_style = ttk.Style()
label_style.configure("one.TLabel", font=("微軟雅黑", 16, 'bold'), foreground="red", background="yellow")
label_style1 = ttk.Style()
label_style1.configure("two.TLabel", font=("微軟雅黑", 9), foreground="blue", background="yellow")
添加輸入框組件
輸入框組件,主要負責接收輸入的內容,使用 entry.get() 即可獲取輸入框中的內容,
# 填寫二維碼內容
label1 = ttk.Label(window, text=' 鏈接/字串 ', style='two.TLabel')
entry = ttk.Entry(window, width=30)
添加下拉框組件
與輸入框的功能相似,也是獲取用戶選擇的內容,同樣使用 combo.get() 獲取用戶輸入的內容,
# 糾錯級別
label3 = ttk.Label(window, text=' 糾錯級別 ', style='two.TLabel')
combo = AutocompleteCombobox(completevalues=['L 水平 7% 的字碼可被修正',
'M 水平 15% 的字碼可被修正',
'Q 水平 25% 的字碼可被修正',
'H 水平 30% 的字碼可被修正'])
combo.insert('0', 'H 水平 30% 的字碼可被修正')
添加選擇背景組件
點擊按鈕,彈出資源管理器來選擇圖片背景, entry 框顯示選擇后的路徑,并接收選擇的路徑引數,
def selectFilePath():
global img_path
# 選擇檔案path接收檔案地址
img_path = Path(filedialog.askopenfilename(title='選擇背景圖片'))
path1.set(img_path)
# 選擇背景圖
path1 = tk.StringVar()
entry2 = ttk.Entry(window, textvariable=path1, width=30)
entry2.insert(0, '默認無')
button1 = ttk.Button(window,width=10, text = "選擇背景", command = selectFilePath)
添加輸出顯示框組件
顯示運行結果及報錯等資訊,
tree = ttk.Treeview(height=1, show=("tree", "headings"))
成品如下:

原始碼打包
雖然之前的文章中已經介紹過很多次打包的方法,但為了新讀者,還是再來簡單講解一下,
首先要確保已經安裝 pyinstaller,沒有安裝的可以先安裝一下,
pip install -i https://pypi.douban.com/simple pyinstaller
pyinstaller 使用時的常用引數含義:
-F:打包單個檔案,產生一個檔案用于部署(默認),如果代碼都寫在一個
.py檔案時使用,專案有多個檔案時不要使用pyinstaller -F xxx.py-D:打包多個檔案,產生一個目錄用于部署(默認),用于框架撰寫的代碼打包
pyinstaller -D xxx.py(專案入口檔案)–key=keys:使用
keys進行加密打包pyinstaller --key=123456 -F xxx.py-d:產生
debug版本的可執行檔案-p:用來添加程式所用到的包的所在位置,設定匯入路徑,可以用
;( Linux 使用:)分割來指定多個目錄,-w:表示不用控制臺視窗,使用 Windows 子系統執行,當程式啟動的時候不會打開命令列(只對 Windows 有效)
-c:表示打開控制臺視窗,使用控制臺子系統執行,當程式啟動的時候會打開命令列(默認)(只對 Windows 有效)
-i:將 file.ico 添加為可執行檔案的資源,改變程式的圖示(只對 Windows 系統有效)
安裝完成后,新建一個檔案夾,將源檔案放到該檔案夾下面,打開cmd, cd 進入該檔案夾下(重點),執行下面陳述句

生成的檔案結構如下

exe 可執行檔案在 dist 目錄下

這就是本文所有的內容了,如果感徑訓不錯的話,? 點個贊再走吧!!!?
后續會繼續分享各種干貨,如果感興趣的話可以點個關注不迷路哦~,
??原始碼獲取方式??
最后文章中的原始碼及打包后的檔案已經放到鏈接下,需要的可以自己下載,
代碼獲取:https://download.csdn.net/download/qq_43965708/22697657
像我這么寵粉的人~當然會給關注我的粉絲們億點小福利啦,關注下方小卡片,回復 “二維碼生成器” 即可獲取原始碼哦!
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/300287.html
標籤:其他

