2017-05-10 6 views
0

이것이 일반적인 pyqt4에서 pyqt5 로의 이식 문제입니다. 그러나 지금까지의 질문은 해결 방법을 찾지 못했습니다. 내 현재 문제 : 내가 밀어 넣을 수 있을까요? 여기 액션을 메소드에 연결하는 동안 pyqt5 이식 오류가 발생했습니다. AttributeError : type 객체 'QObject'에 '연결'속성이 없습니다.

클래스는이 날 했나요를 얻을 수 일반적으로

 QtCore.QObject.connect(self.actionChangeFeedbackController, QtCore.SIGNAL("triggered()"), self.changeFeedbackController) 

여기 방법에 작업을 연결할 때

import logging 
import sys 
import time 

from PyQt5 import QtCore, QtGui, QtWidgets 

from gui.gui import Ui_MainWindow 

from lib import bcinetwork 
from lib import bcixml 

triggered = QtCore.pyqtSignal() 
NORMAL_COLOR = QtCore.Qt.black 
MODIFIED_COLOR = QtCore.Qt.gray 

#class BciGui(QtGui.QMainWindow, Ui_MainWindow): 
class BciGui(QtWidgets.QMainWindow, Ui_MainWindow): 

    def __init__(self, protocol='bcixml'): 
     #QtGui.QMainWindow.__init__(self) 
     QtWidgets.QMainWindow.__init__(self) 

     self.setupUi(self) 
     self.protocol = protocol 

     self.model = TableModel(self) 
     self.proxymodel = QtCore.QSortFilterProxyModel(self) 
     self.proxymodel.setSourceModel(self.model) 
     self.proxymodel.setFilterKeyColumn(- 1) 
     self.proxymodel.setDynamicSortFilter(True) 
     self.tableView.setModel(self.proxymodel) 
     self.tableView.verticalHeader().setVisible(False) 
     self.tableView.horizontalHeader().setSectionResizeMode(1, QtWidgets.QHeaderView.Stretch) 
     self.tableView.sortByColumn(0, QtCore.Qt.AscendingOrder) 
     self.tableView.setSortingEnabled(True) 




    self.toolButton_clearFilter.setDefaultAction(self.actionClearFilter) 

    self.comboBox_feedback = QtWidgets.QComboBox(self.toolBar) 

    self.comboBox_feedback.setSizePolicy(QtWidgets.QSizePolicy.Expanding, 
             QtWidgets.QSizePolicy.Preferred) 
    self.toolBar.insertWidget(self.actionSendInit, self.comboBox_feedback) 



     # connect actions to methods 
     #QtCore.QObject.connect(self.actionOpen, QtCore.SIGNAL("triggered()"), self.clicked) 

     QtCore.QObject.connect(self.actionChangeFeedbackController, QtCore.SIGNAL("triggered()"), self.changeFeedbackController) 

     QtCore.QObject.connect(self.actionClearFilter, QtCore.SIGNAL("triggered()"), self.clearFilter) 
     QtCore.QObject.connect(self.actionOpen, QtCore.SIGNAL("triggered()"), self.open) 
     QtCore.QObject.connect(self.actionPause, QtCore.SIGNAL("triggered()"), self.pause) 
     QtCore.QObject.connect(self.actionPlay, QtCore.SIGNAL("triggered()"), self.play) 
     QtCore.QObject.connect(self.actionQuit, QtCore.SIGNAL("triggered()"), self.quit) 
     QtCore.QObject.connect(self.actionStop, QtCore.SIGNAL("triggered()"), self.stop) 
     QtCore.QObject.connect(self.actionSave, QtCore.SIGNAL("triggered()"), self.save) 
     QtCore.QObject.connect(self.actionSaveAs, QtCore.SIGNAL("triggered()"), self.saveas) 
     QtCore.QObject.connect(self.actionSendModified, QtCore.SIGNAL("triggered()"), self.sendModified) 
     QtCore.QObject.connect(self.actionSendAll, QtCore.SIGNAL("triggered()"), self.sendAll) 
     QtCore.QObject.connect(self.actionSendInit, QtCore.SIGNAL("triggered()"), self.sendinit) 
     QtCore.QObject.connect(self.actionGet, QtCore.SIGNAL("triggered()"), self.get) 

     QtCore.QObject.connect(self.lineEdit, QtCore.SIGNAL("textChanged(const QString&)"), self.filter) 
     QtCore.QObject.connect(self.model, QtCore.SIGNAL("dataChanged(const QModelIndex&, const QModelIndex&)"), self.dataChanged) 

     self.feedbacks = [] 

     self.setFeedbackController(bcinetwork.LOCALHOST, bcinetwork.FC_PORT) 

그것은 내려 오는 다음과 같은 오류

AttributeError: type object 'QObject' has no attribute 'connect' 

클래스를 생성 오류

AttributeError: type object 'QObject' has no attribute 'connect' 

이 코드 부분은 Pyqt5에서 더 이상 작동하지 않는 일반적인 Pyqt4 문제라는 것을 알고 있습니다. 그래서 특정 위젯에 대한 새로운 신호에 대한 많은 설명을 보았습니다. 그러나 나는 일반적인 행동에 대한 해결책을 찾지 못했습니다. 누군가 나에게 설명을 줄 수 있습니까?

#QtCore.QObject.connect(self.actionChangeFeedbackController, QtCore.SIGNAL("triggered()"), self.changeFeedbackController) 
self.actionChangeFeedbackController.triggered.connect(self.changeFeedbackController) 
:

thks

답변

0

확인

나는 내가 다음을 수행하여 작업을 얻었다 고 생각