2016-01-27 3 views
0

Мне просто интересно, как сделать QLineEdit кликабельным, потому что я хочу, чтобы щелкнуть QLineEdit, чтобы очистить текст линии.Pyqt 5 как сделать QLineEdit clickable

+0

Возможный дубликат [Может ли QWidget обнаруживать события мыши от имени QLineEdit?] (Http://stackoverflow.com/questions/13465329/can-qwidget-detect-mouse-events-on-behalf-of-a- qlineedit) – Mel

+1

Возможный дубликат [Как получить событие Click QLineEdit в QT?] (http://stackoverflow.com/questions/6452077/how-to-get-click-event-of-qlineedit-in-qt) – Ian

+0

Это довольно тривиальная вещь. Если все, что вам нужно, это очистить редактирование строки, перемотать 'mousePressEvent' или' mouseReleaseEvent' в свой собственный класс и очистить текст. Или используйте фильтры событий, как в ссылке, приведенной выше @Ian. – Marcus

ответ

0

Try ниже код, чтобы сделать QLineEdit кликабельным:

class ClickableLabel(QLabel): 

    clicked = pyqtSignal() 
    def __init__(self,name, widget): 
     super().__init__(name, widget) 
    def mousePressEvent(self, QMouseEvent): 
     self.clicked.emit() 
0

Вот мои 2 цента ...

Определение:

from PyQt5.QtWidgets import QLineEdit 
    from PyQt5.QtCore import pyqtSlot 
    from PyQt5.QtCore import pyqtSignal 

    class cQLineEdit(QLineEdit): 
     clicked= pyqtSignal() 
     def __init__(self,widget): 
      super().__init__(widget) 
     def mousePressEvent(self,QMouseEvent): 
      self.clicked.emit() 

использование:

self.cLE = cQLineEdit(self) 
    self.cLE.setFixedWidth(20) 
    self.cLE.move(10,200) 
    self.cLE.clicked.connect(self.printText) 

def printText(self): 
    print("Yop,+++") 

Надежда это может помочь.

Смежные вопросы