清除按钮PyQt5

时间:2018-07-20 13:04:35

标签: python pyqt pyqt5 qpushbutton qlineedit

我一直在尝试使用以下方法构建简单的GUI:

  • QLineEdit,用户可以在其中编写字符串

  • 一个QPushButton,每次我单击它时,都会清除用户在上述lineedit中写的内容。

我的问题在第二个中。我一直在尝试通过在线查看解决方案来解决问题,但到目前为止它们并没有真正有用。任何人都可以提示如何进行吗?

这是我的代码:

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


app = QApplication(sys.argv)

class App(QWidget):

    def __init__(self):
        super().__init__()
        self.title = 'MyApp'
        self.left = 10
        self.top = 10
        self.width = 800
        self.height = 800
        self.initUI()
        self.show()

    def initUI(self):
        self.setWindowTitle(self.title)
        self.setGeometry(self.left, self.top, self.width, self.height)

        # Create textbox for index number 1
        self.nameLabel = QLabel(self)
        self.nameLabel.setText('Insert something:')
        self.nameLabel.move(20, 80)

        self.textbox_index1 = QLineEdit(self)
        self.textbox_index1.move(20, 100)
        self.textbox_index1.resize(280, 40)

        # Create a button in the window
        self.buttonC1 = QPushButton('Clear', self)
        self.buttonC1.move(300, 119)

        # connect buttons "CLEAR" to function
        self.buttonC1.clicked.connect(self.on_clickC1)


        @pyqtSlot()
    # Functions for the CLEAR buttons
    def on_clickC1(self):
        self.x1 = clearSearch1(self.textbox_index1.text(''))
        return self.x1

    def clearSearch1(self.x):
        return self.x.clear()

if __name__ == '__main__':
    app.aboutToQuit.connect(app.deleteLater)
    ex = App()
    sys.exit(app.exec_())

非常感谢

马提亚

1 个答案:

答案 0 :(得分:1)

我不明白您要做什么,解决方案很简单,您必须将单击的信号直接连接到clear方法,而无需创建任何其他功能:

class App(QWidget):
    def __init__(self):
        super().__init__()
        self.title = 'MyApp'
        self.left, self.top, self.width, self.height = 10, 10, 800, 800
        self.initUI()
        self.show()

    def initUI(self):
        self.setWindowTitle(self.title)
        self.setGeometry(self.left, self.top, self.width, self.height)
        # Create textbox for index number 1
        self.nameLabel = QLabel(self)
        self.nameLabel.setText('Insert something:')
        self.nameLabel.move(20, 80)

        self.textbox_index1 = QLineEdit(self)
        self.textbox_index1.move(20, 100)
        self.textbox_index1.resize(280, 40)

        # Create a button in the window
        self.buttonC1 = QPushButton('Clear', self)
        self.buttonC1.move(300, 119)

        # connect buttons "CLEAR" to function
        self.buttonC1.clicked.connect(self.textbox_index1.clear)


if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = App()
    sys.exit(app.exec_())