0

PySide で簡単なテスト アプリケーションを作成しようとしていますが、何が欠けているのか本当にわかりません。これまでのコードは次のとおりです。

    import sys
from PySide import QtCore, QtGui

class IPTest(QtGui.QMainWindow):
    def __init__(self):
        super(BartonTest, self).__init__()
        self.initUI()

    def initUI(self):
        lblAddress = QtGui.QLabel("IP Address", self)
        lineAddress = QtGui.QLineEdit(self)
        lblPort = QtGui.QLabel("Port Number", self)
        linePort = QtGui.QLineEdit(self)
        btnSend = QtGui.QPushButton("Send", self)
        btnReceive = QtGui.QPushButton("Receive", self)

        lblAddress.move(30, 20)
        lblPort.move(30, 60)
        lineAddress.move(130, 20)
        linePort.move(130, 60)
        btnSend.move(30, 100)
        btnReceive.move(130, 100)




        self.setGeometry(200, 200, 275, 150)
        self.setWindowTitle('Send/Receive TCP Test Program')
        self.show()

    def sendData(self):
        fileName, _ = QtGui.QFileDialog.getOPenFileName(self, 'Open CNC Program')
        self.data = open(fileName, 'r')



def main():
    app = QtGui.QApplication(sys.argv)
    bt = IPTest()
    sys.exit(app.exec_())

if __name__ == '__main__':
    main()

ここでやりたいことは、イベントをプッシュボタンに接続することです。Qtのドキュメンテーションは、私がする必要があるのはこれだけだと教えてくれます:

btnSend.clicked.connect(self.sendData)

PyCharmは、クリックされた参照が見つからないと言い、私が得る例外は

TypeError: native Qt signal is not callable

私はかなり(簡単に)困惑しています。

4

1 に答える 1

0

以下は私にとって正しく機能します:

import sys
from PySide import QtCore, QtGui

class IPTest(QtGui.QMainWindow):
    def __init__(self):
        super(IPTest, self).__init__()
        self.initUI()

    def initUI(self):
        lblAddress = QtGui.QLabel("IP Address", self)
        lineAddress = QtGui.QLineEdit(self)
        lblPort = QtGui.QLabel("Port Number", self)
        linePort = QtGui.QLineEdit(self)
        btnSend = QtGui.QPushButton("Send", self)
        btnReceive = QtGui.QPushButton("Receive", self)

        lblAddress.move(30, 20)
        lblPort.move(30, 60)
        lineAddress.move(130, 20)
        linePort.move(130, 60)
        btnSend.move(30, 100)
        btnReceive.move(130, 100)

        btnSend.clicked.connect(self.sendData)
        self.setGeometry(200, 200, 275, 150)
        self.setWindowTitle('Send/Receive TCP Test Program')
        self.show()

    def sendData(self):

        fileName, _ = QtGui.QFileDialog.getOpenFileName(self, 'Open CNC Program')
        if len(fileName) > 0:
            self.data = open(fileName, 'r')
于 2013-02-14T01:42:27.103 に答える