Phần đệm giàu python

GUI là viết tắt của cụm từ Giao diện người dùng đồ họa, có nghĩa là giao diện đồ họa người dùng. Thuật ngữ này được sử dụng để chỉ cách người dùng tương tác với các thiết bị máy tính thông qua hình ảnh, thay vì sử dụng các câu lệnh phức tạp

Lập trình người dùng giao diện với Tkinter

Sau đây VniTeach sẽ hướng dẫn thiết lập giao diện GUI bằng Tkinter trong ngôn ngữ Python

1. Create first interface

#Thêm thư viện tkinter
from tkinter import *

#Tạo một cửa sổ mới
window = Tk[]

#Thêm tiêu đề cho cửa sổ
window.title['Welcome to VniTeach app']

#Đặt kích thước của cửa sổ
window.geometry['350x200']

#Lặp vô tận để hiển thị cửa sổ
window.mainloop[]

Dòng cuối cùng cuộc gọi 

w = Button[ master, option = value, .. ]
4 hàm. Hàm này gọi vòng lặp vô tận của cửa sổ, vì vậy cửa sổ sẽ chờ bất kỳ tác vụ tương tác nào mà người dùng cho đến khi chúng ta đóng nó

Nếu bạn quên cuộc gọi 

w = Button[ master, option = value, .. ]
4 hàm, sẽ không có gì xuất hiện cho người dùng

2. Làm việc với nhãn

This object used to display text or picture image

cú pháp

w = Nhãn[chính, tùy chọn, … ]

Tham số

  • master − Tên của cửa sổ chứa nhãn
  • tùy chọn − Đây là danh sách một số tùy chọn thường được sử dụng cho nhãn, tùy chọn này có thể sử dụng cặp từ khóa và giá trị
TTTùy chọn và giải thích 1anchor Tùy chọn này được sử dụng để căn lề của văn bản, mặc định anchor=CENTER, nghĩa là văn bản sẽ căn giữa. 2bg Màu nền của nhãn [nhãn]. 3bitmap Đặt tùy chọn này bằng bitmap hoặc đối tượng hình ảnh và nhãn sẽ hiển thị đồ họa đó. 4bd Quy định kích thước của đường viền [viền] bao quanh nhãn, mặc định là 2 pixel. 5cursor used for setting type con trỏ chuột [mũi tên, dấu chấm,…]. 6phông chữ Nếu bạn đang hiển thị văn bản trong nhãn này [với tùy chọn văn bản hoặc văn bản có thể thay đổi, tùy chọn phông chữ chỉ định loại phông chữ mà văn bản sẽ được hiển thị. 7fg Nếu bạn đang hiển thị văn bản hoặc bitmap trong nhãn này, tùy chọn này chỉ định màu của văn bản. Nếu bạn đang hiển thị một bitmap, đây là màu sẽ xuất hiện tại vị trí của các bit 1 trong bitmap. 8height Quy định độ cao của nhãn. 9image used to show ảnh tĩnh trong nhãn. 10 justify Quy định nhiều dòng của văn bản sẽ căn lề LEFT, CENTER [default] hoặc RIGHT. 11padx Thiết lập khoảng trống phía trước và sau [phần đệm] của văn bản, mặc định là 1. 12pady Thiết lập khoảng trống phía trên và phía dưới [phần đệm] của văn bản, mặc định là 1. 13relief Chỉ định sự xuất hiện của đường bao quanh nhãn, mặc định là PHẲNG; . 14văn bản được sử dụng để hiển thị nội dung của một hoặc nhiều dòng văn bản chứa trong nhãn. Sử dụng quy ước [“\n”] để ngắt dòng. 15textvariable Để bổ sung văn bản được hiển thị trong tiện ích gắn nhãn thành một bộ điều khiển biến của lớp StringVar, hãy đặt tùy chọn này cho biến đó. 16 gạch chân Gạch chân chữ viết cho một số ký tự, bắt đầu đếm từ 0, có thể thiết lập n. Default underline=-1, meaning is not gạch chân chữ viết. 17width Quy định chiều rộng của nhãn [số ký tự vị trí], nếu tùy chọn này không thiết lập, thì nhãn sẽ thay đổi kích thước cho phù hợp với số lượng ký tự của văn bản mà nó chứa. 18wraplength Thiết lập ký tự số lượng cho mỗi dòng, mặc định bằng 0 có nghĩa là dòng sẽ tự động ngắt [chỉ bao gồm duy nhất một dòng]

Ví dụ đơn giản

from tkinter import *

window = Tk[]
window.title["Welcome to VniTeach app"]

#Thêm label có nội dung Hello, font chữ
lbl = Label[window, text="Hello", font=["Arial Bold", 50]]

#Xác định vị trí của label
lbl.grid[column=0, row=0]

window.mainloop[]

2. Làm việc với Button

Nút bấm có thể hiển thị văn bản hoặc hình ảnh, chúng ta có thể thiết lập sự kiện khi chúng ta nhấp vào nút bấm như tự động gọi chức năng không có giới hạn

cú pháp

w = Button[ master, option = value, .. ]

Tham số

  • master − Tên của cửa sổ chứa nút bấm
  • tùy chọn − Đây là danh sách một số tùy chọn thường được sử dụng để nhấn nút, tùy chọn này có thể sử dụng cặp từ khóa và giá trị
TTTùy chọn và giải thích1nền hoạt động Màu nền của nút bấm khi con trỏ chuột ở phía trên nút bấm2activeforeground Màu chữ của nút bấm khi con trỏ chuột ở phía trên nút bấm3bd Độ rộng của đường biên của nút bấm, mặc định là 2. 4bg Màu nền của nút nhấn. 5command Hàm hoặc phương thức sẽ được gọi khi nhấp vào nút nhấn. 6fg Letter color of node press. 7phông chữ của văn bản trên nút nhấn. 8height Độ cao của nút bấm [số dòng] hoặc pixel đối với hình ảnh. 9highlightcolor Màu nổi bật khi nhấn nút có tiêu điểm. 10image Hình ảnh sẽ hiển thị trên nút bấm thay vì văn bản. 11 justify Quy định nhiều dòng của văn bản sẽ căn lề LEFT, CENTER [default] hoặc RIGHT. 12padx Thiết lập khoảng trống phía trước và sau [phần đệm] của văn bản, mặc định là 1. 13pady Thiết lập khoảng trống phía trên và phía dưới [phần đệm] của văn bản, mặc định là 1. 14relief Chỉ định sự xuất hiện của đường viền xung quanh nút nhấn. A number of value as. SUNKEN, RAISED, Rãnh và RIDGE. 15trạng thái Thiết lập thành DISABLED để chuyển sang nút bấm màu xám [bị ẩn] và không phản hồi. Có giá trị là ACTIVE khi con trỏ chuột ở trên nút nhấn. Default is NORMAL. 16underline Mặc định là -1, nghĩa là văn bản trên nút nhấn sẽ không gạch chân. Nếu không âm thanh, các ký tự văn bản tương ứng sẽ bị gạch chân. 17width Độ rộng của nút bấm là số ký tự [nếu hiển thị văn bản] hoặc pixel [nếu hiển thị hình ảnh]. 18wraplength Thiết lập ký tự số lượng cho mỗi dòng, mặc định bằng 0 có nghĩa là dòng sẽ tự động ngắt [chỉ bao gồm duy nhất một dòng]

Phương thức

Phương thức và giải thích flash[] Làm cho nút nhấp nháy nhiều lần giữa màu đang hoạt động và màu bình thường. To node at the first status. Bỏ qua nếu nút bị tắt. 2invoke[] Calling back of node and return about what what that function that return. Không có tác dụng nếu nút bị tắt hoặc không có lệnh gọi lại

Ví dụ

from tkinter import *

window = Tk[]
window.title["Welcome to VniTeach app"]
window.geometry['350x200']
lbl = Label[window, text="Hello"]
lbl.grid[column=0, row=0]

#Thêm một nút nhấn Click Me
btn = Button[window, text="Click Me", bg="orange", fg="red"]

#Thiết lập vị trí của nút nhấn có màu nền và màu chữ
btn.grid[column=1, row=0]

window.mainloop[]

Xử lý sự kiện khi nhấn nút Click Me

from tkinter import *

window = Tk[]
window.title["Welcome to VniTeach app"]
window.geometry['350x200']
lbl = Label[window, text="Hello"]
lbl.grid[column=0, row=0]

#Hàm khi nút được nhấn
def clicked[]:
    lbl.configure[text="Button was clicked !!"]

#Gọi hàm clicked khi nút được nhấn
btn = Button[window, text="Click Me", command=clicked]
btn.grid[column=1, row=0]

window.mainloop[]

Không nhất thiết phải đặt tên hàm để xử lý sự kiện nhấp chuột được nhấp như trên, ví dụ như sau

# !/usr/bin/python3
from tkinter import *

from tkinter import messagebox

top = Tk[]
top.geometry["100x100"]
def helloCallBack[]:
   msg = messagebox.showinfo[ "Hello Python", "Hello World"]

B = Button[top, text = "Hello", command = helloCallBack]
B.place[x = 50,y = 50]
top.mainloop[]

3. Làm việc với Textbox

________số 8

4. Làm việc với Combobox

from tkinter import *

from tkinter.ttk import *
window = Tk[]
window.title["Welcome to VniTeach app"]
window.geometry['350x200']

#Tạo hộp chọn Combobox
combo = Combobox[window]
#Các giá trị của hộp chọn
combo['values']= [1, 2, 3, 4, 5, "Text"]
#Thiết lập giá trị được chọn
combo.current[1] #set the selected item

combo.grid[column=0, row=0]
#Lấy giá trị của hộp chọn bằng combo.get[]

window.mainloop[]

5. Làm việc với Checkbox

w = Button[ master, option = value, .. ]
0

6. Làm việc với Radio

w = Button[ master, option = value, .. ]
1

7. Làm việc với ScrolledText

from tkinter import *

window = Tk[]
window.title["Welcome to VniTeach app"]

#Thêm label có nội dung Hello, font chữ
lbl = Label[window, text="Hello", font=["Arial Bold", 50]]

#Xác định vị trí của label
lbl.grid[column=0, row=0]

window.mainloop[]
0

8. Làm việc với Messagebox

– Hộp thoại thông báo

from tkinter import *

window = Tk[]
window.title["Welcome to VniTeach app"]

#Thêm label có nội dung Hello, font chữ
lbl = Label[window, text="Hello", font=["Arial Bold", 50]]

#Xác định vị trí của label
lbl.grid[column=0, row=0]

window.mainloop[]
1

– Hộp thoại cảnh báo và lỗi

from tkinter import *

window = Tk[]
window.title["Welcome to VniTeach app"]

#Thêm label có nội dung Hello, font chữ
lbl = Label[window, text="Hello", font=["Arial Bold", 50]]

#Xác định vị trí của label
lbl.grid[column=0, row=0]

window.mainloop[]
2

– Hộp thoại câu hỏi

from tkinter import *

window = Tk[]
window.title["Welcome to VniTeach app"]

#Thêm label có nội dung Hello, font chữ
lbl = Label[window, text="Hello", font=["Arial Bold", 50]]

#Xác định vị trí của label
lbl.grid[column=0, row=0]

window.mainloop[]
3

9. Làm việc với SpinBox

from tkinter import *

window = Tk[]
window.title["Welcome to VniTeach app"]

#Thêm label có nội dung Hello, font chữ
lbl = Label[window, text="Hello", font=["Arial Bold", 50]]

#Xác định vị trí của label
lbl.grid[column=0, row=0]

window.mainloop[]
4

– Liệt kê các giá trị của spinbox

from tkinter import *

window = Tk[]
window.title["Welcome to VniTeach app"]

#Thêm label có nội dung Hello, font chữ
lbl = Label[window, text="Hello", font=["Arial Bold", 50]]

#Xác định vị trí của label
lbl.grid[column=0, row=0]

window.mainloop[]
5

– Set default value for spinbox

from tkinter import *

window = Tk[]
window.title["Welcome to VniTeach app"]

#Thêm label có nội dung Hello, font chữ
lbl = Label[window, text="Hello", font=["Arial Bold", 50]]

#Xác định vị trí của label
lbl.grid[column=0, row=0]

window.mainloop[]
6

10. Làm việc với tệp chọn tệp và thư mục

from tkinter import *

window = Tk[]
window.title["Welcome to VniTeach app"]

#Thêm label có nội dung Hello, font chữ
lbl = Label[window, text="Hello", font=["Arial Bold", 50]]

#Xác định vị trí của label
lbl.grid[column=0, row=0]

window.mainloop[]
7

Chỉ định ban đầu thư mục cho hộp thoại tệp bằng cách chỉ định 

w = Button[ master, option = value, .. ]
6 như thế này

from tkinter import *

window = Tk[]
window.title["Welcome to VniTeach app"]

#Thêm label có nội dung Hello, font chữ
lbl = Label[window, text="Hello", font=["Arial Bold", 50]]

#Xác định vị trí của label
lbl.grid[column=0, row=0]

window.mainloop[]
8

11. Làm việc với Menu

from tkinter import *

window = Tk[]
window.title["Welcome to VniTeach app"]

#Thêm label có nội dung Hello, font chữ
lbl = Label[window, text="Hello", font=["Arial Bold", 50]]

#Xác định vị trí của label
lbl.grid[column=0, row=0]

window.mainloop[]
9

Sự kiện khi người dùng nhấp vào chọn một bảng chọn nào đó

w = Button[ master, option = value, .. ]
0

12. Làm việc với các Tab

Để tạo một tab điều khiển, có một vài bước

  • Đầu tiên, chúng ta tạo một tab điều khiển bằng cách sử dụng lớp 
    w = Button[ master, option = value, .. ]
    
    7
  • Tạo tab bằng cách sử dụng 
    w = Button[ master, option = value, .. ]
    
    8  lớp
  • Thêm tab đó vào tab điều khiển
  • Đóng tab điều khiển gói để nó hiển thị trong cửa sổ
w = Button[ master, option = value, .. ]
1

Thêm Widget vào Notebook

Sau khi tạo các tab, bạn có thể đặt các widget bên trong các tab này bằng cách gán thuộc tính cha cho tab mong muốn

w = Button[ master, option = value, .. ]
2

Kết quả

Thêm khoảng cách cho các widget [Padding]

Bạn có thể bổ sung khoảng cách trước và sau của mỗi tab bằng cách sử dụng các thuộc tính

w = Button[ master, option = value, .. ]
9 và 
from tkinter import *

window = Tk[]
window.title["Welcome to VniTeach app"]
window.geometry['350x200']
lbl = Label[window, text="Hello"]
lbl.grid[column=0, row=0]

#Thêm một nút nhấn Click Me
btn = Button[window, text="Click Me", bg="orange", fg="red"]

#Thiết lập vị trí của nút nhấn có màu nền và màu chữ
btn.grid[column=1, row=0]

window.mainloop[]
0

Chủ Đề