为QLineEdi提供索引

2024-06-01 03:32:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我想给QLineEdit的索引

我有这个密码。你知道吗

    from PyQt4 import QtGui, QtCore
import sys

class Main(QtGui.QMainWindow):
    def __init__(self, parent = None):
        super(Main, self).__init__(parent)

        # main button
        self.addButton = QtGui.QPushButton('button to add other widgets')
        self.addButton.clicked.connect(self.addWidget)
        self.savebutton = QtGui.QPushButton('Save')

        # scroll area widget contents - layout
        self.scrollLayout = QtGui.QFormLayout()

        # scroll area widget contents
        self.scrollWidget = QtGui.QWidget()
        self.scrollWidget.setLayout(self.scrollLayout)

        # scroll area
        self.scrollArea = QtGui.QScrollArea()
        self.scrollArea.setWidgetResizable(True)
        self.scrollArea.setWidget(self.scrollWidget)

        # main layout
        self.mainLayout = QtGui.QVBoxLayout()

        # add all main to the main vLayout
        self.mainLayout.addWidget(self.addButton)
        self.mainLayout.addWidget(self.scrollArea)
        self.mainLayout.addWidget(self.savebutton)
        # central widget
        self.centralWidget = QtGui.QWidget()
        self.centralWidget.setLayout(self.mainLayout)

        # set central widget
        self.setCentralWidget(self.centralWidget)

    def addWidget(self):
        self.scrollLayout.addRow(Test())


class Test(QtGui.QWidget):
  def __init__( self, parent=None):
      super(Test, self).__init__(parent)
      self.kod = QtGui.QLineEdit()


      layout = QtGui.QHBoxLayout()
      layout.addWidget(self.kod)
      self.setLayout(layout)



app = QtGui.QApplication(sys.argv)
myWidget = Main()
myWidget.show()
app.exec_()

当我单击save按钮时,savebutton只发送最后一个QLineEdit小部件。 image is here

就像这张照片,我想自我.kod[0].text()=“aaaa”自我.kod1=“bbbb”自我.kod[2] “中国交建”就是这样。kod[x]当我单击add widgetbutton时,这个x数字会自动增加。或者它可以是这样的:kod1,kod2,kod3,kodx。没关系,我只想区别对待,从他们身上获取文本。你知道吗


Tags: selfinitmaindefwidgetparentlayoutqtgui
1条回答
网友
1楼 · 发布于 2024-06-01 03:32:23

您可以在主类中设置一个列表,如['aaa','bbb','ccc'], 并将var设置为0。你知道吗

class Main(QtGui.QMainWindow):
    def __init__(self, parent = None):
        super(Main, self).__init__(parent)
        #
        self.lineText = ['aaa', 'bbb', 'ccc']
        self.var = 0
        ...


    def addWidget(self):
        self.scrollLayout.addRow(Test(self, self.var))
        self.var += 1

然后给测试类一个arg

class Test(QtGui.QWidget):
  def __init__( self, parent=None, count):
      super(Test, self).__init__(parent)
      #
      self.parent = parent
      self.kod = QtGui.QLineEdit()
      #
      self.kod.setText(self.parent.lineText[count])

你知道吗-


class Main(QtGui.QMainWindow):
    def __init__(self, parent = None):
        super(Main, self).__init__(parent)

        self.kod = []
        ...
    def addWidget(self):
        temp = Test()
        self.kod.append(temp)
        self.scrollLayout.addRow(temp)

和打印(自我.kod)你知道吗

[<__main__.Test object at 0x00000000032EEC18>, <__main__.Test object at 0x00000000032EEDC8>, <__main__.Test object at 0x00000000032EEF78>]

相关问题 更多 >