Hướng dẫn how do you create a canvas in python? - làm thế nào để bạn tạo một canvas trong python?
Canvas là một khu vực hình chữ nhật nhằm vẽ hình ảnh hoặc các bố cục phức tạp khác. Bạn có thể đặt đồ họa, văn bản, widget hoặc khung trên vải. Show Cú phápĐây là cú pháp đơn giản để tạo tiện ích này - w = Canvas ( master, option=value, ... ) Thông số
Tiện ích Canvas có thể hỗ trợ các mục tiêu chuẩn sau - ARC - tạo ra một mục hồ quang, có thể là hợp âm, pieslice hoặc một vòng cung đơn giản. − Creates an arc item, which can be a chord, a pieslice or a simple arc. coord = 10, 50, 240, 210 arc = canvas.create_arc(coord, start=0, extent=150, fill="blue") Hình ảnh - Tạo một mục hình ảnh, có thể là một thể hiện của các lớp bitmapimage hoặc các lớp ảnh. − Creates an image item, which can be an instance of either the BitmapImage or the PhotoImage classes. filename = PhotoImage(file = "sunshine.gif") image = canvas.create_image(50, 50, anchor=NE, image=filename) Dòng - Tạo một mục dòng. − Creates a line item. line = canvas.create_line(x0, y0, x1, y1, ..., xn, yn, options) Bầu dục - tạo ra một vòng tròn hoặc hình elip ở tọa độ đã cho. Phải mất hai cặp tọa độ; Các góc trên và dưới bên phải của hình chữ nhật giới hạn cho hình bầu dục. − Creates a circle or an ellipse at the given coordinates. It takes two pairs of coordinates; the top left and bottom right corners of the bounding rectangle for the oval. oval = canvas.create_oval(x0, y0, x1, y1, options) Polygon - Tạo một vật phẩm đa giác phải có ít nhất ba đỉnh. − Creates a polygon item that must have at least three vertices. oval = canvas.create_polygon(x0, y0, x1, y1,...xn, yn, options) Thí dụTự mình thử ví dụ sau - import Tkinter top = Tkinter.Tk() C = Tkinter.Canvas(top, bg="blue", height=250, width=300) coord = 10, 50, 240, 210 arc = C.create_arc(coord, start=0, extent=150, fill="red") C.pack() top.mainloop() Khi mã trên được thực thi, nó sẽ tạo ra kết quả sau - python_gui_programming.htm Bởi Bernd Klein. Sửa đổi lần cuối: 01 tháng 2 năm 2022.Bernd Klein. Last modified: 01 Feb 2022. Trên trang này➤ Giới thiệuCác tiện ích Canvas cung cấp các cơ sở đồ họa cho Tkinter. Trong số các đối tượng đồ họa này là các đường, vòng tròn, hình ảnh và thậm chí các vật dụng khác. Với tiện ích này, có thể vẽ đồ thị và sơ đồ, tạo các trình soạn thảo đồ họa và triển khai các loại tiện ích tùy chỉnh khác nhau. Chúng tôi chứng minh trong ví dụ đầu tiên của chúng tôi, làm thế nào để vẽ một dòng. Phương thức created_line (phối hợp, tùy chọn) được sử dụng để vẽ một đường thẳng. Các "tọa độ" tọa độ được đưa ra dưới dạng bốn số nguyên: x1, y1, x2, y2 Điều này có nghĩa là dòng đi từ điểm (x1, y1) đến điểm (x2, y2). Sau khi các tọa độ này theo một danh sách phân tách dấu phẩy các tham số bổ sung, có thể trống. Ví dụ, chúng tôi đặt màu sắc của dòng màu xanh lá cây đặc biệt của trang web của chúng tôi: fill = "#476042" Chúng tôi giữ ví dụ đầu tiên có chủ ý rất đơn giản. Chúng tôi tạo ra một khung vẽ và vẽ một đường ngang thẳng vào khung vẽ này. Dòng này theo chiều dọc cắt vải thành hai khu vực. Việc đúc vào giá trị số nguyên trong gán "y = int (canvas_height / 2)" là thừa, bởi vì created_line cũng có thể hoạt động với các giá trị float. Chúng được tự động biến thành các giá trị số nguyên. Trong phần sau, bạn có thể thấy mã của tập lệnh đơn giản đầu tiên của chúng tôi: from tkinter import * master = Tk() canvas_width = 80 canvas_height = 40 w = Canvas(master, width=canvas_width, height=canvas_height) w.pack() y = int(canvas_height / 2) w.create_line(0, y, canvas_width, y, fill="#476042") mainloop() Nếu chúng ta bắt đầu chương trình này, sử dụng Python 3, chúng ta sẽ nhận được cửa sổ sau: Để tạo hình chữ nhật, chúng tôi có phương thức created_rectangle (phối hợp, tùy chọn). Các phối hợp một lần nữa được xác định bởi hai điểm, nhưng lần này điểm đầu tiên là điểm trên cùng bên trái và điểm dưới cùng của hình chữ nhật. Cửa sổ, bạn thấy ở trên, được tạo bởi mã Python Tkinter sau: from tkinter import * master = Tk() w = Canvas(master, width=200, height=100) w.pack() w.create_rectangle(50, 20, 150, 80, fill="#476042") w.create_rectangle(65, 35, 135, 65, fill="yellow") w.create_line(0, 0, 50, 20, fill="#476042", width=3) w.create_line(0, 100, 50, 80, fill="#476042", width=3) w.create_line(150,20, 200, 0, fill="#476042", width=3) w.create_line(150, 80, 200, 100, fill="#476042", width=3) mainloop() Hình ảnh sau với tọa độ sẽ đơn giản hóa sự hiểu biết về ứng dụng của created_lines và create_rectangle trong ví dụ trước của chúng tôi. Văn bản trên vảiBây giờ chúng tôi chứng minh làm thế nào để in văn bản trên một tấm bạt. Chúng tôi sẽ mở rộng và sửa đổi ví dụ trước cho mục đích này. Phương thức created_text () có thể được áp dụng cho một đối tượng canvas để viết văn bản trên đó. Hai tham số đầu tiên là vị trí X và Y của đối tượng văn bản. Theo mặc định, văn bản được tập trung vào vị trí này. Bạn có thể ghi đè này với tùy chọn neo. Ví dụ: nếu tọa độ phải là góc trên bên trái, hãy đặt mỏ neo thành Tây Bắc. Với văn bản tham số từ khóa, chúng ta có thể xác định văn bản thực tế sẽ được hiển thị trên khung vẽ. from tkinter import * canvas_width = 200 canvas_height = 100 colours = ("#476042", "yellow") box=[] for ratio in ( 0.2, 0.35 ): box.append( (canvas_width * ratio, canvas_height * ratio, canvas_width * (1 - ratio), canvas_height * (1 - ratio) ) ) master = Tk() w = Canvas(master, width=canvas_width, height=canvas_height) w.pack() for i in range(2): w.create_rectangle(box[i][0], box[i][1],box[i][2],box[i][3], fill=colours[i]) w.create_line(0, 0, # origin of canvas box[0][0], box[0][1], # coordinates of left upper corner of the box[0] fill=colours[0], width=3) w.create_line(0, canvas_height, # lower left corner of canvas box[0][0], box[0][3], # lower left corner of box[0] fill=colours[0], width=3) w.create_line(box[0][2],box[0][1], # right upper corner of box[0] canvas_width, 0, # right upper corner of canvas fill=colours[0], width=3) w.create_line(box[0][2], box[0][3], # lower right corner pf box[0] canvas_width, canvas_height, # lower right corner of canvas fill=colours[0], width=3) w.create_text(canvas_width / 2, canvas_height / 2, text="Python") mainloop() Mặc dù mã của chương trình ví dụ của chúng tôi bị thay đổi mạnh mẽ, kết quả đồ họa trông vẫn giống nhau ngoại trừ văn bản "Python": Bạn có thể hiểu được lợi ích của các thay đổi mã của chúng tôi, nếu bạn thay đổi ví dụ chiều cao của Canvas thành 190 và chiều rộng thành 90 và sửa đổi tỷ lệ cho hộp đầu tiên thành 0,3. Hình ảnh làm điều này trong mã của ví dụ đầu tiên của chúng tôi. Nó sẽ khó khăn hơn rất nhiều. Kết quả trông như thế này: Đối tượng hình bầu dụcMột hình bầu dục (hoặc một hình trứng) là bất kỳ đường cong nào giống như một quả trứng (ovum có nghĩa là trứng trong tiếng Latin). Nó giống như một hình elip, nhưng nó không phải là một hình elip. Thuật ngữ "hình bầu dục" không được xác định rõ. Nhiều đường cong khác nhau được gọi là hình bầu dục, nhưng tất cả chúng đều có điểm chung:
Từ hình bầu dục bắt nguồn từ Ovum Latin có nghĩa là "trứng" và đó là những gì nó là: một con số giống với hình thức của một quả trứng. Một hình bầu dục được xây dựng từ hai cặp cung, với hai bán kính khác nhau, một vòng tròn là một trường hợp đặc biệt của hình bầu dục. Chúng ta có thể tạo một hình bầu dục trên Canvas C với phương pháp sau: coord = 10, 50, 240, 210 arc = canvas.create_arc(coord, start=0, extent=150, fill="blue")0 Phương pháp này trả về ID đối tượng của đối tượng hình bầu dục mới trên Canvas C. Kịch bản sau đây vẽ một vòng tròn xung quanh điểm (75,75) với bán kính 25: coord = 10, 50, 240, 210 arc = canvas.create_arc(coord, start=0, extent=150, fill="blue")1 Chúng ta có thể xác định một vòng tròn bản vẽ hàm nhỏ bằng cách sử dụng phương thức create_oval (). coord = 10, 50, 240, 210 arc = canvas.create_arc(coord, start=0, extent=150, fill="blue")2 Vẽ tương tác vào một tấm bạtChúng tôi muốn viết một ứng dụng để vẽ hoặc viết vào một bức tranh. Thật không may, không có cách nào để vẽ chỉ một chấm vào một tấm bạt. Nhưng chúng ta có thể khắc phục vấn đề này bằng cách sử dụng một hình bầu dục nhỏ: coord = 10, 50, 240, 210 arc = canvas.create_arc(coord, start=0, extent=150, fill="blue")3 Vẽ đa giácNếu bạn muốn vẽ một đa giác, bạn phải cung cấp ít nhất ba điểm tọa độ: create_polygon (x0, y0, x1, y1, x2, y2, ...) Trong ví dụ sau, chúng tôi vẽ một hình tam giác bằng phương pháp này: coord = 10, 50, 240, 210 arc = canvas.create_arc(coord, start=0, extent=150, fill="blue")4 Có vẻ như thế này: Khi bạn đọc nó, có thể sớm có Giáng sinh, nhưng chúng tôi trình bày một cách để cải thiện Giáng sinh tiếp theo của bạn với một số ngôi sao, được tạo ra bởi Python và Tkinter. Ngôi sao đầu tiên thẳng thắn với hầu như không có bất kỳ kỹ năng lập trình nào liên quan: coord = 10, 50, 240, 210 arc = canvas.create_arc(coord, start=0, extent=150, fill="blue")5 Như chúng tôi đã đề cập, cách tiếp cận này là rất không khéo léo. Điều gì sẽ xảy ra nếu chúng ta phải thay đổi kích thước hoặc độ dày của ngôi sao? Chúng ta phải thay đổi tất cả các điểm theo cách thủ công, tất nhiên là một nhiệm vụ dễ bị lỗi và tẻ nhạt phải làm. Vì vậy, chúng tôi trình bày một phiên bản mới của tập lệnh trước đó liên quan đến nhiều "lập trình" và kỹ năng lập trình hơn. Đầu tiên, chúng tôi đặt sự sáng tạo của ngôi sao vào một chức năng và chúng tôi sử dụng điểm gốc và hai độ dài P và T để tạo ngôi sao: Chương trình cải tiến mới của chúng tôi trông giống như thế này: coord = 10, 50, 240, 210 arc = canvas.create_arc(coord, start=0, extent=150, fill="blue")6 Kết quả trông thậm chí còn giống Xmas hơn và chúng tôi chắc chắn rằng không ai nghi ngờ rằng sẽ là địa ngục để xác định trực tiếp các điểm đa giác, như chúng tôi đã làm trong ví dụ ngôi sao đầu tiên của chúng tôi: BitmapPhương thức created_bitmap () có thể được sử dụng để bao gồm một bitmap trên vải. Các bitmap sau đây có sẵn trên tất cả các nền tảng: "Lỗi", "Gray75", "Gray50", "Gray25", "Gray12", "Hourglass", "Info", "Questhead", "Câu hỏi", "Cảnh báo" Kịch bản sau đây đặt tất cả các bitmap này trên một tấm bạt: coord = 10, 50, 240, 210 arc = canvas.create_arc(coord, start=0, extent=150, fill="blue")7 Kết quả trông như thế này: Mục hình ảnh CanvasPhương thức Canvas create_image (x0, y0, tùy chọn ...) được sử dụng để vẽ một hình ảnh trên khung vẽ. created_image không chấp nhận hình ảnh trực tiếp. Nó sử dụng một đối tượng được tạo bởi phương thức PhotoImage (). Lớp PhotoImage chỉ có thể đọc hình ảnh GIF và PGM/PPM từ các tệp coord = 10, 50, 240, 210 arc = canvas.create_arc(coord, start=0, extent=150, fill="blue")8 Cửa sổ được tạo bởi tập lệnh Python trước đó trông như thế này: Tập thể dụcViết một chức năng, vẽ một mẫu rô vào một tấm bạt. Chức năng được gọi với rô (canvas, line_distance). "Canvas" là đối tượng Canvas, sẽ được rút vào. line_distance là khoảng cách giữa các đường thẳng đứng và ngang. Dung dịchcoord = 10, 50, 240, 210 arc = canvas.create_arc(coord, start=0, extent=150, fill="blue")9 Kết quả của tập lệnh trước trông như thế này: Canvas là gì và làm thế nào nó được tạo ra trong Python?Canvas là một khu vực hình chữ nhật nhằm vẽ hình ảnh hoặc các bố cục phức tạp khác.Bạn có thể đặt đồ họa, văn bản, widget hoặc khung trên vải.a rectangular area intended for drawing pictures or other complex layouts. You can place graphics, text, widgets or frames on a Canvas.
Làm thế nào để canvas hoạt động python?Canvas là một tiện ích có mục đích chung: bạn có thể sử dụng nó để tạo ra bất kỳ loại đồ họa nào bao gồm cốt truyện, bản vẽ, biểu đồ, hiển thị hình ảnh và nhiều hơn nữa.Điều này xác định nơi để thêm nó, nền và kích thước.Sau khi sáng tạo, bạn có thể vẽ trên đầu nó.you can use it to make any kind of graphics including plots, drawings, charts, show images and much more. This defines where to add it, the background and size. After creation, you can draw on top of it.
Python có thể tạo GUI không?Tạo giao diện người dùng đồ họa đơn giản (GUI) hoạt động trên nhiều nền tảng có thể phức tạp.Nhưng nó không phải là như vậy.Bạn có thể sử dụng gói Python và PysimpleGui để tạo giao diện người dùng đẹp mắt mà bạn và người dùng của bạn sẽ thích!You can use Python and the PySimpleGUI package to create nice-looking user interfaces that you and your users will enjoy!
Canvas pack () làm gì?Gói () tổ chức các widget trong các hộp ngang và dọc được giới hạn ở các vị trí bên trái, phải, trên, dưới cùng và liên quan đến nhau trong một khung.organizes widgets in horizontal and vertical boxes that are limited to left, right, top, bottom positions offset and relative to each other within a frame. |