2009-09-12 37 views
17

Có cách nào để khuyến khích người dùng thoát khỏi chương trình gui được viết bằng Python không?Lời nhắc khi thoát trong ứng dụng PyQt

Điều gì đó như "Bạn có chắc chắn muốn thoát khỏi chương trình không?"

Tôi đang sử dụng PyQt.

+0

Nhìn vào phần "Hộp thư" của [phần này của hướng dẫn PyQt4] (http://zetcode.com/tutorials/pyqt4/firstprograms/). * (câu trả lời từ [las3rjock] (http://stackoverflow.com/users/94732/las3rjock)) * –

+0

Nhìn vào phần "Hộp thư" của [phần này của hướng dẫn PyQt4] (http://zetcode.com/tutorials/pyqt4/firstprograms /). – las3rjock

Trả lời

45

Có. Bạn cần ghi đè hành vi đóng mặc định của QWidget đại diện cho ứng dụng của bạn để nó không ngay lập tức chấp nhận sự kiện. Cấu trúc cơ bản bạn muốn là một cái gì đó như thế này:

def closeEvent(self, event): 

    quit_msg = "Are you sure you want to exit the program?" 
    reply = QtGui.QMessageBox.question(self, 'Message', 
        quit_msg, QtGui.QMessageBox.Yes, QtGui.QMessageBox.No) 

    if reply == QtGui.QMessageBox.Yes: 
     event.accept() 
    else: 
     event.ignore() 

các PyQt tutorial đề cập bởi las3rjock có một cuộc thảo luận thoải mái về điều này. Ngoài ra, hãy xem các liên kết từ số PyQt page tại Python.org, cụ thể là official reference, để tìm hiểu thêm về các sự kiện và cách xử lý chúng.

+0

Ồ, cảm ơn rất nhiều! –

+2

Cách đặt "có" và "không" ở một số ngôn ngữ khác? Nếu thông điệp của tôi là, ví dụ như tiếng Đức, tôi muốn "ja" và "nicht" thay vì "yes" và "no". – Aleksandar

+0

làm việc cho tôi ra khỏi hộp (không cần sửa đổi)! –

Các vấn đề liên quan