2013-02-10 27 views
6

Tôi có QTableView trong ứng dụng PyQt và tôi muốn theo dõi thời điểm lựa chọn thay đổi. Tôi đã cố gắng kết nối các tín hiệu đến một khe cắm như sau (sử dụng những lời khuyên trên this page:Kết nối lựa chọn QTableViewChuyển đổi tín hiệu tạo ra segfault với PyQt

self.view.selectionModel().selectionChanged.connect(self.selChanged) 

nơi khe nó là kết nối với được định nghĩa là:

def selChanged(self, selected, deselected): 
     print "Sel changed" 

Tuy nhiên, bất cứ khi nào tôi nạp QMainWindow mà trên đó các QTableView cư trú, tôi nhận được một lỗi phân khúc ngay lập tức.

tôi có làm điều gì đó ngớ ngẩn ở đây?

+0

Không có gì rõ ràng là sai trong mã bạn hiển thị. Có lẽ vấn đề ở đâu đó khác? Bạn có thể đăng một ví dụ đầy đủ về vấn đề này không? – Avaris

Trả lời

2

này đã được cố định bây giờ, hóa ra tôi đang sử dụng một phiên bản Qt cũ trên máy đó - điều này dường như gây ra sự cố.

Đạo đức của câu chuyện là: nếu mã của bạn bị lỗi không có lý do hợp lý, hãy kiểm tra tất cả các phụ thuộc của bạn (trong trường hợp này là Qt và PyQt) đã được cập nhật.

4

Tôi đã có một vấn đề tương tự và việc sửa chữa đã ở đây: PySide: Segfault(?) when using QItemSelectionModel with QListView

Cụ thể, thay thế:

self.view.selectionModel().selectionChanged.connect(self.selChanged) 

với hai lệnh:

selectionModel = self.view.selectionModel() 
selectionModel.selectionChanged.connect(self.selChanged) 

Không chắc lý do tại sao các công trình này, thẳng thắn.

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