Tk - ภาพรวมวิดเจ็ต

ส่วนประกอบพื้นฐานของแอปพลิเคชันที่ใช้ Tk เรียกว่าวิดเจ็ต บางครั้งส่วนประกอบเรียกว่าหน้าต่างเนื่องจากใน Tk "หน้าต่าง" และ "วิดเจ็ต" มักจะใช้แทนกันได้ Tk เป็นแพ็คเกจที่มีชุดส่วนประกอบกราฟิกมากมายสำหรับการสร้างแอพพลิเคชั่นกราฟิกด้วย Tcl

Tk มีวิดเจ็ตที่หลากหลายตั้งแต่วิดเจ็ต GUI พื้นฐานเช่นปุ่มและเมนูไปจนถึงวิดเจ็ตแสดงข้อมูล วิดเจ็ตสามารถกำหนดค่าได้มากเนื่องจากมีการกำหนดค่าเริ่มต้นทำให้ใช้งานง่าย

แอ็พพลิเคชัน Tk เป็นไปตามลำดับชั้นของวิดเจ็ตซึ่งอาจมีวิดเจ็ตจำนวนเท่าใดก็ได้ในวิดเจ็ตอื่นและวิดเจ็ตเหล่านั้นภายในวิดเจ็ตอื่น วิดเจ็ตหลักในโปรแกรม Tk เรียกว่าวิดเจ็ตรูทและสามารถสร้างได้โดยการสร้างอินสแตนซ์ใหม่ของคลาส TkRoot

การสร้างวิดเจ็ต

ไวยากรณ์สำหรับการสร้างวิดเจ็ตได้รับด้านล่าง

type variableName arguments options

ประเภทในที่นี้หมายถึงประเภทวิดเจ็ตเช่นปุ่มป้ายกำกับและอื่น ๆ อาร์กิวเมนต์สามารถเป็นทางเลือกและจำเป็นตามไวยากรณ์ของแต่ละวิดเจ็ต ตัวเลือกมีตั้งแต่ขนาดไปจนถึงการจัดรูปแบบของแต่ละองค์ประกอบ

อนุสัญญาการตั้งชื่อวิดเจ็ต

วิดเจ็ตใช้โครงสร้างคล้ายกับการตั้งชื่อแพ็คเกจ ใน Tk หน้าต่างรูทถูกตั้งชื่อด้วยจุด (.) และองค์ประกอบในหน้าต่างเช่นปุ่มชื่อ. myButton1 ชื่อตัวแปรควรขึ้นต้นด้วยตัวอักษรพิมพ์เล็กตัวเลขหรือเครื่องหมายวรรคตอน (ยกเว้นจุด) หลังจากอักขระตัวแรกอักขระอื่น ๆ อาจเป็นตัวอักษรตัวพิมพ์ใหญ่หรือตัวพิมพ์เล็กตัวเลขหรือเครื่องหมายวรรคตอน (ยกเว้นจุด) ขอแนะนำให้ใช้ตัวอักษรพิมพ์เล็กในการเริ่มฉลาก

อนุสัญญาการตั้งชื่อสี

สีสามารถประกาศโดยใช้ชื่อเช่นสีแดงสีเขียวและอื่น ๆ นอกจากนี้ยังสามารถใช้เลขฐานสิบหกแทนด้วย # จำนวนเลขฐานสิบหกสามารถเป็น 3, 6, 9 หรือ 12

อนุสัญญามิติ

หน่วยเริ่มต้นคือพิกเซลและใช้เมื่อเราระบุว่าไม่มีมิติ ขนาดอื่น ๆ คือ i สำหรับนิ้ว m สำหรับมิลลิเมตร c สำหรับเซนติเมตรและ p สำหรับจุด

ตัวเลือกทั่วไป

มีตัวเลือกทั่วไปมากมายสำหรับวิดเจ็ตทั้งหมดและมีการระบุไว้ด้านล่างในตารางต่อไปนี้ -

ซีเนียร์ ไวยากรณ์และคำอธิบาย
1

-background color

ใช้เพื่อกำหนดสีพื้นหลังสำหรับวิดเจ็ต

2

-borderwidth width

ใช้เพื่อวาดเส้นขอบในลักษณะพิเศษ 3 มิติ

3

-font fontDescriptor

ใช้เพื่อตั้งค่าฟอนต์สำหรับวิดเจ็ต

4

-foreground color

ใช้เพื่อกำหนดสีพื้นหน้าสำหรับวิดเจ็ต

5

-height number

ใช้เพื่อตั้งค่าความสูงสำหรับวิดเจ็ต

6

-highlightbackground color

ใช้เพื่อตั้งค่าสี่เหลี่ยมผืนผ้าสีเพื่อวาดรอบวิดเจ็ตเมื่อวิดเจ็ตไม่มีอินพุตโฟกัส

7

-highlightcolor color

ใช้เพื่อตั้งค่าสี่เหลี่ยมผืนผ้าสีเพื่อวาดรอบวิดเจ็ตเมื่อวิดเจ็ตมีอินพุตโฟกัส

8

-padx number

ตั้งค่า padx สำหรับวิดเจ็ต

9

-pady number

ตั้งค่า pady สำหรับวิดเจ็ต

10

-relief condition

ตั้งค่าการบรรเทา 3 มิติสำหรับวิดเจ็ตนี้ สภาพอาจยกขึ้นจมแบนสันแข็งหรือเป็นร่อง

11

-text text

ตั้งค่าข้อความสำหรับวิดเจ็ต

12

-textvariable varName

ตัวแปรที่เกี่ยวข้องกับวิดเจ็ต เมื่อข้อความของวิดเจ็ตเปลี่ยนแปลงตัวแปรจะถูกตั้งค่าด้วยข้อความของวิดเจ็ต

13

-width number

ตั้งค่าความกว้างสำหรับวิดเจ็ต

ตัวอย่างง่ายๆสำหรับตัวเลือกแสดงอยู่ด้านล่าง

#!/usr/bin/wish

grid [label .myLabel -background red -text "Hello World" -relief ridge -borderwidth 3]
   -padx 100 -pady 100

เมื่อเรารันโปรแกรมข้างต้นเราจะได้ผลลัพธ์ดังต่อไปนี้

รายการวิดเจ็ตที่มีอยู่แบ่งตามประเภทด้านล่าง -

วิดเจ็ตพื้นฐาน

ซีเนียร์ วิดเจ็ตและคำอธิบาย
1

Label

วิดเจ็ตสำหรับแสดงข้อความบรรทัดเดียว

2

Button

วิดเจ็ตที่สามารถคลิกได้และทริกเกอร์การดำเนินการ

3

Entry

วิดเจ็ตใช้เพื่อรับข้อความบรรทัดเดียวเป็นอินพุต

4

Message

วิดเจ็ตสำหรับแสดงข้อความหลายบรรทัด

5

Text

วิดเจ็ตสำหรับแสดงและเลือกแก้ไขข้อความหลายบรรทัด

6

Toplevel

หน้าต่างที่มีขอบและการตกแต่งทั้งหมดที่ผู้จัดการหน้าต่างจัดเตรียมไว้ให้

วิดเจ็ตเค้าโครง

ซีเนียร์ วิดเจ็ตและคำอธิบาย
1

Frame

วิดเจ็ตคอนเทนเนอร์เพื่อเก็บวิดเจ็ตอื่น ๆ

2

Place

วิดเจ็ตเพื่อเก็บวิดเจ็ตอื่น ๆ ไว้ในสถานที่เฉพาะพร้อมพิกัดที่มาและขนาดที่แน่นอน

3

Pack

วิดเจ็ตแบบง่ายเพื่อจัดระเบียบวิดเจ็ตในบล็อกก่อนวางในวิดเจ็ตหลัก

4

Grid

วิดเจ็ตเพื่อซ้อนวิดเจ็ตที่บรรจุในทิศทางต่างๆ

วิดเจ็ตการเลือก

ซีเนียร์ วิดเจ็ตและคำอธิบาย
1

Radiobutton

วิดเจ็ตที่มีชุดปุ่มเปิด / ปิดและป้ายกำกับซึ่งอาจเลือกได้

2

Checkbutton

Widget ที่มีชุดปุ่มเปิด / ปิดและป้ายกำกับหลาย ๆ ปุ่มให้เลือก ..

3

Menu

วิดเจ็ตที่ทำหน้าที่เป็นตัวยึดสำหรับรายการเมนู

4

Listbox

วิดเจ็ตที่แสดงรายการของเซลล์ซึ่งอาจเลือกได้ตั้งแต่หนึ่งเซลล์ขึ้นไป

วิดเจ็ตขนาดใหญ่

ซีเนียร์ วิดเจ็ตและคำอธิบาย
1

Dialog

วิดเจ็ตสำหรับแสดงกล่องโต้ตอบ

2

Spinbox

วิดเจ็ตที่ให้ผู้ใช้เลือกหมายเลข

3

Combobox

วิดเจ็ตที่รวมรายการเข้ากับรายการตัวเลือกที่มีให้ใช้งาน

4

Notebook

วิดเจ็ตแบบแท็บที่ช่วยในการสลับไปมาระหว่างหน้าใดหน้าหนึ่งโดยใช้แท็บดัชนี

5

Progressbar

วิดเจ็ตเพื่อแสดงความคิดเห็นเกี่ยวกับความคืบหน้าของการดำเนินการที่ยาวนานเช่นการอัปโหลดไฟล์

6

Treeview

วิดเจ็ตเพื่อแสดงและอนุญาตให้เรียกดูตามลำดับชั้นของรายการได้มากขึ้นในรูปแบบของต้นไม้

7

Scrollbar

การเลื่อนวิดเจ็ตโดยไม่มีวิดเจ็ตข้อความหรือพื้นที่

8

Scale

ปรับขนาดวิดเจ็ตเพื่อเลือกค่าตัวเลขผ่านแถบเลื่อน

วิดเจ็ตอื่น ๆ

ซีเนียร์ วิดเจ็ตและคำอธิบาย
1

Canvas

วิดเจ็ตการวาดสำหรับแสดงกราฟิกและรูปภาพ ..

เราจะกล่าวถึงแต่ละวิดเจ็ตเหล่านี้ในบทต่อ ๆ ไป