Sự kiện Python

#. /usr/bin/env python # -*- mã hóa. UTF-8 -*- """Ví dụ. Một lớp đơn giản để nhận và đọc Sự kiện FaceDetected""" nhập qi thời gian nhập nhập sys nhập lớp argparse HumanGreeter[object]. """ Một lớp đơn giản để phản ứng với các sự kiện phát hiện khuôn mặt. """ def __init__[bản thân, ứng dụng]. """ Khởi tạo khung qi và phát hiện sự kiện. """ super[HumanGreeter, self]. ứng dụng __init__[]. phiên bắt đầu [] = ứng dụng. phiên # Nhận dịch vụ ALMemory. bản thân. bộ nhớ = phiên. service["ALMemory"] # Kết nối gọi lại sự kiện. bản thân. thuê bao = chính mình. kỉ niệm. người đăng ký ["FaceDetected"] tự. người đăng kí. dấu hiệu. kết nối [tự. on_human_tracked] # Nhận dịch vụ ALTextToSpeech và ALFaceDetection. bản thân. tts = phiên. dịch vụ ["ALTextToSpeech"] tự. face_detection = phiên. dịch vụ ["ALFaceDetection"] tự. phát hiện khuôn mặt. tự đăng ký ["HumanGreeter"]. got_face = Sai def on_human_tracked[self, value]. Gọi lại """ cho sự kiện FaceDetected. """ nếu giá trị == []. # giá trị trống khi khuôn mặt tự biến mất. got_face = Sai Elif không tự. got_face. # chỉ nói khi khuôn mặt tự xuất hiện lần đầu tiên. got_face = True print "Tôi thấy một khuôn mặt. " bản thân. tts. nói ["Xin chào, bạn. "] # Trường đầu tiên = Dấu thời gian. timeStamp = value[0] print "Dấu thời gian là. " + str[timeStamp] # Trường thứ hai = mảng face_Info's. faceInfoArray = value[1] for j in range[ len[faceInfoArray]-1 ]. faceInfo = faceInfoArray[j] # Trường đầu tiên = Thông tin hình dạng. faceShapeInfo = faceInfo[0] # Trường thứ hai = Thông tin bổ sung [hiện đang trống]. faceExtraInfo = faceInfo[1] in "Thông tin khuôn mặt. chữ cái %. 3f - phiên bản thử nghiệm %. 3f" % [faceShapeInfo[1], faceShapeInfo[2]] in "Thông tin khuôn mặt. chiều rộng %. 3f - chiều cao %. 3f" % [faceShapeInfo[3], faceShapeInfo[4]] in "Thông tin bổ sung về khuôn mặt. " + str[faceExtraInfo] def run[self]. """ Lặp lại, đợi các sự kiện cho đến khi ngắt thủ công. """ in "Khởi động HumanGreeter" thử. trong khi đúng. thời gian. ngủ [1] ngoại trừ Bàn phím Ngắt. tự in "Bị gián đoạn bởi người dùng, dừng HumanGreeter". phát hiện khuôn mặt. hủy đăng ký ["HumanGreeter"] #stop sys. thoát [0] nếu __name__ == "__main__". trình phân tích cú pháp = argparse. Trình phân tích cú pháp ArgumentParser[]. add_argument["--ip", type=str, default="127. 0. 0. 1", help="Địa chỉ IP của robot. Trên robot hoặc Naoqi địa phương. sử dụng '127. 0. 0. 1'. "] trình phân tích cú pháp. add_argument["--port", type=int, default=9559, help="Naoqi port number"] args = trình phân tích cú pháp. parse_args[] hãy thử. # Khởi tạo khung qi. kết nối_url = "tcp. //" + đối số. ip + ". " + str[đối số. cổng] ứng dụng = qi. Ứng dụng [["HumanGreeter", "--qi-url=" + connection_url]] ngoại trừ RuntimeError. print["Không thể kết nối với Naoqi tại ip \"" + args. ip + "\" trên cổng " + str[args. cổng] +". \n" "Vui lòng kiểm tra đối số tập lệnh của bạn. Chạy với tùy chọn -h để được trợ giúp. "] hệ thống. thoát[1] human_greeter = Human Greeter[ứng dụng] human_greeter. chạy[]

Một ứng dụng Tkinter chạy hầu hết thời gian bên trong một vòng lặp sự kiện, được nhập thông qua phương thức mainloop. Nó chờ đợi các sự kiện xảy ra. Sự kiện có thể là thao tác nhấn phím hoặc chuột của người dùng

Tkinter cung cấp một cơ chế để lập trình viên xử lý các sự kiện. Đối với mỗi tiện ích, có thể liên kết các hàm và phương thức Python với một sự kiện

phụ tùng. liên kết [sự kiện, xử lý]

Nếu sự kiện được xác định xảy ra trong tiện ích, chức năng "xử lý" được gọi với một đối tượng sự kiện. mô tả sự kiện

#!/usr/bin/python3
# write tkinter as Tkinter to be Python 2.x compatible
from tkinter import *
def hello[event]:
    print["Single Click, Button-l"] 
def quit[event]:                           
    print["Double Click, so let's stop"] 
    import sys; sys.exit[] 

widget = Button[None, text='Mouse Clicks']
widget.pack[]
widget.bind['', hello]
widget.bind['', quit] 
widget.mainloop[]

Hãy lấy một ví dụ đơn giản khác, cho thấy cách sử dụng sự kiện chuyển động, i. e. nếu con chuột được di chuyển bên trong một widget

from tkinter import *

def motion[event]:
  print["Mouse position: [%s %s]" % [event.x, event.y]]
  return

master = Tk[]
whatever_you_do = "Whatever you do will be insignificant, but it is very important that you do 
it.\n[Mahatma Gandhi]"
msg = Message[master, text = whatever_you_do]
msg.config[bg='lightgreen', font=['times', 24, 'italic']]
msg.bind['',motion]
msg.pack[]
mainloop[]

Mỗi khi chúng ta di chuyển chuột trong tiện ích Tin nhắn, vị trí của con trỏ chuột sẽ được in ra. Khi chúng ta bỏ widget này thì hàm motion[] không được gọi nữa

Đào tạo Python trực tiếp

Thưởng thức trang này?

Nhìn thấy. Tổng quan về các khóa học Python trực tiếp

đăng ký tại đây

Sự kiện

Tkinter sử dụng cái gọi là chuỗi sự kiện để cho phép người dùng xác định sự kiện nào, cả cụ thể và chung, mà họ muốn liên kết với trình xử lý. Đây là "sự kiện" đối số đầu tiên của phương thức liên kết. Chuỗi sự kiện được đưa ra dưới dạng một chuỗi, sử dụng cú pháp sau

Trường loại là phần thiết yếu của trình xác định sự kiện, trong khi trường "công cụ sửa đổi" và "chi tiết" không bắt buộc và bị bỏ qua trong nhiều trường hợp. Chúng được sử dụng để cung cấp thông tin bổ sung cho "loại" đã chọn. Sự kiện "loại" mô tả loại sự kiện bị ràng buộc, e. g. các hành động như nhấp chuột, nhấn phím hoặc tiện ích có tiêu điểm đầu vào

EventDescriptionA mouse button is pressed with the mouse pointer over the widget. The detail part specifies which button, e.g. The left mouse button is defined by the event , the middle button by , and the rightmost mouse button by .

xác định sự kiện cuộn lên trên chuột có hỗ trợ bánh xe và cuộn xuống

If you press down a mouse button over a widget and keep it pressed, Tkinter will automatically "grab" the mouse pointer. Further mouse events like Motion and Release events will be sent to the current widget, even if the mouse is moved outside the current widget. The current position, relative to the widget, of the mouse pointer is provided in the x and y members of the event object passed to the callback. You can use ButtonPress instead of Button, or even leave it out completely: , , and are all synonyms.

Chuột được di chuyển với một nút chuột được giữ. Để chỉ định nút chuột trái, giữa hoặc phải, hãy sử dụng , và tương ứng. Vị trí hiện tại của con trỏ chuột được cung cấp trong các thành viên x và y của đối tượng sự kiện được chuyển đến hàm gọi lại, i. e. Sự kiện. x, sự kiện. ySự kiện, nếu một nút được nhả ra. Để chỉ định nút chuột trái, giữa hoặc phải, hãy sử dụng , và tương ứng. Vị trí hiện tại của con trỏ chuột được cung cấp trong các thành viên x và y của đối tượng sự kiện được chuyển đến hàm gọi lại, i. e. Sự kiện. x, sự kiện. yTương tự như sự kiện Nút, xem ở trên, nhưng nút này được nhấp đúp thay vì nhấp một lần. Để chỉ định nút chuột trái, giữa hoặc phải, hãy sử dụng , và tương ứng

You can use Double or Triple as prefixes. Note that if you bind to both a single click [] and a double click [], both bindings will be called.

Con trỏ chuột vào widget

Chú ý. Điều này không có nghĩa là người dùng đã nhấn phím Enter. được sử dụng cho mục đích này

Sự kiện có nghĩa là gì trong Python?

Sự kiện là cấu trúc cho phép một lớp thông báo cho các lớp khác khi có điều gì đó quan tâm diễn ra . Trong ngôn ngữ dân gian, về cơ bản, nó tương tự như việc giương cờ để báo hiệu cho người khác rằng điều gì đó đáng quan tâm đã xảy ra.

Python có thể là sự kiện không

Lập trình hướng sự kiện tập trung vào các sự kiện [thông báo] và luồng của chúng giữa các thành phần phần mềm khác nhau. Trên thực tế, nó có thể được tìm thấy trong nhiều loại phần mềm. Trước đây, lập trình Python dựa trên sự kiện là mô hình phổ biến nhất cho phần mềm xử lý sự tương tác trực tiếp của con người .

Python có trình xử lý sự kiện không?

Tạo trình lắng nghe sự kiện . Listeners get attached to controls held in dialogs, as well as to document or form events.

Một ví dụ về một sự kiện trong lập trình là gì?

Những thứ như nhấp chuột, nhấn phím/nút và chạm vào màn hình đều là ví dụ về sự kiện. Tuy nhiên, không phải tất cả các sự kiện đều do người dùng tạo. Một trình duyệt web tải đầy đủ một trang web cũng được coi là một sự kiện. Trong lập trình, các sự kiện được sử dụng như một phương tiện để ra lệnh cho luồng điều khiển của chương trình.

Chủ Đề