pyqt踩坑实录

如何创建一个可编辑的QLabel(双击编辑,回车保存)

  1. 建立一个MyLabel类继承QWidget

  2. 布局中添加两个组件label(继承自QLabel) 和 edit(继承自QLineEdit)

  3. [重要] 设置label显示,edit隐藏

  4. 重写 mouseDoubleClick 方法,使label隐藏,edit显示

  5. 为完成编写操作设置回调(槽函数)。当editingFinished信号发出时触发该槽函数

  6. 坑点:组件创建完需立即加入layout中,否则会炸

  7. Sample

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    class SingleBuddyLabel(QWidget):
    def __init__(self,text):
    super().__init__()
    self.layout = QHBoxLayout(self)
    self.label = QLabel(text)
    self.edit = QLineEdit()
    self.layout.addWidget(self.label)
    self.layout.addWidget(self.edit)

    self.label.show()
    self.edit.hide()
    def save_edit():
    #TODO:
    self.edit.editingFinished.connect(save_edit)

    def mouseDoubleClickEvent(self,event):
    self.label.hide()
    self.edit.show()
    self.edit.setFocus()
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×