-
當(dāng)前位置:首頁 > 創(chuàng)意學(xué)院 > 技術(shù) > 專題列表 > 正文
- 自己創(chuàng)建了一個(gè)獨(dú)立博客,好多都不會(huì)弄啊,提提建議吧——www.wellfinger.tk,謝謝了哦
- 用Python寫過哪些的小工具
- 如何用tk封裝一裝圖片
- 在哪里可以找到tk的文章
tk文章生成器(tk長(zhǎng)篇文章)
大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關(guān)于tk文章生成器的問題,以下是小編對(duì)此問題的歸納整理,讓我們一起來看看吧。
開始之前先推薦一個(gè)非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計(jì)劃、工作報(bào)告、論文、代碼、作文、做題和對(duì)話答疑等等
只需要輸入關(guān)鍵詞,就能返回你想要的內(nèi)容,越精準(zhǔn),寫出的就越詳細(xì),有微信小程序端、在線網(wǎng)頁版、PC客戶端
官網(wǎng):https://ai.de1919.com。
本文目錄:
自己創(chuàng)建了一個(gè)獨(dú)立博客,好多都不會(huì)弄啊,提提建議吧——www.wellfinger.tk,謝謝了哦
你用的這個(gè)主題不錯(cuò),很漂亮。想想添加什么文章分類,然后添加文章啊,沒有東西怎么算博客呢?還有好多插件可以增強(qiáng)博客的功能,不斷學(xué)習(xí)吧用Python寫過哪些的小工具
為了逃避學(xué)校布置的美術(shù)作業(yè),寫過一個(gè)畫素描的程序。從后再也不擔(dān)心美術(shù)作業(yè)了。
也就是利用Python的PIL庫來 將彩色圖片轉(zhuǎn)化為素描效果的圖片
更新說明:
前面那個(gè)程序?qū)懙奶植诹?,不好意思拿出來分享,重新寫了一遍,加上了GUI圖形界面。
配置環(huán)境:
windows 10
python 3.5
image.py
from PIL import Image
import numpy as np
import os
import join
import time
def image(sta,end,depths=10):
a = np.asarray(Image.open(sta).convert('L')).astype('float')
depth = depths # (0-100)
grad = np.gradient(a) # 取圖像灰度的梯度值
grad_x, grad_y = grad # 分別取橫縱圖像梯度值
grad_x = grad_x * depth / 100.
grad_y = grad_y * depth / 100.
A = np.sqrt(grad_x ** 2 + grad_y ** 2 + 1.)
uni_x = grad_x / A
uni_y = grad_y / A
uni_z = 1. / A
vec_el = np.pi / 2.2 # 光源的俯視角度,弧度值
vec_az = np.pi / 4. # 光源的方位角度,弧度值
dx = np.cos(vec_el) * np.cos(vec_az) # 光源對(duì)x 軸的影響
dy = np.cos(vec_el) * np.sin(vec_az) # 光源對(duì)y 軸的影響
dz = np.sin(vec_el) # 光源對(duì)z 軸的影響
b = 255 * (dx * uni_x + dy * uni_y + dz * uni_z) # 光源歸一化
b = b.clip(0, 255)
im = Image.fromarray(b.astype('uint8')) # 重構(gòu)圖像
im.save(end)
def mains(numbers):
number = int(numbers)
startss = os.listdir(".\輸入----圖片")
time.sleep(2)
for starts in startss:
start = ''.join(starts)
print('正在轉(zhuǎn)化--圖片: ' + start)
sta = './' + '輸入----圖片/' + start
end = './' + '輸出----圖片/' + 'HD_20' + start
image(sta=sta,end=end,depths=number)
簡(jiǎn)單來說,就是利用python的Numpy庫,將圖像降維轉(zhuǎn)化為數(shù)字化的數(shù)據(jù),之后對(duì)數(shù)據(jù)進(jìn)行操作,再利用pillow庫將操作好的數(shù)據(jù)轉(zhuǎn)化為素描效果的圖片。
GUI圖形界面程序
main.py
import os
from image import mains
from tkinter import *
def exists_mkdir():
if os.path.exists('輸出----圖片') and os.path.exists('輸入----圖片'):
pass
else:
os.mkdir('輸出----圖片')
os.mkdir('輸入----圖片')
def images():
try:
s1 = e1.get()
a = mains(s1)
c["text"] = "我們的程序運(yùn)行成功了"
except Exception:
c["text"] = "程序運(yùn)行出錯(cuò)了,可能是缺少了兩個(gè)配置文件"
#創(chuàng)建程序運(yùn)行需要的工作目錄
exists_mkdir()
tk = Tk()
# 設(shè)置窗口大小和位置
tk.geometry('430x350+80+60')
# 不允許改變窗口大小
tk.resizable(False, False)
## 用來顯示Label組件
tk.title('素描圖生成器')
w1 = Label(tk,text='作者博客:www.liuchaoblog.live')
w = Label(tk,text='')
w2 = Label(tk,text='歡迎使用:')
w3 = Label(tk,text='步驟一:將需要轉(zhuǎn)化的圖片放入 輸入----圖片 文件夾下')
w4 = Label(tk,text='步驟二:輸入 0-100的數(shù)值,數(shù)值越大,顏色越深。--------標(biāo)準(zhǔn)參數(shù)是 10 ')
w5 = Label(tk,text='步驟三:點(diǎn)擊確認(rèn) 運(yùn)行程序 等待出現(xiàn)提示')
w6 = Label(tk,text='步驟四:到輸入----圖片 文件夾找到素描圖')
w1.grid(row=0,column=0,sticky=W)
w.grid(row=1,column=0,sticky=W)
w2.grid(row=2,column=0,sticky=W)
w3.grid(row=3,column=0,sticky=W)
w4.grid(row=4,column=0,sticky=W)
w5.grid(row=5,column=0,sticky=W)
w6.grid(row=6,column=0,sticky=W)
l = Label(tk,text="輸入 0-100的數(shù)值")
l.grid(row=8,column=0,sticky=E)
## 用來顯示輸入框
e1 = Entry(tk)
e1.grid(row=10,column=0,sticky=E)
## 用來顯示Button
b = Button(tk,text='確定',command=images)
b.grid(row=12,column=0,sticky=E)
c = Label(tk,text="",background="yellow")
c.grid(row = 15)
# 啟動(dòng)消息主循環(huán)
tk.mainloop()
運(yùn)行效果:
這個(gè)程序我用pyinstaller做成exe文件了。
如何用tk封裝一裝圖片
語法如下imageobj = PhotoImage(file="xxx.gif")
1
1
請(qǐng)留意早期PhotoImage只支持GIF格式,現(xiàn)在已經(jīng)接受jpg和png了,為了使用方便將GIF圖片放在程序所在的文件夾中。
在標(biāo)簽中可以用image=imageobj參數(shù)設(shè)置此圖像對(duì)象
在這里插入圖片描述
實(shí)例代碼
#!usr/bin/env python3
# -*- coding: UTF-8 -*-
from tkinter import *
window = Tk()
window.title("添加gif")
html_gif = PhotoImage(file="小埋.gif")
label = Label(window, image = html_gif)
label.pack()
window.mainloop()
1
2
3
4
5
6
7
8
9
10
11
12
13
1
2
3
4
5
6
7
8
9
10
11
12
13
在這里插入圖片描述
添加jpg文件
如果要在標(biāo)簽內(nèi)顯示jpg需要借助PIL模塊的Image和ImageTk模塊,安裝pillow模塊
pip install pillow
1
1
引入模塊
from PIL import Image, ImageTk
1
1
找一個(gè)圖片
在這里插入圖片描述
這個(gè)圖片比較大,但是全屏應(yīng)該可以顯示了,代碼如下:
#coding: UTF-8
from tkinter import *
from PIL import Image, ImageTk
root = Tk()
root.title("使用pillow模塊插入jpg")
root.state("zoomed") #全屏
image = Image.open("Python.jpg")
pyt = ImageTk.PhotoImage(image)
label = Label(root, image=pyt)
label.pack()
root.mainloop()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
在這里插入圖片描述
文字與圖像共存
使用Label的compound參數(shù)讓文字與標(biāo)簽共存,compound參數(shù)設(shè)置圖像的位置。
compound參數(shù)可以是下列值
left:圖像在左
right:圖像在右
top:圖像在頂部
bottom:在下
center:文字覆蓋在圖像上方
實(shí)例:
#coding:UTF-8
from tkinter import *
root = Tk()
root.title("compound")
root.state("zoomed")
GText = """GitHub 是一個(gè)面向開源及私有軟件項(xiàng)目的托管平臺(tái),\n
因?yàn)橹恢С?Git 作為唯一的版本庫格式進(jìn)行托管,\n
故名 GitHub。"""
G_gif = PhotoImage(file='Github.jpg')
label = Label(root, text=GText, image = G_gif, bg='lightyellow',
compound="left", font=("simsun", 20))
label.pack()
root.mainloop()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
在這里插入圖片描述
文章知識(shí)點(diǎn)與官方知識(shí)檔案匹配
Python入門技能樹桌面應(yīng)用開發(fā)Tkinter
211518 人正在系統(tǒng)學(xué)習(xí)中
點(diǎn)擊閱讀全文 簡(jiǎn)單介紹利用TK在Python下進(jìn)行GUI編程的教程
我想要向您介紹能想像到的開始 GUI 編程的最簡(jiǎn)單方法,就是使用 Scriptics 的 TK 和 Tkinter 封裝器。我們將與 developerWorks 中的 “Python 中的 curses 編程” 提到的 curses 庫進(jìn)行很多比較。除了 curses 實(shí)現(xiàn)文本控制臺(tái)而 TK 實(shí)現(xiàn) GUI 這一差別之外,這兩個(gè)庫有著驚人相似的接口。在使用任何一個(gè)庫之前,需要基本了解窗口和事件循環(huán),并參考可用的窗口小部件。(好,好的參考和適量的練習(xí)。)
如同關(guān)于 curses 的文章,本文僅討論 Tkinter 本身的特性。既然很多 Python 發(fā)行版都帶有 Tkinter,因此可能無需下載支持庫或其它 Python 模塊。本文后面的 參考資料 指向幾個(gè)更高級(jí)別的用戶接口窗口小部件的集合,但是您可以用 Tkinter 本身做許多事,包括構(gòu)造自己的高級(jí)窗口小部件。學(xué)習(xí)基本 Tkinter 模塊將為您引入 TK 的思維方式,即使您繼續(xù)使用更高級(jí)的窗口小部件集合,這種思維方式仍十分重要。
TK 簡(jiǎn)要描述
TK 是與 TCL 語言關(guān)系最密切、且被廣泛使用的圖形庫,TCL 語言和 TK 都由 John Ousterhout 開發(fā)。雖然 TK 于 1991 年作為 X11 庫出現(xiàn),但實(shí)際上它從那時(shí)起就被移植到每一種流行的 GUI。(它與 Python 逐漸擁有“標(biāo)準(zhǔn)”GUI 的情形相似。)現(xiàn)在,大多數(shù)流行語言和很多小型語言都有 TK 綁定(Tkinter 模塊)。
在開始之前,我必須承認(rèn):我不是瘦小枯干的 TK 編程專家。事實(shí)上,我的大部分 TK 編程經(jīng)驗(yàn)大約從我寫這篇文章三天前才開始。那三天并非沒有挑戰(zhàn),但是最后我覺得很好地掌握了 Tkinter。我在這里要說的是:TK 和 Tkinter 封裝器設(shè)計(jì)得都非常好,便于用戶操作,并且只是關(guān)于 GUI 編程最簡(jiǎn)單的介紹。
從測(cè)試應(yīng)用程序開始
我們將使用 Txt2Html,這個(gè)在以前很多專欄(請(qǐng)參閱 參考資料 )中使用的文件格式轉(zhuǎn)換程序,的封裝器作為測(cè)試應(yīng)用程序。雖然可以用幾種方式運(yùn)行 Txt2Html,但這里的封裝器卻要從命令行運(yùn)行 Txt2Html。該應(yīng)用程序以批處理進(jìn)程的形式運(yùn)行,并帶有指出要執(zhí)行的轉(zhuǎn)換各方面特性的命令行自變量。(以后,最好為用戶提供交互式選擇屏幕選項(xiàng),以在執(zhí)行實(shí)際轉(zhuǎn)換之前引導(dǎo)用戶逐步選擇不同的轉(zhuǎn)換選項(xiàng)并提供所選選項(xiàng)的可視反饋。)
tk_txt2html 基于帶有下拉菜單和嵌套子菜單的頂部菜單。旁邊有詳細(xì)的實(shí)現(xiàn)說明,它看起來與在 “Python 中的 Curses 編程” 中討論的 curses 版本很相象。雖然 TK 用較少的代碼可以實(shí)現(xiàn)更多的功能,但很明顯,tk_txt2html 和 curses_txt2html 很相似。例如,在 TK 中,象菜單這樣的特性可以依靠?jī)?nèi)置的 Tkinter 類實(shí)現(xiàn),而無需從頭編寫。
除了設(shè)置配置選項(xiàng)之外,TK 封裝器還包括一個(gè)與 TK Text 窗口小部件一起構(gòu)建的滾動(dòng)幫助框(一個(gè)帶有 Message 窗口小部件的“關(guān)于”框)和一個(gè)進(jìn)行 TK 動(dòng)態(tài)幾何管理的歷史窗口。與大多數(shù)交互式應(yīng)用程序一樣,封裝器用 TK 的 Entry 窗口小部件接受某些用戶輸入。
在進(jìn)一步討論代碼之前,讓我們看一下實(shí)際運(yùn)行中的應(yīng)用程序。
201541390858446.gif (565×236)
學(xué)習(xí)基本知識(shí)
實(shí)際上,Tkinter 程序只需做三件事:
最小的 [Tkinter] 程序
import Tkinter # import the Tkinter module
root = Tkinter.Tk() # create a root window
root.mainloop() # create an event loop
這是一個(gè)完全有效的 Tkinter 程序(不要介意它沒有實(shí)際用處,因?yàn)樗踔敛还芾?"hello world")。該程序唯一需要做的是創(chuàng)建一些容納其根窗口的窗口小部件。這樣增強(qiáng)之后,無需程序員進(jìn)一步干涉,該程序的 root .mainloop() 方法調(diào)用就可以處理所有用戶交互。
main() 函數(shù)
現(xiàn)在,我們看一下 tk_txt2html.py 更現(xiàn)實(shí)的 main() 函數(shù)。請(qǐng)注意,我更喜歡使用 John Grayson 的 import Tkinter 語句,而不是 from Tkinter import (請(qǐng)參閱 參考資料 中所列的他的書籍)。這不是因?yàn)槲覔?dān)心名稱空間的干擾( from ... import 語句的通常警告),而是因?yàn)槲蚁朊鞔_使用 Tkinter 類;我不想冒險(xiǎn)將它們與我自己的函數(shù)和類相混淆)。建議您也這樣做,至少在開始時(shí)這樣做。
tk_txt2html main() 函數(shù)
def main():
global root, history_frame, info_line
root = Tkinter.Tk()
root.title('Txt2Html TK Shell')
init_vars()
#-- Create the menu frame, and menus to the menu frame
menu_frame = Tkinter.Frame(root)
menu_frame.pack(fill=Tkinter.X, side=Tkinter.TOP)
menu_frame.tk_menuBar(file_menu(), action_menu(), help_menu())
#-- Create the history frame (to be filled in during runtime)
history_frame = Tkinter.Frame(root)
history_frame.pack(fill=Tkinter.X, side=Tkinter.BOTTOM, pady=2)
#-- Create the info frame and fill with initial contents
info_frame = Tkinter.Frame(root)
info_frame.pack(fill=Tkinter.X, side=Tkinter.BOTTOM)
# first put the column labels in a sub-frame
LEFT, Label = Tkinter.LEFT, Tkinter.Label # shortcut names
label_line = Tkinter.Frame(info_frame, relief=Tkinter.RAISED, borderwidth=1)
label_line.pack(side=Tkinter.TOP, padx=2, pady=1)
Label(label_line, text="Run #", width=5).pack(side=LEFT)
Label(label_line, text="Source:", width=20).pack(side=LEFT)
Label(label_line, text="Target:", width=20).pack(side=LEFT)
Label(label_line, text="Type:", width=20).pack(side=LEFT)
Label(label_line, text="Proxy Mode:", width=20).pack(side=LEFT)
# then put the "next run" information in a sub-frame
info_line = Tkinter.Frame(info_frame)
info_line.pack(side=Tkinter.TOP, padx=2, pady=1)
update_specs()
#-- Finally, let's actually do all that stuff created above
root.mainloop()
在這個(gè)簡(jiǎn)單的 main() 函數(shù)中有幾件事要注意:
每一個(gè)窗口小部件都有一個(gè)父代。每當(dāng)創(chuàng)建窗口小部件時(shí),傳遞給實(shí)例創(chuàng)建的第一個(gè)自變量是新的窗口小部件的父代。
如果有其它窗口小部件創(chuàng)建自變量,將通過名稱傳遞它們。Python 的這一特性給我們以指定選項(xiàng)或允許它們?nèi)∪笔≈档臉O大靈活性。
有幾個(gè)窗口小部件實(shí)例 (Frame) 是全局變量??梢酝ㄟ^在函數(shù)間傳遞變量來使它們成為本地變量,以便維護(hù)代碼范圍的理論純潔性,但是與它的實(shí)際用處相比過于麻煩。另外,使這些基本的 UI 元素全局化強(qiáng)調(diào)了這樣一個(gè)事實(shí):它們可以在整個(gè)函數(shù)中使用。但是,要確保對(duì)自己的全局變量使用良好的命名規(guī)范。(事先給您一個(gè)警告,Python 人員看起來討厭匈牙利符號(hào)。)
創(chuàng)建完窗口小部件之后,我們調(diào)用一個(gè)幾何圖形管理器來讓 TK 知道在哪里放置窗口小部件。TK 在計(jì)算細(xì)節(jié)信息時(shí)有許多魔力,特別是當(dāng)調(diào)整窗口大小或動(dòng)態(tài)添加窗口小部件時(shí)更是如此。但是在任何情況下,都需要讓 TK 知道使用哪套咒語。
應(yīng)用幾何圖形管理器
TK 提供三個(gè)幾何圖形管理器: .pack() 、 .grid() 和 .place() 。雖然 .place() 可用于精細(xì)(換句話說,非常復(fù)雜)的控制,但 tk_txt2html 只使用頭兩個(gè)。大多數(shù)時(shí)候,您將使用 .pack() 。
當(dāng)然,可以不帶自變量來調(diào)用 .pack() 方法。但是如果那樣做,窗口小部件可能會(huì)在顯示屏幕的某處結(jié)束,您可能也想為 .pack() 提供一些提示。這些提示中最重要的是 side 自變量??赡艿闹凳?LEFT、RIGHT、TOP 和 BOTTOM(請(qǐng)注意這些是 Tkinter 名稱空間中的變量)。
.pack() 的許多魔力來自可以將窗口小部件嵌套這一事實(shí)。特別的,除了作為其它窗口小部件的容器(它有時(shí)顯示不同類型的邊界)之外,F(xiàn)rame 窗口小部件幾乎不作什么。這樣,就可以很方便地在所希望的方向排列幾個(gè)框架,然后在每個(gè)框架中添加其它窗口小部件。按照調(diào)用框架(以及其它窗口小部件)的 .pack() 方法的順序來排列它們。因此,如果兩個(gè)窗口小部件都請(qǐng)求 side=TOP ,則滿足先進(jìn)入的請(qǐng)求。
tk_txt2html 還偶爾使用 .grid() 。grid 幾何圖形管理器用可視的坐標(biāo)線覆蓋父代窗口小部件。當(dāng)窗口小部件調(diào)用 .grid(row=3, column=4) 時(shí),它請(qǐng)求其父代將它放在第三行第四列上。通過查看父代的所有子代的請(qǐng)求來計(jì)算父代的總行數(shù)和總列數(shù)。
別忘了對(duì)自己的窗口小部件應(yīng)用幾何圖形管理器,以免在顯示屏幕上看不到它們時(shí)后悔莫及。
在哪里可以找到tk的文章
在嗶哩嗶哩可以找到tk的文章。tk文章(5) - 嗶哩嗶哩:不知他從哪里知道天越害怕?lián)习W癢,所以他管理的那一支小隊(duì)就是針對(duì)你和天越,里面是tk的狂熱愛好者和嚴(yán)格篩選出來的tk高手。
以上就是關(guān)于tk文章生成器相關(guān)問題的回答。希望能幫到你,如有更多相關(guān)問題,您也可以聯(lián)系我們的客服進(jìn)行咨詢,客服也會(huì)為您講解更多精彩的知識(shí)和內(nèi)容。
推薦閱讀:
bt磁力天堂-最佳磁力搜索引擎(torrentkitty磁力天堂)
botk飛機(jī)收不到驗(yàn)證碼(機(jī)場(chǎng)收不到驗(yàn)證碼)
兩部手機(jī)登錄同一微信(兩部手機(jī)登錄同一微信號(hào),運(yùn)動(dòng)如何記錄)
室內(nèi)景觀設(shè)計(jì)賺錢嗎現(xiàn)在(景觀設(shè)計(jì)賺錢還是室內(nèi)設(shè)計(jì)賺錢)