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