QLineEdit

Op deze pagina:

De Line Edit widget is bedoeld voor de invoer van een regel tekst. De Line Edit widget is een instantie van de QLineEdit class. Je kunt tekst invoeren en bewerken.

Via het muismenu heb je de mogelijkheden Undo (ongedaan maken), Redo (opnieuw doen), Cut (knippen), Copy (kopiëren), Paste (plakken), Delete (wissen) en Select All (alles selecteren).

Methoden van de QLineEdit class

setEchoMode()
hiermee wordt ingesteld hoe de inhoud van de Line Edit widget wordt getoond, de volgende mogelijkheden zijn er:
  • Normal dit is de default, alles wat jet typt is zichtbaar
  • NoEcho niets wordt getoond
  • Password wachtwoord invoer, sterretjes of balletjes i.p.v. de echte tekst
  • PasswordEchoOnEdit echte tekst als je deze bewerkt, anders ook sterretjes of balletjes

Voorbeeld:


edit = QLineEdit('eerste tekst', self)
edit.move(30, 65)

edit.setEchoMode(edit.Password)

edit.setEchoMode(edit.NoEcho)

edit.setEchoMode(edit.PasswordEchoOnEdit)
maxLength()
dit geeft de maximale lengte van de tekst terug die ingevoerd kan worden, standaard is dit 32767
setText()
tekst toewijzen aan de Line Edit widget
text()
tekst opvragen die in de Line Edit widget staat
clear()
maakt de Line Edit widget leeg
setReadOnly()
als deze op True wordt gezet, dan is de Line Edit widget RaedOnly, er kan gelezen en gekopiëerd worden, maar niet geschreven
isReadOnly
geeft True als de Line Edit in ReadOnly mode staat
setEnabled()
als deze op False staat, dan kan er alleen tekst worden toegewezen via setText()
setFocus()
geeft de Line Edit widget de focus

Venster met lineEdit en achtergrond

Met Qt Creator kan je ook vrij eenvoudig code produceren die nodig is voor een gevarieerde achtergrond van je venster.


#!/usr/bin/python3
# -*- coding: utf-8 -*-

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

class Venster(QWidget):

    def __init__(self):
        super(Venster, self).__init__()
        self.title = "Kopieren en plakken"
        
        # Dit komt uit Qt Creator:
        icon = QtGui.QIcon()
        icon.addPixmap(QtGui.QPixmap("icon.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.setWindowIcon(icon)
        self.setStyleSheet("background-color: qconicalgradient(cx:0, cy:0,\
                            angle:135, stop:0 rgba(255, 255, 0, 69), \
                           stop:0.375 rgba(255, 255, 0, 69), stop:0.423533 rgba(251, 255, 0, 145), \
                           stop:0.45 rgba(247, 255, 0, 208), \
                           stop:0.477581 rgba(255, 244, 71, 130), stop:0.518717 rgba(255, 218, 71, 130), \
                           stop:0.55 rgba(255, 255, 0, 255), \
                           stop:0.57754 rgba(255, 203, 0, 130), stop:0.625 rgba(255, 255, 0, 69),\
                           stop:1 rgba(255, 255, 0, 69));")

        self.bronTekst = QLineEdit(self)
        self.bronTekst.setGeometry(QtCore.QRect(10, 10, 361, 31))

        self.kopieren = QPushButton(self)
        self.kopieren.setGeometry(QtCore.QRect(10, 60, 84, 31))

        self.plakken = QPushButton(self)
        self.plakken.setGeometry(QtCore.QRect(10, 140, 84, 31))

        self.doelTekst = QLineEdit(self)
        self.doelTekst.setGeometry(QtCore.QRect(10, 200, 361, 31))

        self.label = QLabel(self)
        self.label.setGeometry(QtCore.QRect(100, 100, 271, 21))
        
        self.kopieren.setText("Kopieren")
        self.plakken.setText("Plakken")
        self.label.setText("Kopieer tekst van boven naar beneden")
        
        self.kopieren.pressed.connect(lambda: self.bronTekst.selectAll())
        self.kopieren.released.connect(lambda: self.bronTekst.copy())
        self.plakken.pressed.connect(lambda: self.doelTekst.paste())
        
        self.setWindowTitle(self.title)
        self.show()
        
def main():

    app = QApplication(sys.argv)
    window = Venster()
    sys.exit(app.exec_())

if __name__ == '__main__':
    main()

lineEdit met achtergond

De signals en slots van lineEdit

Signals:

  • clicked()
  • clicked(bool)
  • pressed()
  • released()
  • toggled(bool)

Slots:

  • clear()
  • copy()
  • cut()
  • paste()
  • redo()
  • selectAll()
  • undo()

 

Verwante artikelen