【问题标题】:PyQt4 - How to read QLineEdit text from within QListWidgetItemPyQt4 - 如何从 QListWidgetItem 中读取 QLineEdit 文本
【发布时间】:2019-04-01 17:21:03
【问题描述】:

我创建了一个 QListWidget... QListWidgetItem 由 QPushButton 和 QLineEdit 在 QHBoxLayout 内对齐...

另一个按钮创建了一个函数来循环 QListWidgetItem(s) 并读取每个 QLineEdit 条目中的文本并打印它...

打印出来什么都没有,我用 QListWidget 方法尝试了很多不同的组合,但没有希望!


import sys
from PyQt4 import QtGui, QtCore

def Add_OtherItem():
    ItemOther = CustomItem()
    ItemOther.SetupItem(OthersCommandsWidget)

def ReadText_fn():
    for index in range(0,OthersCommandsWidget.count()):
        TargetItem = (OthersCommandsWidget.item(index)).text()
        print(TargetItem)

app = QtGui.QApplication(sys.argv)

class CustomItem(object):

    def SetupItem(self, OthersCommandList):

        self.Item = QtGui.QListWidgetItem()
        self.Item.setStatusTip("TItem")

        self.MainWidget = QtGui.QWidget()

        self.CommandLine = QtGui.QLineEdit("")

        self.DeleteButton = QtGui.QPushButton()
        self.DeleteButton.setFixedSize(22, 22)

        self.ItemLayoutBox = QtGui.QHBoxLayout()

        self.ItemLayoutBox.addWidget(self.CommandLine)
        self.ItemLayoutBox.addWidget(self.DeleteButton)

        self.MainWidget.setLayout(self.ItemLayoutBox)

        self.Item.setSizeHint(self.MainWidget.sizeHint())

        OthersCommandList.addItem(self.Item)
        OthersCommandList.setItemWidget(self.Item, self.MainWidget)

AppWindow = QtGui.QMainWindow()
AppWindow.setWindowTitle("PoC ListWidget")
AppWindow.setFixedSize(550, 550)

TabWindow = QtGui.QTabWidget(AppWindow)
TabWindow.setGeometry(8, 30, 535, 505)

WorkTAB = QtGui.QWidget()
TabWindow.addTab(WorkTAB, 'Tab.01')

OthersCommandsWidget = QtGui.QListWidget(WorkTAB)
OthersCommandsWidget.setGeometry(QtCore.QRect(8, 40, 515, 430))

AddButton = QtGui.QPushButton(WorkTAB)
AddButton.setText("Add Item")
AddButton.setGeometry(QtCore.QRect(8, 8, 0, 0))
AddButton.setFixedSize(70, 22)

AddButton.clicked.connect(Add_OtherItem)

ReadButton = QtGui.QPushButton(WorkTAB)
ReadButton.setText("Read Text")
ReadButton.setGeometry(QtCore.QRect(100, 8, 0, 0))
ReadButton.setFixedSize(70, 22)

ReadButton.clicked.connect(ReadText_fn)

AppWindow.show()
sys.exit(app.exec_())

【问题讨论】:

    标签: python pyqt pyqt4


    【解决方案1】:

    您正在尝试访问 QLineEdit() 的文本字段。为此,您必须调用其text() 属性。但首先,您必须获取QLineEdit() 对象。

    OthersCommandsWidget 是QListWidget() 类型,它有一个连接到QWidget()QListWidgetItem()。您可以使用itemWidget() 获取QWidget() 对象。 QWidget() 具有三个嵌入对象:QHBoxLayout()QLineEdit()QPushButton(),可以根据添加顺序使用 children() 进行访问。

    改变

    TargetItem = (OthersCommandsWidget.item(index)).text()
    

    收件人:

    TargetItem = OthersCommandsWidget.itemWidget(OthersCommandsWidget.item(index)).children()[1].text()
    

    【讨论】:

      猜你喜欢
      • 2020-05-31
      • 1970-01-01
      • 2012-08-24
      • 2021-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-13
      • 1970-01-01
      相关资源
      最近更新 更多