Захват текста с помощью QLineEdit, QPushButton и отображение этого текста с помощью QLabel pypt5 - PullRequest
0 голосов
/ 07 октября 2018

Я пытаюсь захватить текст одним щелчком мыши на QPushButton и отобразить его в QLabel с pyqt5

Я действительно новичок в этом, так что будьте спокойны со мной!

здеськод, который у меня есть:

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QHBoxLayout, QPushButton, QLabel, QLineEdit
from PyQt5.QtCore import pyqtSlot

class Window(QWidget):

    def __init__(self):
        super().__init__()

        self.initUI()

    def initUI(self):

        hbox = QHBoxLayout()

        game_name = QLabel("Game Name:", self)

        game_line_edit = QLineEdit(self)

        search_button = QPushButton("Search", self)

        search_button.clicked.connect(self.on_click)

        hbox.addWidget(game_name)
        hbox.addWidget(game_line_edit)
        hbox.addWidget(search_button)

        self.setLayout(hbox)

        self.show()

    @pyqtSlot()
    def on_click(self):
        game = QLabel(game_line_edit.text(), self)
        hbox.addWidget(game)



if __name__ == '__main__':

    app = QApplication(sys.argv)
    win = Window()
    sys.exit(app.exec_())

Я получаю эту ошибку:

game = QLabel(game_line_edit.text(), self)
NameError: name 'game_line_edit' is not defined

Я не уверен, почему game_line_edit не определен, но у меня такое ощущение, что это нетот же «класс», что и у моего класса on_click, но я не уверен,

любая помощь будет признательна

1 Ответ

0 голосов
/ 07 октября 2018
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QHBoxLayout, QPushButton, QLabel, QLineEdit
from PyQt5.QtCore import pyqtSlot

class Window(QWidget):

    def __init__(self):
        super().__init__()

        self.initUI()

    def initUI(self):

        self.hbox = QHBoxLayout()

        self.game_name = QLabel("Game Name:", self)

        self.game_line_edit = QLineEdit(self)

        self.search_button = QPushButton("Search", self)

        self.search_button.clicked.connect(self.on_click)

        self.hbox.addWidget(self.game_name)
        self.hbox.addWidget(self.game_line_edit)
        self.hbox.addWidget(self.search_button)

        self.setLayout(self.hbox)

        self.show()

    @pyqtSlot()
    def on_click(self):
        game = QLabel(self.game_line_edit.text(), self)
        self.hbox.addWidget(game)




if __name__ == '__main__':

    app = QApplication(sys.argv)
    win = Window()
    sys.exit(app.exec_())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...