Tkinter 控制項詳細介紹

来源:http://www.cnblogs.com/alan-babyblog/archive/2016/02/18/5197480.html
-Advertisement-
Play Games

Tkinter 控制項詳細介紹 1.Button 按鈕。類似標簽,但提供額外的功能,例如滑鼠掠過、按下、釋放以及鍵盤操作/事件 2.Canvas 畫布。提供繪圖功能(直線、橢圓、多邊形、矩形) ;可以包含圖形或點陣圖 3.Checkbutton 選擇按鈕。一組方框,可以選擇其中的任意個(類似 HTML



Tkinter 控制項詳細介紹

 

1.Button 按鈕。類似標簽,但提供額外的功能,例如滑鼠掠過、按下、釋放以及鍵盤操作/事件

2.Canvas 畫布。提供繪圖功能(直線、橢圓、多邊形、矩形) ;可以包含圖形或點陣圖

3.Checkbutton 選擇按鈕。一組方框,可以選擇其中的任意個(類似 HTML 中的 checkbox)

4.Entry 文本框。單行文字域,用來收集鍵盤輸入(類似 HTML 中的 text)

5.Frame 框架。包含其他組件的純容器

6.Label 標簽。用來顯示文字或圖片

7.Listbox 列表框。一個選項列表,用戶可以從中選擇

8.Menu 菜單。點下菜單按鈕後彈出的一個選項列表,用戶可以從中選擇

9.Menubutton 菜單按鈕。用來包含菜單的組件(有下拉式、層疊式等等)

10.Message 消息框。類似於標簽,但可以顯示多行文本

11.Radiobutton 單選按鈕。一組按鈕,其中只有一個可被“按下” (類似 HTML 中的 radio)

12.Scale 進度條。線性“滑塊”組件,可設定起始值和結束值,會顯示當前位置的精確值

13.Scrollbar 滾動條。對其支持的組件(文本域、畫布、列表框、文本框)提供滾動功能

14.Text 文本域。 多行文字區域,可用來收集(或顯示)用戶輸入的文字(類似 HTML 中的 textarea)

15.Toplevel 頂級。類似框架,但提供一個獨立的視窗容器。


Tkinter支持15個核心的視窗部件,這個15個核心視窗部件類列表如下:

視窗部件及說明:

Button:
一個簡單的按鈕,用來執行一個命令或別的操作。

Canvas:
組織圖形。這個部件可以用來繪製圖表和圖,創建圖形編輯器,實現定製視窗部件。

Checkbutton:
代表一個變數,它有兩個不同的值。點擊這個按鈕將會在這兩個值間切換。

Entry:
文本輸入域。

Frame:
一個容器視窗部件。幀可以有邊框和背景,當創建一個應用程式或dialog(對話)版面時,幀被用來組織其它的視窗部件。

Label:
顯示一個文本或圖象。

Listbox:
顯示供選方案的一個列表。listbox能夠被配置來得到radiobutton或checklist的行為。

Menu:
菜單條。用來實現下拉和彈出式菜單。

Menubutton:
菜單按鈕。用來實現下拉式菜單。

Message:
顯示一文本。類似label視窗部件,但是能夠自動地調整文本到給定的寬度或比率。

Radiobutton:
代表一個變數,它可以有多個值中的一個。點擊它將為這個變數設置值,並且清除與這同一變數相關的其它radiobutton。

Scale:
允許你通過滑塊來設置一數字值。

Scrollbar:
為配合使用canvas, entry, listbox, and text視窗部件的標準滾動條。

Text:
格式化文本顯示。允許你用不同的樣式和屬性來顯示和編輯文本。同時支持內嵌圖象和視窗。

Toplevel:
一個容器視窗部件,作為一個單獨的、最上面的視窗顯示。

註意在Tkinter中視窗部件類沒有分級;所有的視窗部件類在樹中都是兄弟。

所有這些視窗部件提供了Misc和幾何管理方法、配置管理方法和部件自己定義的另外的方法。此外,Toplevel類也提供視窗管理介面。這意味一個典型的視窗部件類提供了大約150種方法。

Button視窗部件

Button(按鈕)視窗部件是一個標準的Tkinter視窗部件,用來實現各種按鈕。按鈕能夠包含文本或圖象,並且你能夠將按鈕與一個Python函數或方法相關聯。當這個按鈕被按下時,Tkinter自動調用相關聯的函數或方法。

按鈕僅能顯示一種字體,但是這個文本可以跨行。另外,這個文本中的一個字母可以有下劃線,例如標明一個快捷鍵。預設情況,Tab鍵用於將焦點移動到一個按鈕部件。

一、那麼什麼時候用按鈕部件呢?

簡而言之,按鈕部件用來讓用戶說“馬上給我執行這個任務”,通常我們用顯示在按鈕上的文本或圖象來提示。按鈕通常用在工具條中或應用程式視窗中,並且用來接收或忽略輸入在對話框中的數據。

關於按鈕和輸入的數據的配合,可以參看Checkbutton和Radiobutton部件。

二、樣式

普通的按鈕很容易被創建,僅僅指定按鈕的內容(文本、點陣圖、圖象)和一個當按鈕被按下時的回調函數即可:
b = Button(master, text="OK", command=self.ok)

沒有回調函數的按鈕是沒有用的,當你按下這個按鈕時它什麼也不做。你可能在開發一個應用程式的時候想實現這種按鈕,比如為了不幹擾你的beta版的測試者:
b = Button(master, text="Help", state=DISABLED)

如 果你沒有指定尺寸,按鈕的大小將正好能夠容納它的內容。你可以用padx和pady選項來增加內容與按鈕邊框的間距。你也可以用height和width 選項來顯式地設置按鈕的尺寸。如果你在按鈕中顯示文本,那麼這些選項將以文本的單位為定義按鈕的尺寸。如果你替而代之顯示圖象,那麼按鈕的尺寸將是象素 (或其它的屏幕單位)。你實際上甚至能夠用象素單位來定義文本按鈕的尺寸,但這可能帶來意外的結果。下麵是指定尺寸的一段例子代碼:
f = Frame(master, height=32, width=32)
f.pack_propagate(0) # don't shrink
b = Button(f, text="Sure!")
b.pack(fill=BOTH, expand=1)

按鈕能夠顯示多行文本(但只能用一種字體)。 你可以使用多行或wraplength選項來使按鈕自己調整文本。當調整文本時,使用anchor,justify,也可加上padx選項來得到你所希望的格式。一個例子如下:
b = Button(master, text=longtext, anchor=W, justify=LEFT, padx=2)

為了使一個普通的按鈕看起來像凹入的,例如你想去實現某種類型的工具框,你可簡單地將relief的值從"RAISED"改變為"SUNKEN:
b.config(relief=SUNKEN)

你也可能想改變背景。註意:一個大概更好的解決方案是使用一個Checkbutton或Radiobutton其indicatoron選項的值設置為false:
b = Checkbutton(master, image=bold, variable=var, indicatoron=0)

三、方法

Button視窗部件支持標準的Tkinter視窗部件介面,加上下麵的方法:

flash():頻繁重畫按鈕,使其在活動和普通樣式下切換。

invoke() :調用與按鈕相關聯的命令。

下麵的方法與你實現自己的按鈕綁定有關:

tkButtonDown(), tkButtonEnter(), tkButtonInvoke(), tkButtonLeave(), tkButtonUp()
這些方法可以用在定製事件綁定中,所有這些方法接收0個或多個形參。

四、選項

Button視窗部件支持下麵的選項:

activebackground, activeforeground
類型:顏色;
說明:當按鈕被激活時所使用的顏色。

anchor
類型:常量;
說明:控制按鈕上內容的位置。使用N, NE, E, SE, S, SW, W, NW, or CENTER這些值之一。預設值是CENTER。

background (bg), foreground (fg)
類型:顏色;
說明:按鈕的顏色。預設值與特定平臺相關。

bitmap
類型:點陣圖;
說 明:顯示在視窗部件中的點陣圖。如果image選項被指定了,則這個選項被忽略。下麵的點陣圖在所有平臺上都有 效:error, gray75, gray50, gray25, gray12, hourglass, info, questhead, question, 和 warning.
Tkinter類之視窗部件類
這 後面附加的點陣圖僅在Macintosh上有 效:document, stationery, edition, application, accessory, folder, pfolder, trash, floppy, ramdisk, cdrom, preferences, querydoc, stop, note, 和 caution.

你也可以從一個XBM文件中裝載點陣圖。只需要在XBM文件名前加一個首碼@,例如"@sample.xbm"。

borderwidth (bd)
類型:整數;
說明:按鈕邊框的寬度。預設值與特定平臺相關。但通常是1或2象素。

command
類型:回調;
說明:當按鈕被按下時所調用的一個函數或方法。所回調的可以是一個函數、方法或別的可調用的Python對象。

cursor
類型:游標;
說明:當滑鼠移動到按鈕上時所顯示的游標。

default
類型:常量;
說明:如果設置了,則按鈕為預設按鈕。註意這個語法在Tk 8.0b2中已改變。

disabledforeground
類型:顏色;
說明:當按鈕無效時的顏色。

font
類型:字體;
說明:按鈕所使用的字體。按鈕只能包含一種字體的文本。

highlightbackground, highlightcolor
類型:顏色;
說明:控制焦點所在的高亮邊框的顏色。當視窗部件獲得焦點的時候,邊框為highlightcolor所指定的顏色。否則邊框為highlightbackground所指定的顏色。預設值由系統所定。

highlightthickness
類型:距離;
說明:控制焦點所在的高亮邊框的寬度。預設值通常是1或2象素。

image
類型:圖象;
說明:在部件中顯示的圖象。如果指定,則text和bitmap選項將被忽略。

justify
類型:常量;
說明:定義多行文本如何對齊。可取值有:LEFT, RIGHT, 或 CENTER。

padx, pady
類型:距離;
說明:指定文本或圖象與按鈕邊框的間距。

relief
類型:常量;
說明:邊框的裝飾。通常按鈕按下時是凹陷的,否則凸起。另外的可能取值有GROOVE, RIDGE, 和 FLAT。

state
類型:常量;
說明:按鈕的狀態:NORMAL, ACTIVE 或 DISABLED。預設值為NORMAL。

takefocus
類型:標誌;
說明:表明用戶可以Tab鍵來將焦點移到這個按鈕上。預設值是一個空字元串,意思是如果按鈕有按鍵綁定的話,它可以通過所綁定的按鍵來獲得焦點。

text
類型:字元串;
說明:顯示在按鈕中的文本。文本可以是多行。如果bitmaps或image選項被使用,則text選項被忽略。

textvariable
類型:變數;
說明:與按鈕相關的Tk變數(通常是一個字元串變數)。如果這個變數的值改變,那麼按鈕上的文本相應更新。

underline
類型:整數;
說明:在文本標簽中哪個字元加下劃線。預設值為-1,意思是沒有字元加下劃線。

width, height
類型:距離;
說明:按鈕的尺寸。如果按鈕顯示文本,尺寸使用文本的單位。如果按鈕顯示圖象,尺寸以象素為單位(或屏幕的單位)。如果尺寸沒指定,它將根據按鈕的內容來計算。

wraplength
類型:距離;
說明:確定一個按鈕的文本何時調整為多行。它以屏幕的單位為單位。預設不調整。

Mixins

Tkinter模塊提供了相應於Tk中的各種視窗部件類型的類和一定數量的mixin和別的幫助類(mixin是一個類,被設計來使用多態繼承與其它的類結合)。當你使用Tkinter時,你不將直接訪問mixin類。

一、實施mixins

通過root視窗和視窗部件類,Misc類被用作mixin。它提供了大量的Tk和視窗相關服務,這些服務對所有Tkinter核心視窗部件者有效。這些通過委托完成;視窗部件僅僅直接請求適當的內部對象。

Wm類通過root視窗和頂級視窗部件類被用作mixin。通過委托它提供了視窗管理服務。

使用委托像這樣簡化你的應用程式代碼:一旦你有一視窗部件,你能夠使用這個視窗部件的實例的方法訪問Tkinter的所有部份。

二、Geometry(幾何學)與mixins

Grid,Pack,Place這些類通過視窗部件類被用作mixins。通過委托,它們也提供了訪問不同幾何管理的支持。
下麵是Geometry Mixins的列表及說明:
管理器及說明:

Grid:grid幾何管理器允許你通過在一個二維網格中組織視窗部件來創建一個類似表的版面。
Pack:pack幾何管理器通過在一個幀中把視窗部件包裝到一個父部件中來創建一個版面。為了對視窗部件使用這個幾何管理器,我們在這個視窗部件上使用pack方法來集成。
Place:place幾何管理器讓你顯式將一個視窗部件放到給定的位置。要使用這個幾何管理器,需使用place方法。

三、視窗部件配置管理
Widget類使用 geometry mixins來混合Misc類,並通過cget和configure方法來增加配置管理,也可以通過一個局部的字典介面。

視窗部件的配置

要配置一個視窗部件的外觀,你用選項比使用方法調用好。典型的選項包括text、color、size、command等等。對於處理選項,所有的核心視窗部件執行同樣的配置介面:

配置介面

widgetclass(master, option=value, ...) => widget
說明:
創 建這個視窗部件的一個實例,這個實例作為給定的master的孩子,並且使用給定的選項。所有的選項都有預設值,因此在簡單的情況下,你僅需要指定這個 master。如果你想的話,你也可以不指定master;Tkinter這時會使用最近創建的root視窗作為master。註意這個name選項僅能 在視窗部件被創建時設置。

cget(option) => string
說明:
返回一個選項的當前值。選項的名字和返回值都是字元串。要得到name選項,使用str(widget)代替。

configure(option=value, ...), config(option=value, ...)
說明:
設置一個或多個選項(作為關鍵字參數給定)。
註意一些選項的名字與Python中的保留字相同(class,from等)。要使用這些作為關鍵字參數,僅需要在這些選項名後添加一下劃線(class_,from_)。註意你不能用此方法來設置name選項;name選項只能在視窗部件被創建時設置。

為了方便起見,視窗部件也實現一個局部的字典介面。 __setitem__ 方法映射configure,而__getitem__方法映射cget。你可以使用下麵的語法來設置和查詢選項:
value = widget[option]
widget[option] = value
註意每個賦值都導致一個對Tk的調用。如果你希望去改變多個選項,單獨地調用(config或configure)去改變它們是一個好的主意。

這下麵的字典方法也適用於視窗部件:
keys() => list
說明:
返回視窗部件中所有可以被設置的選項的一個列表。name選項不包括在這個列表中(它不能通過字典介面被查詢或修改)。

向後相容性

關鍵字參數在Python1.3時被引入。之前,使用原始的Python字典將選項傳遞給視窗構造器和configure方法。原代碼類似如下:
self.button = Button(frame, {"text": "QUIT", "fg": "red", "command": frame.quit})
self.button.pack({"side": LEFT})

關鍵字參數語法更優雅和少容易發生錯誤。但是為了與存在的代碼相容,Tkinter仍支持老的語法。在新的程式中你不應再用老的語法,即使是在某些情況下是很有吸引力的。例如,如果你創建了一個定製的視窗部件,它需要沿它的父類傳遞配置選項,你的代碼可能如下:
def __init__(self, master, **kw):
Canvas.__init__(self, master, kw) # kw 是一個字典
上面的代碼在當前版本的Tkinter下工作的很好,但是它在將來的版本下可能不工作。一個通常的辦法是使用apply函數:
def __init__(self, master, **kw):
apply(Canvas.__init__, (self, master), kw)
這個apply函數使用了一個函數(一個未約束的方法),一個帶參數的元組(它必須包括self,因為我們調用一個未約束的方法),一個可選的,提供了關鍵字參數的字典。

視窗部件的樣式之顏色

所有的Tkinter標準視窗部件提供了一套樣式設置選項,這讓你可以去修改這些視窗部件的外觀如顏色、字體和其它的可視外觀。

顏色

大部份視窗部件都允許你指定視窗部件和文本的顏色,這可以使用background和foreground選項。要指定顏色,你可以使用顏色名,也可以使用紅、綠、藍顏色組合。

1、顏色名
Tkinter 包括一個顏色資料庫,它將顏色名映射到相應的RGB值。這個資料庫包括了通常的名稱如Red, Green, Blue, Yellow, 和 LightBlue,也可使用外來的如Moccasin,PeachPuff等等。在X window系統上,顏色名由X server定義。你能夠找到 一個名為xrgb.txt的文件,它包含了一個由顏色名和相應RGB值組成的列表。在Windows和Macintosh系統上,顏色名錶內建於Tk中。

在Windows下,你可以使用Windows系統顏色(用戶可以通過控制面板來改變這些顏色):
SystemActiveBorder, SystemActiveCaption, SystemAppWorkspace, SystemBackground,
SystemButtonFace, SystemButtonHighlight, SystemButtonShadow, SystemButtonText,
SystemCaptionText, SystemDisabledText, SystemHighlight, SystemHighlightText,
SystemInactiveBorder, SystemInactiveCaption, SystemInactiveCaptionText, SystemMenu,
SystemMenuText, SystemScrollbar, SystemWindow, SystemWindowFrame, SystemWindowText。

在Macintosh上,下麵的系統顏色是有效的:
SystemButtonFace, SystemButtonFrame, SystemButtonText, SystemHighlight, SystemHighlightText, SystemMenu, SystemMenuActive, SystemMenuActiveText, SystemMenuDisabled, SystemMenuText, SystemWindowBody。

顏色名是大小寫不敏感的。許多顏色名詞與詞之間有無格都有效。例如"lightblue", "light blue", 和
"Light Blue"都是同一顏色。

2、RGB格式

如果你需要顯式地指定顏色名,你可以使用如下格式的字元串:
#RRGGBB
RR, GG, BB 分別是red,green和blue值的十六進位表示。下麵的例子演示瞭如何將一個顏色三元組轉換為

一個Tk顏色格式:
tk_rgb = "#%02x%02x%02x" % (128, 192, 200)

Tk也支持用形如"#RGB"和"rrrrggggbbbb"去分別指定16和65536程度之間的值。

你可以使用視窗部件的winfo_rgb方法來將一個代表顏色的字元串(名字或RGB格式)轉換為一個三元組:
rgb = widget.winfo_rgb("red")
red, green, blue = rgb[0]/256, rgb[1]/256, rgb[2]/256
註意winfo_rgb返回16位的RGB值,範圍在0~65535之間。要將它們映射到更通用的0~255範圍內,你必須將每個值都除以256(或將它們向右移8位)。

視窗部件的樣式之字體

字體
視窗部件允許你顯示文本和指定所使用的字體。所有的視窗部件都提供了合理的預設值,你很少需要去為簡單元素如標簽和按鈕指定字體。

字體通常使用font視窗部件選項指定。Tkinter支持一定數量的不同字體描述類型:
* Font descriptors

* User-defined font names

* System fonts

* X font descriptors

Tk8.0以前的版本僅X font描述被支持。

1、字體描述
從Tk8.0開始,Tkinter支持獨立於平臺的字體描述。你可以使用元組來指定一個字體,這個元組包含了一個字體類型名字,一個以磅為單位的高度,代表一個或多個樣式的字元串。例如:
("Times", 10, "bold")
("Helvetica", 10, "bold italic")
("Symbol", 8)

要得到預設的尺寸和類型,你可以給出作為單一字元串的字體名。如果這個字體類型名字沒有包括空格,你也可以給這個字元串自身增加尺寸和樣式:
"Times 10 bold"
"Helvetica 10 bold italic"
"Symbol 8"

在大部份Windows平臺上存在如下有效的字體類名:
Arial (相 應 於 Helvetica), Courier New (Courier), Comic Sans MS, Fixedsys, MS Sans Serif, MS Serif, Symbol, System, Times New Roman (Times), 和 Verdana:
Tkinter類之視窗部件類

註意:如果這個字體類型名包含空格,你必須使用上面所描述的元組語法。

有效的樣式有normal, bold, roman, italic, underline, and overstrike。

Tk8.0自動映射Courier, Helvetica, 和Times到所有平臺上相應的本地字體類型名。此外,在Tk8.0下字體格式不會引起問題,如果Tk不能找出確切的匹配,它會試著找類似的字體,如果失敗,Tk就使用特定平臺的預設字體。

Tk4.2在Windows下同樣支持這種字體描述。這兒有幾個限制,包括字體類型名必須在平臺上存在,並非這所有上面樣式名都存在(或它們中的一些有不同的名字)。

2、字體名
此外,Tk8.0允許你去創建已命名的字體並且當為一個視窗部件指定字體時使用它們的名字。

tkFont模塊提供一個Font類,這個類允許你去創建字體實例。你可以隨處使用這樣一個實例。你也可能使用一個字體實例來得到字體的量度,包括存在於那個字體中的字元串所站用的尺寸。

tkFont.Font(family="Times", size=10, weight=tkFont.BOLD)
tkFont.Font(family="Helvetica", size=10, weight=tkFont.BOLD,
slant=tkFont.ITALIC)
tkFont.Font(family="Symbol", size=8)

如果你修改一個已命名的字體(使用config方法),這個改變將自動影響到所有使用這個字體的視窗部件。

Font構造器支持下列的樣式選項(註意常量被定義在tkFont模塊中):

樣式選項及說明:

family選項
類型:字元串
說明:字體類型

size選項
類型:整型
說明:以磅為單位的字體的尺寸。要以象素為單位的話,使用負值。

weight選項
類型:常量
說明:字體的粗細。使用NORMAL或BOLD。預設為NORMAL。

slant選項
類型:常量
說明:字體傾斜。使用NORMAL或ITALIC。預設為NORMAL。

underline選項
類型:標誌
說明:字體下劃線。如果1(true),字體加下劃線。預設為0(false)。

overstrike選項
類型:標誌
說明:字體劃線。如果為1(true),則字體上有一條線;預設為0(false)。

3、系統字體

Tk也支持特定系統的字體名。在X下,這些通常是字體別名如fixed,6x10等等。

在Windows下,這些包括ansi,ansifixed,device,oemfixed,system和systemfixed:
Tkinter類之視窗部件類

在Macintosh上,系統字體名是application和system。

註意:系統字體是字體名,不是字體類型名,它們不能與尺寸或樣式屬性結合。為了可移植性,儘可能避免使用這些名字。

4、X字體描述

X字體描述是如下格式的字元串(星號所代表的是無關欄位。具體細節可查看Tk文檔或X手冊):
-*-family-weight-slant-*--*-size-*-*-*-*-charset

典型的字體類別如:Times, Helvetica, Courier or Symbol。

weight可以是"Bold"或"Normal"。slant取值中R代表"roman"(正常),I代表"italic",o代表團"oblique"(實際上等同於italic)。

size是字體的高度,以十分之一磅為單位。一英寸72磅,但是一些低分辯率的顯示器的1磅較常規的大些,以便小字體能夠清晰顯示。charset(字元集)通常是ISO8859-1 (ISO Latin 1), 但一些字體也使用其它的值。

下麵的描述的family取值是Times,weight取值是Bold,slant取值是R,size取值是120,charset取值是ISO8859-1:
-*-Times-Bold-R-*--*-120-*-*-*-*-ISO8859-1

如果你不關心charset(字元集),或你使用如Symbol的字體(這種字體類別有特定的字元集),那麼你可以使用一個星號作為描述的最後部分:
-*-Symbol-*-*-*--*-80-*

典 型的X server至少支持Times, Helvetica, Courier等字體,size有8, 10, 12, 14, 18, 和 24 磅,weight有normal,bold、italic(Times)或oblique(Helvetica, Courier)。大多數的伺服器都有 支持隨意查看字體。你可以使用如xlsfonts和xfontsel來檢查你所訪問的伺服器的字體。

這種類型的字體描述可以用在Windows 和Macintosh上。註意:如果你使用Tk4.2,你必須牢記字體類型必須是Windows所支持的一種。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 方法一:在Tomcat中的Conf目錄中,在Server.Xml中的,<Host/>節點中添加: <Context Path="/Hello"Docbase="D:\Users\WebProject\WebContent" Debug="0" Privileged="True" Reloadable
  • 題目描述 Palmia河從東往西流過Palmia國,把整個國家分成南北兩半。河的兩岸各有N個城市,北岸的每一個城市都與南岸的一個城市互為友好城市,而且任意兩個北岸城市的友好城市都不相同。每一對友好城市都向政府申請,希望開通一條連接兩城市的航線。但政府遇到一個問題:Palmia河上經常有大霧,這對航行
  • 1、添加一個BASE_DIR在setting.py中,如果已存在可不用添加,需引入 import os BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 2、設置STATIC_ROOT STATIC_ROOT
  • 但是在ios8中,設置setSeparatorInset:UIEdgeInsetsZero 已經不起作用了。下麵是解決辦法: 首先在viewDidLoad方法加入以下代碼: if(leftTable!.respondsToSelector("setLayoutMargins:")){ leftTab
  • 註:本文主要參考自《深入理解java虛擬機(第二版)》 1、javap的使用與類文件結構 使用過程: java源代碼: 1 package compile; 2 /** 3 * class位元組碼 4 */ 5 public class TestClass { 6 private int m; 7 8
  • 最終效果如圖: 用到的知識:Python Bottle HTML Javascript JQuery Bootstrap AJAX 當然還有 linux 我去,這麼多……我還是一點一點說起吧…… 先貼最終的源代碼: #!/usr/bin/env python3 from bottle import ...
  • #* #*********************************************************************************************** # Makefile # # Author : Lyu Yang # Description : M
  • 1, 多態 : 父類的引用指向子類對象,有繼承,有重寫 多態表達了 : cat 是一種 Animal 規則 : 多態對象不能調用父類中沒有的方法 定義 : Animal cat = new Cat(); 2, 介面 : 類實現介面implement,也是一種極度抽象的抽象類,也是類很多行為的集合 接
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...