Python DearPyGui之三:粗識(shí)GUI編程

名稱解釋:GUI編程---用戶圖形界面編程。

很多教程在hello world后树枫,就開始介紹語(yǔ)法啦直焙、組件啦、啥啥啦之類的玩意兒砂轻。
說(shuō)實(shí)話奔誓,我就特?zé)┻@種教程。麻蛋的老子啥都不懂搔涝,說(shuō)一堆破玩意兒丝里,一點(diǎn)意思都沒(méi)有。
如果我能寫一段代碼体谒,一試就有效果的杯聚,程序能響應(yīng)我的操作的,那多有意思抒痒?
我們寫界面幌绍,其實(shí)就是一個(gè)目的:我點(diǎn)擊,程序反應(yīng)故响。
這個(gè)過(guò)程傀广,在C#中叫做“事件”,在DearPyGui中彩届,叫做“回調(diào)”伪冰。
老規(guī)矩:上圖、上代碼樟蠕,上解釋(這段代碼中有幾個(gè)點(diǎn)需要解釋一下贮聂,否則會(huì)迷糊)

需求:一段文字(Text)靠柑,一個(gè)按鈕(Button)。點(diǎn)擊按鈕后吓懈,文字變化歼冰、顏色變化

一、上圖

作者懶得命名.png
作者真的很懶的.png

2耻警、代碼

with dpg.window(label='test_dearpygui_hello_world', width=400, height=100,
                pos=(20, 20)):
    # 增加一個(gè)文本控件(組件隔嫡,想叫啥名自己選),用來(lái)顯示文本
    # default_value 文本的初始字符串
    dpg.add_text(label='mytxt', default_value='Hello World', tag='txt')

    # 回調(diào)函數(shù)(你可以簡(jiǎn)單理解為事件)
    def changetxt():
        # 更改文本的字符串
        dpg.set_value('txt', 'Happy Chinese New Year')
        # 更改文本的顏色
        dpg.configure_item('txt', color=(255, 0, 0))
    # 增加一個(gè)按鈕
    dpg.add_button(label='Change_text', callback=changetxt)

三甘穿、解釋(說(shuō)給GUI新人小白聽的腮恩,老鳥可飄過(guò))

按照一般的編程語(yǔ)言設(shè)定(例如C#)笋庄,一個(gè)組件(控件)有以下兩個(gè)重要的東西:

1囊拜、屬性

比如text組件,屬性有:初始文字(default_value)义矛、文字的顏色(color)妨托,組件的位置(pos)缸榛,組件是否顯示(show)等等。

2兰伤、事件(方法内颗、回調(diào))

比如Button組件,最常用的事件就是Click(單擊)敦腔。當(dāng)然還有類似:Double_Click(雙擊)之類的均澳。
屬性主要負(fù)責(zé)顯示出來(lái)的樣式,事件主要負(fù)責(zé)執(zhí)行的操作符衔。
就比如你現(xiàn)在手中的鍵盤
屬性:鍵盤的顏色找前、鍵盤上有多少鍵、鍵盤的材質(zhì)……
事件:點(diǎn)擊‘A’后判族,會(huì)輸出‘A’這個(gè)字符……
屬性和事件共同滿足了界面的所有需求(像不像在定義一個(gè)“類”躺盛?嘿嘿~)。

在DearPyGui中屬性在創(chuàng)建組件時(shí)就可以設(shè)置了形帮,例如:

dpg.add_text(label='mytxt', default_value='Hello World', tag='txt')

這里的label槽惫、default_value、tag都是屬性辩撑。當(dāng)然 界斜,也可以通過(guò)其它方式來(lái)設(shè)置,后面我會(huì)介紹到合冀,這里我們就不展開了各薇。
text組件所有的屬性如下圖:


text組件的屬性.png

這些屬性大家自己看看、試試就知道了【桑現(xiàn)在只重點(diǎn)講3個(gè)屬性:

1峭判、default_value

default_value:在text組件被初始化(創(chuàng)建)的時(shí)候顯示的文字开缎。

2、label

label:將組件的用途給用戶看的朝抖。
上面代碼中text組件啥箭,因?yàn)樗约壕褪秋@示文字的谍珊,所以它的label屬性是默認(rèn)不顯示的(當(dāng)然可以通過(guò)更改show屬性來(lái)顯示出來(lái)治宣,這里就不介紹了)。
但對(duì)一些組件砌滞,label最好能夠顯示侮邀。比如用戶名和密碼輸入框:

懶得命名.png

如果不顯示,使用人就搞不懂這個(gè)輸入框的用途贝润。

3绊茧、tag(標(biāo)簽)

tag:唯一標(biāo)識(shí)符,不顯示打掘,不允許重復(fù)华畏。
這玩意兒是干嘛滴?它與label有啥區(qū)別尊蚁?
如果說(shuō)label是人的名字(允許重復(fù)),tag就相當(dāng)于身份證號(hào)亡笑,不允許重復(fù)。
它是用來(lái)讓程序能定位組件(控件)的横朋。
舉個(gè)栗子:
label:老師在課堂上吼叫:“張三仑乌,滾出教室去”,下面一堆張三都跑出去了琴锭。
tag:老師在課堂上吼叫:“身份證號(hào)是ABC的滾出去”晰甚,下面身份證號(hào)是ABC的的張三灰溜溜的就滾出去了,其余的張三則可以泰然的坐著偷笑决帖。
栗子吃了厕九,咱就上代碼看。
需求:點(diǎn)擊按鈕地回,殺死日本人

    dpg.add_input_text(label='JP', default_value='Japanese', tag='xiaoriben')
    dpg.add_input_text(label='CN', default_value='Chinese', tag='zhongguoren')
    def kill():
        dpg.set_value(item='xiaoriben', value='kill Japanese')
    dpg.add_button(label='kill Japanese', callback=kill)

當(dāng)點(diǎn)擊按鈕時(shí)扁远,tag為'xiaoriben'的輸入框,變成kill Japanese落君。


image.png

image.png

看到?jīng)]穿香?我們是通過(guò)tag來(lái)定位組件的,而不是通過(guò)label绎速。

好了皮获。本章我們粗略學(xué)習(xí)了GUI編程,以及GUI編程中必然要涉及的屬性事件這倆玩意兒纹冤。
(事件在DearPyGui中的名稱是回調(diào)洒宝,其實(shí)就是換個(gè)名字罷了购公,沒(méi)啥大不了的,本章以后我們就叫回調(diào)了哈)雁歌。
再次總結(jié)一下:
屬性:控制控件的顯示樣式宏浩、初始值
回調(diào):實(shí)現(xiàn)控件的用途

我剛開始自學(xué)GUI的時(shí)候,差點(diǎn)沒(méi)讓這倆玩意兒搞死靠瞎。真心希望通過(guò)我以上比較粗淺(俗)的語(yǔ)言比庄,讓GUI編程的新手小白們能夠在這方面少走彎路吧。
如果您是剛開始接觸GUI編程乏盐,建議上手玩一玩佳窑。挺有意思的。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末父能,一起剝皮案震驚了整個(gè)濱河市神凑,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌何吝,老刑警劉巖溉委,帶你破解...
    沈念sama閱讀 207,248評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異爱榕,居然都是意外死亡瓣喊,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門呆细,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)型宝,“玉大人,你說(shuō)我怎么就攤上這事絮爷∨亢ǎ” “怎么了?”我有些...
    開封第一講書人閱讀 153,443評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵坑夯,是天一觀的道長(zhǎng)岖寞。 經(jīng)常有香客問(wèn)我,道長(zhǎng)柜蜈,這世上最難降的妖魔是什么仗谆? 我笑而不...
    開封第一講書人閱讀 55,475評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮淑履,結(jié)果婚禮上隶垮,老公的妹妹穿的比我還像新娘。我一直安慰自己秘噪,他們只是感情好狸吞,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,458評(píng)論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般蹋偏。 火紅的嫁衣襯著肌膚如雪便斥。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,185評(píng)論 1 284
  • 那天威始,我揣著相機(jī)與錄音枢纠,去河邊找鬼。 笑死黎棠,一個(gè)胖子當(dāng)著我的面吹牛晋渺,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播葫掉,決...
    沈念sama閱讀 38,451評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼些举,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼跟狱!你這毒婦竟也來(lái)了俭厚?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,112評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤驶臊,失蹤者是張志新(化名)和其女友劉穎挪挤,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體关翎,經(jīng)...
    沈念sama閱讀 43,609評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡扛门,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,083評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了纵寝。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片论寨。...
    茶點(diǎn)故事閱讀 38,163評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖爽茴,靈堂內(nèi)的尸體忽然破棺而出葬凳,到底是詐尸還是另有隱情,我是刑警寧澤室奏,帶...
    沈念sama閱讀 33,803評(píng)論 4 323
  • 正文 年R本政府宣布火焰,位于F島的核電站,受9級(jí)特大地震影響胧沫,放射性物質(zhì)發(fā)生泄漏昌简。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,357評(píng)論 3 307
  • 文/蒙蒙 一绒怨、第九天 我趴在偏房一處隱蔽的房頂上張望纯赎。 院中可真熱鬧,春花似錦南蹂、人聲如沸犬金。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)佑附。三九已至樊诺,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間音同,已是汗流浹背词爬。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留权均,地道東北人顿膨。 一個(gè)月前我還...
    沈念sama閱讀 45,636評(píng)論 2 355
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像叽赊,于是被迫代替她去往敵國(guó)和親恋沃。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,925評(píng)論 2 344

推薦閱讀更多精彩內(nèi)容