2013-01-24 33 views
5

Vỏ IPython của tôi trở nên chậm chạp sau khi tôi khởi tạo đối tượng QApplication. Ví dụ, ngay cả từ một khởi đầu mới, các mã sau đây sẽ làm cho vỏ của tôi chậm chạp đủ nơi tôi phải khởi động lại nó.Ví dụ QApplication khiến vỏ trăn bị chậm chạp

from PyQt4 import QtGui 
app = QtGui.QApplication([]) 

Ngay sau khi được gửi, việc nhập của tôi sẽ bị trễ 2 hoặc 3 giây. Máy tính của tôi không phải là tuyệt vời, nhưng tôi vẫn còn có rất nhiều bộ nhớ có sẵn, và nó chỉ là vỏ python mà dường như bị ảnh hưởng. Tôi đã thử cả trình thông dịch python mặc định và trình thông dịch ipython với cùng kết quả. Bất kỳ đề xuất?

Cập nhật: Tôi cũng đã thử chạy chương trình "Hello World" pyqt độc lập trong ipython sử dụng lệnh ma thuật %run và khi điều khiển được trả về ipython sau khi đóng cửa sổ "Hello World", nó có tác dụng tương tự; vỏ trở nên chậm chạp và việc gõ của tôi bắt đầu chậm trễ khoảng 2-3 giây.

+1

tôi không thể tái tạo vấn đề này. Bạn đã thử với "ipython --gui = 'qt'"? –

+0

Điều đó đã làm được. Tôi không chắc chắn 100% lý do tại sao điều này khắc phục vấn đề, nhưng tôi sẽ đọc các tài liệu ipython để xem chính xác những gì nó làm. Vì tôi cũng đang sử dụng pylab, một lệnh khác hoạt động là 'ipython --pylab qt'. Cảm ơn! – bdiamante

Trả lời

3

này có thể giúp:

QtCore.pyqtRemoveInputHook() 

Khi module QtCore được nhập khẩu lần đầu tiên nó cài đặt một Python móc đầu vào (tức là nó đặt giá trị của biến PyOS_InputHook của Python.). Điều này cho phép các lệnh được nhập tại dấu nhắc thông dịch trong khi ứng dụng đang chạy. Khi đó, có thể tạo động các đối tượng Qt mới và gọi các phương thức của bất kỳ đối tượng Qt hiện có nào.

Móc đầu vào có thể gây ra sự cố cho một số loại ứng dụng nhất định, đặc biệt là các thiết bị cung cấp thiết bị tương tự thông qua các phương tiện khác nhau . Chức năng này loại bỏ móc đầu vào được cài đặt bởi PyQt.

Móc đầu vào có thể được khôi phục bằng chức năng pyqtRestoreInputHook() .

http://www.riverbankcomputing.com/static/Docs/PyQt4/html/qtcore.html#pyqtRemoveInputHook

+0

Làm việc như say mê. Ngay sau khi móc đầu vào được đóng lại, vỏ trở nên đáp ứng một lần nữa và ngay sau khi móc được khôi phục, nó trở nên chậm chạp. Đây chắc chắn là thủ phạm. Cảm ơn! – bdiamante

+0

Bạn vui lòng upvote/chấp nhận câu trả lời? – warvariuc

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