2010-08-11 46 views
5

Tôi đang cố gắng mô phỏng sự kiện nhấp chuột bằng Python trên tiện ích ui.goButton.Mô phỏng sự kiện nhấp chuột trong PyQt

Dưới đây là những gì tôi đã làm:

QtTest.QTest.mouseClick(self.ui.goButton, QtCore.Qt.LeftButton) 

Đây có phải là đúng cách để làm điều đó? Vì nó không hoạt động.

+0

Tôi không nghĩ rằng tôi hiểu những gì bạn có nghĩa là do 'mô phỏng'? Bạn có muốn xử lý sự kiện nhấp chuột hay bạn muốn tạo sự kiện nhấp chuột? – liaK

+1

@liaK: Tôi muốn tạo sự kiện nhấp chuột, tức là, tôi muốn nút được gửi đến 'SIGNAL (" đã nhấp() ")', mà không cần người dùng thực sự nhấp vào nó. – Vilfrin

+0

Bạn đang thử nghiệm hoặc bạn không phải ứng dụng của mình thực sự hoạt động theo cách đó? –

Trả lời

5

Dựa trên câu trả lời của bạn cho nhận xét, tôi sẽ trả lời câu hỏi của bạn.

Về cơ bản các tín hiệu có thể được phát ra bởi,

emit signalToBeEmitted() 

Vì vậy, nếu bạn muốn phát ra clicked() tín hiệu 's QPushButton,

bạn phải kế thừa QPushButton và bạn có thể phát ra tín hiệu như emit clicked().

This example sẽ giúp bạn phát ra tín hiệu.

Nhưng câu hỏi của tôi là tại sao bạn muốn làm điều đó?

Bằng cách phát ra các tín hiệu clicked(), bạn sẽ lần lượt gọi khe connect ed .. Vậy tại sao không thể bạn gọi khe trực tiếp một mình thay vì phát ra các tín hiệu và sau đó gọi khe ..

Hãy nhớ slots chỉ là các chức năng thông thường có thể được gọi giống như các chức năng khác. Nếu không, nếu khe có mặt trong đối tượng khác mà bạn sẽ kết nối qua tín hiệu, thì sẽ phát ra tín hiệu riêng của bạn thay vì làm rối tung các tín hiệu được xác định trước.

IMHO, Đừng phát ra các tín hiệu được xác định trước đó ngay cả đối với ngắn hạn ..

Hy vọng nó giúp ..

Edit:

Rất tiếc tôi đã không nhìn thấy PyQt. Tôi đã quen với Qt với C++. Tôi không biết gì về Python. Nhưng tôi tin rằng hầu hết các khái niệm về Qt sẽ vẫn phổ biến. Vì vậy, tôi sẽ để lại câu trả lời của tôi như vậy ..

+0

Hành vi được mô tả bởi liaK cũng hợp lệ đối với PySide ... –

+1

Mặc dù đây có thể là câu trả lời đúng cho câu hỏi cụ thể từ các câu trả lời, tôi cần mô phỏng sự kiện nhấp chuột thực sự để tôi có thể chuyển một nhấp chuột vào tiện ích con chuột trong một QStyledItemDelegate. Tôi đi qua câu hỏi này trong khi nhìn vào nó.Tôi đồng ý với câu trả lời nhưng tôi nghĩ rằng nhu cầu của tôi vẫn là một câu chuyện người dùng hợp lệ. Nó là giá trị thêm này vào câu trả lời này IMO. Nó có thể đơn giản như thực thi mousePressEvent với một cá thể sự kiện được xây dựng nhưng tôi chưa chắc chắn .... – Rafe

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