代码之家  ›  专栏  ›  技术社区  ›  iraciv94

清除按钮PYQT5

  •  1
  • iraciv94  · 技术社区  · 6 年前

    我一直试图用以下方法构建一个简单的图形用户界面:

    • 用户在其中写入字符串的qlineedit

    • 一个qpushbutton,每次单击它时,它清除用户在上面行中写入的内容edit。

    我的问题在第二个问题上。我一直试图通过在线查看解决方案来解决这个问题,但到目前为止它们还没有真正有用。有人能就如何进行给出提示吗?

    这是我的代码:

    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 回复  |  直到 6 年前
        1
  •  1
  •   eyllanesc Yonghwan Shin    6 年前

    我不明白你想做什么,解决方案很简单,你必须将点击信号直接连接到清除方法,而不创建任何其他功能:

    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_())