1

作成した callable にプッシュ ボタン シグナルを接続しようとしていますが、何らかの理由でこのエラーが表示され続けます。QtCore がインポートされていることを確認しました...他に何が欠けていますか?

サンプルコード:

from PyQt4 import QtCore
from PyQt4 import QtGui
import sys

class guiFindFiles(QtGui.QWidget):
    def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent)

        #Create window
        self.setFixedSize(400,180)
        self.setWindowTitle("Choose the files to use")

        #Create all layouts to be used by window
        self.windowLayout = QtGui.QVBoxLayout()
        self.fileLayout1 = QtGui.QHBoxLayout()
        self.fileLayout2 = QtGui.QHBoxLayout()
        self.fileLayout3 = QtGui.QHBoxLayout()

        #Create the prompt for user to load in the q script to use
        self.qFileTF = QtGui.QLineEdit("Choose the q script file to use")
        self.qFileButton = QtGui.QPushButton("Open")
        self.qFileButton.setFixedSize(100,27)
        self.fileLayout1.addWidget(self.qFileTF)
        self.fileLayout1.addWidget(self.qFileButton)

                    #Connect all the signals and slots
        self.connect(self.qFileButton, SIGNAL("pressed()"), self.loadFile)

        def loadFile():
            fileName = []

            selFile = QtGui.QFileDailog.getOpenFileName(self)
            print selFile
4

2 に答える 2

7

SIGNALの中QtCoreにあるので、行は次のようになります。

self.connect(self.qFileButton, QtCore.SIGNAL("pressed()"), self.loadFile)

しかし、実際には新しいスタイルの接続を使用する必要があります:

self.qFileButton.pressed.connect(self.loadFile)

そして、カップルを区別するつもりがない限り、シグナルを使用することをお勧めしclickます。press/releaseclicked

self.qFileButton.clicked.connect(self.loadFile)
于 2012-08-24T20:35:30.960 に答える
1

SIGNALは 内で定義されているため、全体としてインポートした場合は名前空間QtCore内で使用する必要があります。だから使用:QtCoreQtCore

QtCore.SIGNAL(...)

それ以外の:

SIGNAL(...)

SIGNALまたは、QtCore明示的にインポートすることもできます:

from PyQt4.QtCore import SIGNAL
于 2012-08-24T20:30:39.263 に答える