最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python基礎(chǔ)學(xué)習(xí)之奇異的GUI對(duì)話框

 更新時(shí)間:2021年05月27日 15:16:30   作者:weixin_41670255  
今天跨進(jìn)了GUI編程的園地,才發(fā)現(xiàn)python語言是這么的好玩,文中對(duì)GUI對(duì)話框作了非常詳細(xì)的介紹,對(duì)正在學(xué)習(xí)python的小伙伴們有很好的幫助,需要的朋友可以參考下

一、漂亮的標(biāo)簽圖和按鈕圖

這個(gè)標(biāo)簽的設(shè)置config,如果熟悉office的操作,應(yīng)該是一件不太難的事情。仿照文本的字體,顏色,字號(hào),還有標(biāo)簽的高度寬度等等,做一個(gè)標(biāo)簽的仿本py文件如下:
文件在我的pywenjianjia之下。

from tkinter import *
root = Tk()
labelfont = ('times', 28, 'bold')
widget = Label(root, text='Hello tkinter world, I came here!')
widget.config(bg='black', fg='yellow')
widget.config(font=labelfont)
widget.config(height=5, width=40)
widget.pack(expand=YES, fill=BOTH)
root.mainloop()

在atom的packages中點(diǎn)python runner執(zhí)行這個(gè)文件,于是就出現(xiàn)

在這里插入圖片描述

如果你想做個(gè)還有點(diǎn)動(dòng)態(tài)的按鈕圖片,可以使用button.py文件,也是來一個(gè)仿制的py文件。

在from tkinter import *
widget = Button(text='BUTTON', padx=20, pady=20)
widget.pack(padx=30, pady=30)
widget.config(cursor='gumby')
widget.config(bd=8, relief=RAISED)
widget.config(bg='dark green', fg='white')
widget.config(font=('helvetica', 24, 'underline italic'))
mainloop()

在atom的packages中點(diǎn)python runner執(zhí)行這個(gè)文件,于是就出現(xiàn):
一個(gè)漂亮的、彩色的、而且可按動(dòng)的按鈕圖片。

在這里插入圖片描述

二、窗口協(xié)議與窗口頂層

早年寫那本《創(chuàng)新思維》教材時(shí),學(xué)習(xí)visio畫圖花了點(diǎn)功夫,那時(shí)佩服visio軟件在平面上的分層功夫。也就一個(gè)只給你平面感的屏幕,卻可以畫出很多奇奇怪怪的東西,還可以一層一層地疊放,并配置以不同的色彩。編程學(xué)到這里,過去那種怪怪的感覺因?yàn)檫@么多年計(jì)算機(jī)技術(shù)的不斷升級(jí),好多讓你奇異的東西,早被更多超越給沖淡了。但你還是要為接觸GUI的圖片來一點(diǎn)驚喜感,而且還讓你知道,這個(gè)魔幻平面的屏幕,還有相應(yīng)的協(xié)議在發(fā)揮作用。我原以為,這個(gè)協(xié)議稱為協(xié)議,一定有個(gè)協(xié)議各方的約定,是個(gè)超越GUI之外的東西呢,原來也是一個(gè)py代碼的GUI文件。
而且,這個(gè)文件還有一個(gè)怪異,按照教材中的安排,你想去執(zhí)行它,文件就顯示有誤。但試探著種種辦法好像依然有誤?;乜唇滩奈谋荆诖翱趫D標(biāo)那一節(jié)似乎有個(gè)暗示,干脆去掉那個(gè)iconbitmap代碼行,也就是去掉那個(gè)18行代碼,文件就可以執(zhí)行了。

展示文件的注釋有點(diǎn)協(xié)議文本的味道,這大概就是協(xié)議的主要內(nèi)容吧。我先給出總共28行的代碼文件。

"""
彈出三個(gè)窗口,destroy()會(huì)停止一個(gè)窗口,quit()則停止所有窗口.
頂層窗口有標(biāo)題、圖標(biāo)、協(xié)議等等,總是會(huì)有一個(gè)應(yīng)用程序窗口。頂
層窗口都是容器,但不會(huì)封裝/網(wǎng)格化。toplevel就像frame,它是新
窗口且包含一個(gè)菜單。
"""
from tkinter import *
root = Tk()    #顯示根窗口

trees = [('The tkinter 之旅!',        'light blue'),
        ('The Paint!',          'light green'),
        ('The Giant wetearth !', 'red')]

for(tree, color) in trees:
    win = Toplevel(root)                              #新建窗口
    win.title('Sing...')                              #設(shè)置邊框
    win.protocol('WM_DELETE_WINDOW', lambda:None)     #忽略關(guān)閉
    win.iconbitmap('py-blue-trans-out.ico')           #非紅色Tk,有這一行則不運(yùn)行

    msg = Button(win, text=tree, command=win.destroy) #關(guān)閉一個(gè)win
    msg.pack(expand=YES, fill=BOTH)
    msg.config(padx=10, pady=10, bd=10, relief=RAISED)
    msg.config(bg='black', fg=color, font=('times', 30, 'bold italic'))

root.title('Lumberjack demo')
Label(root, text='Main window', width=30).pack()
Button(root, text='Quit All', command=root.quit).pack() #終止所有程序
root.mainloop()

執(zhí)行這個(gè)文件,出現(xiàn)以下結(jié)果:

Traceback (most recent call last):
  File "C:\Users\zzx21\GUI\Tour\toplevel2.py", line 18, in <module>
    win.iconbitmap('py-blue-trans-out.ico')           #非紅色Tk,有這一行則不運(yùn)行
  File "C:\Users\zzx21\pywenjianjia\lib\tkinter\__init__.py", line 2080, in wm_iconbitmap
    return self.tk.call('wm', 'iconbitmap', self._w, bitmap)
_tkinter.TclError: bitmap "py-blue-trans-out.ico" not defined

C:\Users\zzx21\GUI\Tour>

現(xiàn)在去掉行18,三個(gè)窗口按鈕全出現(xiàn)了,還外帶一個(gè)quit圖標(biāo)。使用shell的移動(dòng)提示符,這些文件可以移動(dòng)到屏幕上你想放置的地方,有點(diǎn)意思。

在這里插入圖片描述

三、標(biāo)準(zhǔn)對(duì)話框是模態(tài)對(duì)話框

計(jì)算機(jī)語言也常常使用邏輯學(xué)的一些術(shù)語,tkinter之旅中講到的對(duì)話框,竟然有模態(tài)對(duì)話框和非模態(tài)對(duì)話框之說。這好像在拉近py語言和邏輯之間的距離,讓人有一點(diǎn)緣分之感。你只要對(duì)現(xiàn)代邏輯歷史稍有理解就知道,20世紀(jì)初成熟的現(xiàn)代邏輯,到了20年代,出現(xiàn)了和經(jīng)典邏輯有點(diǎn)變異的邏輯,那就是非經(jīng)典的模態(tài)邏輯,美國(guó)學(xué)者C.I.劉易斯構(gòu)造了嚴(yán)格蘊(yùn)涵系統(tǒng)的S1-S5,現(xiàn)在所說的模態(tài)邏輯就產(chǎn)生了,學(xué)名就叫modal logic。而對(duì)話框中提到的模態(tài)對(duì)話框與非模態(tài)對(duì)話框中的模態(tài)一詞的英文,就是這個(gè)modal。但深入一點(diǎn),好像這里的模態(tài)modal和邏輯的modal并沒有什么關(guān)聯(lián),只是在用詞上的一個(gè)巧合吧。
沿著教材的思路,先把標(biāo)準(zhǔn)對(duì)話框做個(gè)基本了解,大概能說明這種巧合。
標(biāo)準(zhǔn)對(duì)話框也稱通用對(duì)話框,這樣的對(duì)話框也是模態(tài)的。這里modal的意思是:這樣的對(duì)話框會(huì)阻止其它界面,這些界面只有在用戶關(guān)閉該對(duì)話框的時(shí)候才可能返回。所以,所謂標(biāo)準(zhǔn)對(duì)話框或者模態(tài)對(duì)話框,只要它在屏幕上出現(xiàn),就把其它的窗口界面給強(qiáng)制擋住了。為什么這就是modal的,按我對(duì)于modal的理解,好像一點(diǎn)modal的含義都沒有。因?yàn)檫壿嬛械哪B(tài)總是指的互為定義的模態(tài)詞,例如必然與可能,應(yīng)該與禁止等等,好像沒有這里的行為意義。且讓我們用實(shí)例的模態(tài)對(duì)話框,來表明它的含義吧。雖然modal在這里的含義有點(diǎn)模糊,但實(shí)例的出現(xiàn)會(huì)消解我們對(duì)它的迷惑。很可能python中的模態(tài)和邏輯的模態(tài)就不是一回事,一種語詞使用的巧合罷了。
標(biāo)準(zhǔn)對(duì)話框dIg1.pyw,

from tkinter import *
from tkinter.messagebox import *

def callback():
    if askyesno('Verify', 'Do you really want to quit?'):
        showwarning('Yes', 'Quit not yet implemented')
    else:
        showinfo('No', 'Quit has been cancellled')

errmsg = 'Sorry, no Spam allowed!'
Button(text='退出', command=callback).pack(fill=X)
Button(text='垃圾', command=(lambda: showerror('Spam', errmsg))).pack(fill=X)
mainloop()

我用中文按鈕替換英文按鈕,出現(xiàn)了中文的對(duì)話框。這些對(duì)話框按鈕是可以按動(dòng)然后給出選擇的,如下兩圖。
按退出有如下選擇

在這里插入圖片描述

按垃圾有如下選擇

在這里插入圖片描述

四、標(biāo)準(zhǔn)對(duì)話框的多欄使用

先做出一個(gè)回調(diào)演示表的py文件,它可以作為模塊反復(fù)使用,這就使得對(duì)話框的制作多樣化起來。我依然把這些對(duì)話框的按鈕用中文標(biāo)識(shí),然后再做一個(gè)多重的按鈕欄文件,于是你看到一個(gè)更多功能的對(duì)話框圖。一個(gè)可以打開文件,選擇顏色,輸入字符等等的對(duì)話框。把所有代碼的功能全都理解清楚,還沒有到火候,但終于可以照葫蘆畫瓢地把這些圖框及其作用顯示出來了。
演示按鈕集合的py文件demoDIg.py

from tkinter import *
from dialogTable import demos
from quitter import Quitter

class Demo(Frame):
    def __init__(self, parent=None, **options):
        Frame.__init__(self, parent, **options)
        self.pack()
        Label(self, text='Basic demos').pack()
        for (key, value) in demos.items():
            Button(self, text=key, command=value).pack(side=TOP, fill=BOTH)
        Quitter(self).pack(side=TOP, fill=BOTH)

if __name__=='__main__': Demo().mainloop()

執(zhí)行這個(gè)文件,于是出現(xiàn)按鈕欄對(duì)話框

在這里插入圖片描述

如果點(diǎn)打開按鈕,則打開了window的文檔文件

在這里插入圖片描述

如果點(diǎn)擊顏色,則可在顏色框中選擇顏色。

在這里插入圖片描述

如果點(diǎn)擊輸入,則可在輸入框中按要求輸入數(shù)字。

在這里插入圖片描述

這個(gè)對(duì)話框的初步理解,頗有點(diǎn)開人眼界。作為計(jì)算機(jī)科學(xué)中的python語言,真有超越自然語言的諸多功能。沖著這一點(diǎn),這個(gè)編程語言再難,也得一點(diǎn)一點(diǎn)地堅(jiān)持學(xué)下去。

到此這篇關(guān)于Python基礎(chǔ)學(xué)習(xí)之奇異的GUI對(duì)話框的文章就介紹到這了,更多相關(guān)Python GUI對(duì)話框內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python如何實(shí)現(xiàn)郵件功能

    Python如何實(shí)現(xiàn)郵件功能

    在本篇文章里小編給大家分享的是關(guān)于Python實(shí)現(xiàn)郵件功能的方法,有需要的朋友們可以學(xué)習(xí)參考下。
    2020-05-05
  • Python post請(qǐng)求實(shí)現(xiàn)代碼實(shí)例

    Python post請(qǐng)求實(shí)現(xiàn)代碼實(shí)例

    這篇文章主要介紹了Python post請(qǐng)求實(shí)現(xiàn)代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02
  • Python Tkinter圖形工具使用方法及實(shí)例解析

    Python Tkinter圖形工具使用方法及實(shí)例解析

    這篇文章主要介紹了Python Tkinter圖形工具使用方法及實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • Python連接PostgreSQL數(shù)據(jù)庫(kù)并查詢數(shù)據(jù)的詳細(xì)指南

    Python連接PostgreSQL數(shù)據(jù)庫(kù)并查詢數(shù)據(jù)的詳細(xì)指南

    在現(xiàn)代軟件開發(fā)中,數(shù)據(jù)庫(kù)是存儲(chǔ)和檢索數(shù)據(jù)的核心組件,PostgreSQ是一個(gè)功能強(qiáng)大的開源對(duì)象關(guān)系數(shù)據(jù)庫(kù)系統(tǒng),它以其穩(wěn)定性、強(qiáng)大的功能和靈活性而聞名,Python作為一種流行的編程語言,與PostgreSQL的結(jié)合使用非常廣泛,本文介紹了Python連接PostgreSQL數(shù)據(jù)庫(kù)并查詢數(shù)據(jù)
    2024-12-12
  • 學(xué)點(diǎn)簡(jiǎn)單的Django之第一個(gè)Django程序的實(shí)現(xiàn)

    學(xué)點(diǎn)簡(jiǎn)單的Django之第一個(gè)Django程序的實(shí)現(xiàn)

    這篇文章主要介紹了學(xué)點(diǎn)簡(jiǎn)單的Django之第一個(gè)Django程序的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • Python logging管理不同級(jí)別log打印和存儲(chǔ)實(shí)例

    Python logging管理不同級(jí)別log打印和存儲(chǔ)實(shí)例

    這篇文章主要介紹了Python logging管理不同級(jí)別log打印和存儲(chǔ)實(shí)例,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-01-01
  • pycharm如何中導(dǎo)入本地下載好的庫(kù)

    pycharm如何中導(dǎo)入本地下載好的庫(kù)

    這篇文章主要介紹了pycharm如何中導(dǎo)入本地下載好的庫(kù)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • Python實(shí)現(xiàn)錄屏功能的示例代碼

    Python實(shí)現(xiàn)錄屏功能的示例代碼

    這篇文章主要為大家詳細(xì)介紹了如何利用Python實(shí)現(xiàn)錄屏功能,文中的示例代碼講解詳細(xì),對(duì)我們掌握Python開發(fā)有一定的幫助,需要的可以參考一下
    2023-03-03
  • 利用Pandas實(shí)現(xiàn)對(duì)數(shù)據(jù)進(jìn)行移動(dòng)計(jì)算

    利用Pandas實(shí)現(xiàn)對(duì)數(shù)據(jù)進(jìn)行移動(dòng)計(jì)算

    這篇文章主要為大家詳細(xì)介紹了如何利用Pandas實(shí)現(xiàn)對(duì)數(shù)據(jù)進(jìn)行移動(dòng)計(jì)算,文中的示例代碼講解詳細(xì),對(duì)我們了解Pandas有一定幫助,需要的可以參考一下
    2022-07-07
  • python的多線程原來可以這樣解

    python的多線程原來可以這樣解

    這篇文章主要為大家介紹了python的多線程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-01-01

最新評(píng)論

平罗县| 双江| 新宾| 黑龙江省| 岳普湖县| 揭西县| 育儿| 二手房| 诸城市| 张家口市| 阿坝| 开化县| 方山县| 元阳县| 南康市| 岚皋县| 武城县| 沙田区| 曲沃县| 图木舒克市| 高雄县| 赤城县| 靖江市| 烟台市| 新乐市| 常山县| 罗田县| 会东县| 塘沽区| 长汀县| 义马市| 宜丰县| 金坛市| 霍林郭勒市| 巴彦县| 大安市| 新巴尔虎左旗| 阳谷县| 临泉县| 鱼台县| 德州市|