Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/311.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 为什么我的QLineEdit.text()返回空字符串_Python_Pyqt5 - Fatal编程技术网

Python 为什么我的QLineEdit.text()返回空字符串

Python 为什么我的QLineEdit.text()返回空字符串,python,pyqt5,Python,Pyqt5,首先,我已经读过一些关于同一主题的问题,但与我的情况无关。下面是我的一些代码片段: class MyClass(QMainWindow): def __init__(self): super().__init__() self.wid_dict = {"wid1": (0, 1), "wid2": (1,1)} self.create() def create(self): for wid_name, va

首先,我已经读过一些关于同一主题的问题,但与我的情况无关。下面是我的一些代码片段:

class MyClass(QMainWindow):
    def __init__(self):
         super().__init__()
         self.wid_dict = {"wid1": (0, 1), "wid2": (1,1)}
         self.create()

    def create(self):
         for wid_name, value in self.wid_dict.items():
             widget = QLineEdit()
             widget.FinishedEditting.connect(partial(self.slots, widget.text()))

    def slots(self, text):
        print(text)
当我在小部件中写入输入并切换到下一个小部件时,结果只会打印一个空字符串。我做错了吗

另外,当我在手机上打字时,我已经删除了一大块代码
问题是,您在创建QLineEdit后不久就得到了文本,而它显然是一个空文本,一个可能的解决方案是传递小部件

从functools导入部分
导入系统
从PyQt5.QtWidgets导入QApplication、QLineEdit、QMainWindow、QVBoxLayout、QWidget
类MyClass(QMainWindow):
定义初始化(自):
super()。\uuuu init\uuuuu()
self.wid_dict={“wid1”:(0,1),“wid2”:(1,1)}
self.create()
def创建(自我):
central_widget=QWidget()
self.setCentralWidget(中心窗口小部件)
lay=QVBoxLayout(中心窗口小部件)
对于wid_名称,self.wid_dict.items()中的值:
widget=QLineEdit()
widget.editingFinished.connect(部分(self.slots,widget))
lay.addWidget(小部件)
def插槽(自我,小部件):
打印(widget.text())
如果名称=“\uuuuu main\uuuuuuuu”:
app=QApplication(sys.argv)
w=MyClass()
w、 show()
sys.exit(app.exec_())
另一种类似的方法是在插槽中使用sender(),该方法返回发出信号的QObject:

导入系统 从PyQt5.QtWidgets导入QApplication、QLineEdit、QMainWindow、QVBoxLayout、QWidget 类MyClass(QMainWindow): 定义初始化(自): super()。\uuuu init\uuuuu() self.wid_dict={“wid1”:(0,1),“wid2”:(1,1)} self.create() def创建(自我): central_widget=QWidget() self.setCentralWidget(中心窗口小部件) lay=QVBoxLayout(中心窗口小部件) 对于wid_名称,self.wid_dict.items()中的值: widget=QLineEdit() widget.editingFinished.connect(self.slots) lay.addWidget(小部件) def插槽(自): widget=self.sender() 打印(widget.text()) 如果名称=“\uuuuu main\uuuuuuuu”: app=QApplication(sys.argv) w=MyClass() w、 show() sys.exit(app.exec_()) <>代码> 如果你认为你的出版物不是你能做的最好的,那么你最好花更多的时间,例如,你提供的代码不是最好的,因为有很多错误


问题是,您在创建QLineEdit后不久就得到了文本,而它显然是一个空文本,一个可能的解决方案是传递小部件

从functools导入部分
导入系统
从PyQt5.QtWidgets导入QApplication、QLineEdit、QMainWindow、QVBoxLayout、QWidget
类MyClass(QMainWindow):
定义初始化(自):
super()。\uuuu init\uuuuu()
self.wid_dict={“wid1”:(0,1),“wid2”:(1,1)}
self.create()
def创建(自我):
central_widget=QWidget()
self.setCentralWidget(中心窗口小部件)
lay=QVBoxLayout(中心窗口小部件)
对于wid_名称,self.wid_dict.items()中的值:
widget=QLineEdit()
widget.editingFinished.connect(部分(self.slots,widget))
lay.addWidget(小部件)
def插槽(自我,小部件):
打印(widget.text())
如果名称=“\uuuuu main\uuuuuuuu”:
app=QApplication(sys.argv)
w=MyClass()
w、 show()
sys.exit(app.exec_())
另一种类似的方法是在插槽中使用sender(),该方法返回发出信号的QObject:

导入系统 从PyQt5.QtWidgets导入QApplication、QLineEdit、QMainWindow、QVBoxLayout、QWidget 类MyClass(QMainWindow): 定义初始化(自): super()。\uuuu init\uuuuu() self.wid_dict={“wid1”:(0,1),“wid2”:(1,1)} self.create() def创建(自我): central_widget=QWidget() self.setCentralWidget(中心窗口小部件) lay=QVBoxLayout(中心窗口小部件) 对于wid_名称,self.wid_dict.items()中的值: widget=QLineEdit() widget.editingFinished.connect(self.slots) lay.addWidget(小部件) def插槽(自): widget=self.sender() 打印(widget.text()) 如果名称=“\uuuuu main\uuuuuuuu”: app=QApplication(sys.argv) w=MyClass() w、 show() sys.exit(app.exec_())
widget=QLineEdit(self);widget.editingFinished.connect(self.slots)。。。def插槽(self):打印(self.sender().text())
widget=QLineEdit(self);widget.editingFinished.connect(self.slots)。。。def插槽(self):打印(self.sender().text())