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 วิดเจ็ตการวาดสำหรับแสดงกราฟิกและรูปภาพ .. |
เราจะกล่าวถึงแต่ละวิดเจ็ตเหล่านี้ในบทต่อ ๆ ไป