首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >给出QLineEdit索引

给出QLineEdit索引
EN

Stack Overflow用户
提问于 2016-09-18 00:34:00
回答 1查看 96关注 0票数 0

我想给出QLineEdit的索引。

我有这个密码。

代码语言:javascript
复制
    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_()

当我单击“保存”按钮时,保存按钮只发送最后一个QLineEdit小部件。图像就在这里

在这张照片中,我希望self.kod.text()="aaaa“self.kod1="bbbb”self.kod2="cccc“,它就会这样。kodx这个x号将自动增加,而我单击add Widget按钮。也可以是这样的: kod1,kod2,kod3,kodx。这不重要,我只是想区别于其他人,并从他们的短信。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-18 09:42:29

您可以在主类中设置一个列表,比如这个'aaa‘、'bbb’、'ccc',并设置var = 0。

代码语言:javascript
复制
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,

代码语言:javascript
复制
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])
代码语言:javascript
复制
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)

和打印(self.kod)

代码语言:javascript
复制
[<__main__.Test object at 0x00000000032EEC18>, <__main__.Test object at 0x00000000032EEDC8>, <__main__.Test object at 0x00000000032EEF78>]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39553013

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档