Как создать текстовое поле при нажатии на кнопку в PyQt5?

Как можно исправить проблему, при которой функция "browse" не создает новый line edit, хотя в списке с line edit-ами он отображается?
  • 2 марта 2024 г. 20:18
Ответы на вопрос 1
Для создания текстового поля при нажатии на кнопку в PyQt5, вы можете использовать следующий код:

```python
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QPushButton, QLineEdit

class MyWidget(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        self.layout = QVBoxLayout()
        self.button = QPushButton('Создать текстовое поле')
        self.button.clicked.connect(self.create_text_field)
        self.layout.addWidget(self.button)

        self.setLayout(self.layout)
        self.show()

    def create_text_field(self):
        text_field = QLineEdit()
        self.layout.addWidget(text_field)

if __name__ == '__main__':
    app = QApplication(sys.argv)
    widget = MyWidget()
    sys.exit(app.exec_())
```

Чтобы исправить проблему, при которой функция "browse" не создает новый line edit, хотя в списке с line edit-ами он отображается, убедитесь, что вы обновляете виджет после добавления нового элемента. В вашем случае, после добавления нового line edit, вызовите `self.layout.update()` или `self.layout.addWidget(your_new_line_edit)` после добавления нового line edit в список.
Похожие вопросы