Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python PyQt:从LineEdit创建变量_Python_Qt_Soap_Pyqt - Fatal编程技术网

Python PyQt:从LineEdit创建变量

Python PyQt:从LineEdit创建变量,python,qt,soap,pyqt,Python,Qt,Soap,Pyqt,我试图从GUI中的4个LineEdit框中获取用户输入,并将它们用作web服务调用函数中的变量。但是我收到了这个错误 import logging import sys import suds from PyQt4 import QtCore, QtGui, QtNetwork from service import Ui_Form from suds.wsse import * logging.basicConfig(level=logging.DEBUG) logging.getLogge

我试图从GUI中的4个LineEdit框中获取用户输入,并将它们用作web服务调用函数中的变量。但是我收到了这个错误

import logging
import sys
import suds
from PyQt4 import QtCore, QtGui, QtNetwork
from service import Ui_Form
from suds.wsse import *

logging.basicConfig(level=logging.DEBUG)
logging.getLogger("suds.client").setLevel(logging.CRITICAL)
url = "http://xxxxxxxxx:xxxx/services/FireScopeConfigurationWebService/v1?wsdl"
token = UsernameToken("xxx", "xxxxx")
security = Security()
security.tokens.append(token)

client = suds.client.Client(url)
client.set_options(wsse = security)

class StartQT4(QtGui.QMainWindow):
    def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent)
        self.ui = Ui_Form()
        self.ui.setupUi(self)
        QtCore.QObject.connect(self.ui.createButton,QtCore.SIGNAL("clicked()"), self.create_srv)
        ciEditLine = QtGui.QLineEdit()        #variable 1
        str(ciEditLine.displayText())
        monitorEditLine = QtGui.QLineEdit()   #variable 2
        str(monitorEditLine.displayText())
        bolEditLine = QtGui.QLineEdit()       #variable 3
        str(bolEditLine.displayText())
        ipEditLine = QtGui.QLineEdit()        #variable 4
        str(ipEditLine.displayText())

    def create_srv(self):
        try:
                response = client.service.createConfigurationItem(ciEditLine, monitorEditLine, bolEditLine, ipEditLine)
                print response
        except WebFault, e:
                print e


if __name__ == "__main__":
    app = QtGui.QApplication(sys.argv)
    myapp = StartQT4()
    myapp.show()
    sys.exit(app.exec_())

这是我的第一个应用程序,请轻松使用,谢谢

任何帮助都将不胜感激


William

您必须使用
self
将对小部件的引用附加到对象:

Traceback (most recent call last):
  File "start.py", line 34, in create_srv
    str(ciEditLine.displayText())
NameError: global name 'ciEditLine' is not defined
此外,您需要传递小部件的文本值,而不是小部件引用:

def __init__(self):
    ...
    self.ciEditLine = QtGui.QLineEdit()        #variable 1
    ...

这样,这些引用就变成了对象的属性,以后可以通过使用
self

在任何方法中引用,您的小部件到底在哪里?不应该是self.ui.ciEditLine?谢谢,这似乎很有效。变量未传递到XML客户端请求中。我可以看到它在0x2138950处有PyQt4.QtGui.QLineEdit对象作为变量…?@WilliamFleming我更新了代码。您需要通过调用小部件的text()方法来传递文本值。传递widget引用而不是它的文本值将导致您所播种的widget引用的表示。
def create_srv(self):
    try:
            response = client.service.createConfigurationItem(self.ciEditLine.text(), self.monitorEditLine.text(), self.bolEditLine.text(), self.ipEditLine.text())