سؤال

I have a QDialog with one QLabel, one QLineEdit and one QPushButton "Find". After pushing the button I would like to send the text entered in QLineEdit to another function which will handle the action for find button.

# shows and handles the find dialog
def handleFind(self):
    findDialog = QDialog()
    findDialog.setWindowTitle("Find")
    grid = QGridLayout()
    findDialog.setLayout(grid)

    findLabel = QLabel("Find what", findDialog)
    grid.addWidget(findLabel,1,0)
    findField = QLineEdit(findDialog)
    grid.addWidget(findField,1,1)
    enteredText = findLabel.text()
    findButton = QPushButton("Find", findDialog)
    # how to send enteredText as parameter to the find function
    findButton.clicked.connect(self.find) 
    grid.addWidget(findButton,2,1)

    findDialog.exec_()

# find function: search in the first column of the table   
def find(self):
    #to do
    names = NvmQtModel.__imp.parameterNames()

How do I send the text entered in QLineEdit as parameter to the function find?

هل كانت مفيدة؟

المحلول

You can use a lambda to send the find-text, like this:

    findButton.clicked.connect(
        lambda: self.find(findField.text()))
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top