TextInput QML Type

Zeigt eine editierbare Textzeile an. Mehr...

Import Statement: import QtQuick
Inherits:

Item

Eigenschaften

Signale

Methoden

Ausführliche Beschreibung

Der Typ TextInput zeigt eine einzelne Zeile mit editierbarem Text an.

TextInput wird verwendet, um eine Texteingabezeile zu akzeptieren. Einem TextInput-Element können Eingabebeschränkungen auferlegt werden (z. B. durch validator oder inputMask), und wenn echoMode auf einen geeigneten Wert gesetzt wird, kann TextInput für ein Kennworteingabefeld verwendet werden.

Unter macOS sind die Tastenkombinationen Auf/Ab für Home/End explizit deaktiviert. Wenn Sie solche Bindungen (auf jeder Plattform) wünschen, müssen Sie sie in QML konstruieren.

Siehe auch TextEdit und Text.

Dokumentation der Eigenschaften

horizontalAlignment : enumeration

verticalAlignment : enumeration

Legt die horizontale Ausrichtung des Textes innerhalb der Breite und Höhe des Elements TextInput fest. Standardmäßig folgt die Textausrichtung der natürlichen Ausrichtung des Textes, z. B. wird Text, der von links nach rechts gelesen wird, links ausgerichtet.

TextInput hat keine vertikale Ausrichtung, da die natürliche Höhe genau der Höhe der einzelnen Textzeile entspricht. Wenn Sie die Höhe manuell auf einen größeren Wert einstellen, wird TextInput immer vertikal nach oben ausgerichtet. Sie können Anker verwenden, um den Text innerhalb eines anderen Elements nach Belieben auszurichten.

Die gültigen Werte für horizontalAlignment sind TextInput.AlignLeft, TextInput.AlignRight und TextInput.AlignHCenter.

Gültige Werte für verticalAlignment sind TextInput.AlignTop (Standard), TextInput.AlignBottom TextInput.AlignVCenter .

Wenn Sie die angehängte Eigenschaft LayoutMirroring::enabled verwenden, um Anwendungslayouts zu spiegeln, wird auch die horizontale Ausrichtung des Textes gespiegelt. Die Eigenschaft horizontalAlignment bleibt jedoch unverändert. Um die effektive horizontale Ausrichtung von TextInput abzufragen, verwenden Sie die schreibgeschützte Eigenschaft effectiveHorizontalAlignment.


bottomPadding : real

leftPadding : real

padding : real

rightPadding : real

topPadding : real

Diese Eigenschaften enthalten die Polsterung um den Inhalt. Dieser Platz ist zusätzlich zu den Eigenschaften contentWidth und contentHeight reserviert.

Die einzelnen Auffüllungseigenschaften nehmen den Wert der Eigenschaft padding an, sofern sie nicht ausdrücklich festgelegt werden. Wenn zum Beispiel padding auf 4 und leftPadding auf 8 gesetzt ist, wird 8 als linke Auffüllung verwendet.

Hinweis: Wenn für TextInput eine explizite Breite oder Höhe angegeben wird, muss darauf geachtet werden, dass sie groß genug ist, um die entsprechenden Auffüllungswerte zu berücksichtigen. Beispiel: Wenn topPadding und bottomPadding auf 10 gesetzt sind, die Höhe von TextInput aber nur auf 20, hat der Text nicht genug vertikalen Platz, um gerendert zu werden, und wird abgeschnitten.


acceptableInput : bool [read-only]

Diese Eigenschaft ist immer wahr, es sei denn, es wurde eine Gültigkeitsprüfung oder eine Eingabemaske festgelegt. Wenn ein Validator oder eine Eingabemaske festgelegt wurde, ist diese Eigenschaft nur dann wahr, wenn der aktuelle Text für den Validator oder die Eingabemaske als endgültige Zeichenkette akzeptabel ist (nicht als Zwischenzeichenkette).


activeFocusOnPress : bool

Ob die TextInput bei einem Mausklick den aktiven Fokus erhalten soll. Standardmäßig ist dies auf true gesetzt.


autoScroll : bool

Ob die TextInput scrollen soll, wenn der Text länger als die Breite ist. Standardmäßig ist dies auf true gesetzt.

Siehe auch ensureVisible().


canPaste : bool [read-only]

Gibt true zurück, wenn die TextInput beschreibbar ist und der Inhalt der Zwischenablage zum Einfügen in die TextInput geeignet ist.


canRedo : bool [read-only]

Gibt true zurück, wenn die TextInput beschreibbar ist und es undone Operationen gibt, die wiederholt werden können.


canUndo : bool [read-only]

Gibt true zurück, wenn die TextInput beschreibbar ist und frühere Operationen rückgängig gemacht werden können.


color : color

Die Textfarbe.


contentHeight : real [read-only]

Gibt die Höhe des Textes zurück, einschließlich der Höhe über der Höhe, die abgedeckt wird, wenn der Text nicht in die eingestellte Höhe passt.


contentWidth : real [read-only]

Gibt die Breite des Textes zurück, einschließlich der Breite, die über die Breite hinausgeht, die durch einen unzureichenden Umbruch verdeckt wird, wenn wrapMode gesetzt ist.


cursorDelegate : Component

Der Delegat für den Cursor im TextInput.

Wenn Sie einen cursorDelegate für eine TextInput festlegen, wird dieser Delegat zum Zeichnen des Cursors anstelle des Standardcursors verwendet. Eine Instanz des Delegaten wird erstellt und von TextInput verwaltet, wenn ein Cursor benötigt wird, und die x-Eigenschaft der Delegateninstanz wird so eingestellt, dass sie ein Pixel vor dem oberen linken Rand des aktuellen Zeichens liegt.

Beachten Sie, dass das Wurzelelement der Delegatenkomponente ein QQuickItem oder QQuickItem abgeleitetes Element sein muss.


cursorPosition : int

Die Position des Cursors in der TextInput. Der Cursor wird zwischen den Zeichen positioniert.

Hinweis: Die Zeichen beziehen sich in diesem Fall auf die Zeichenfolge der QChar Objekte, also 16-Bit-Unicode-Zeichen, und die Position wird als Index in dieser Zeichenfolge betrachtet. Dies entspricht nicht notwendigerweise einzelnen Graphemen im Schriftsystem, da ein einzelnes Graphem durch mehrere Unicode-Zeichen dargestellt werden kann, wie z. B. im Fall von Surrogatpaaren, linguistischen Ligaturen oder diakritischen Zeichen.

displayText Anders verhält es sich, wenn echoMode auf TextInput.Password gesetzt wird: dann ist jedes passwordCharacter ein "schmales" Zeichen (die cursorPosition bewegt sich immer um 1), auch wenn der Text in TextInput nicht schmal ist.


cursorRectangle : rectangle [read-only]

Das Rechteck, in dem der Standardtextcursor innerhalb der Texteingabe dargestellt wird. Nur lesen.

Die Position und Höhe eines benutzerdefinierten cursorDelegate werden aktualisiert, um dem cursorRectangle automatisch zu folgen, wenn es sich ändert. Die Breite des Delegaten wird von Änderungen des Cursor-Rechtecks nicht beeinflusst.


cursorVisible : bool

Wird auf true gesetzt, wenn TextInput einen Cursor anzeigt.

Diese Eigenschaft wird gesetzt und aufgehoben, wenn der TextInput den aktiven Fokus erhält, so dass andere Eigenschaften daran gebunden werden können, ob der Cursor gerade angezeigt wird. Da sie automatisch gesetzt und aufgehoben wird, müssen Sie beim Setzen des Wertes bedenken, dass Ihr Wert überschrieben werden kann.

Er kann direkt in einem Skript gesetzt werden, z. B. wenn ein KeyProxy Tasten an ihn weiterleiten könnte und Sie möchten, dass er aktiv aussieht, wenn dies geschieht (aber ohne ihm tatsächlich den aktiven Fokus zu geben).

Er sollte nicht direkt auf das Element gesetzt werden, wie im folgenden QML, da der angegebene Wert überschrieben wird und bei Fokusänderungen verloren geht.

TextInput {
    text: "Text"
    cursorVisible: false
}

Im obigen Schnipsel wird der Cursor immer noch sichtbar, wenn TextInput den aktiven Fokus erhält.


displayText : string [read-only]

Dies ist der Text, der in TextInput angezeigt wird.

Wenn echoMode auf TextInput::Normal eingestellt ist, hat diese Eigenschaft denselben Wert wie TextInput::text. Ansonsten enthält diese Eigenschaft den für den Benutzer sichtbaren Text, während die Eigenschaft text den tatsächlich eingegebenen Text enthält.

Hinweis: Im Gegensatz zur Eigenschaft TextInput::text enthält diese Eigenschaft partielle Texteingaben aus einer Eingabemethode.

Siehe auch preeditText.


echoMode : enumeration

Gibt an, wie der Text in der TextInput angezeigt werden soll.

KonstanteBeschreibung
TextInput.NormalZeigt den Text so an, wie er ist. (Voreinstellung)
TextInput.PasswordZeigt die passwordCharacter anstelle der tatsächlichen Zeichen an. Während der Bearbeitung werden neu eingegebene Zeichen für einen kurzen Zeitraum, der durch die Eigenschaft passwordMaskDelay festgelegt wird, als Klartext angezeigt.
TextInput.NoEchoZeigt nichts an.
TextInput.PasswordEchoOnEditDer Inhalt wird wie bei TextInput.Password maskiert. Während der Bearbeitung werden neu eingegebene Zeichen im Klartext angezeigt, solange TextInput den aktiven Fokus hat.

effectiveHorizontalAlignment : enumeration [read-only]

Wenn Sie die angehängte Eigenschaft LayoutMirroring::enabled verwenden, um Anwendungslayouts zu spiegeln, wird auch die horizontale Ausrichtung von Text gespiegelt. Die Eigenschaft horizontalAlignment bleibt jedoch unverändert. Um die effektive horizontale Ausrichtung von TextInput abzufragen, verwenden Sie die schreibgeschützte Eigenschaft effectiveHorizontalAlignment.


font.bold : bool

Legt fest, ob die Schriftgröße fett ist.


font.capitalization : enumeration

Legt die Großschreibung für den Text fest.

KonstanteBeschreibung
Font.MixedCaseder normale Fall: es wird keine Änderung der Großschreibung vorgenommen
Font.AllUppercaseändert den Text so, dass er ganz in Großbuchstaben dargestellt wird
Font.AllLowercaseändert den Text so, dass er ausschließlich in Kleinbuchstaben wiedergegeben wird
Font.SmallCapsÄndert den Text so, dass er in Kapitälchen dargestellt wird
Font.Capitalizeändert den Text so, dass das erste Zeichen eines jeden Wortes ein Großbuchstabe ist
TextInput { text: "Hello"; font.capitalization: Font.AllLowercase }

font.contextFontMerging : bool [since 6.8]

Wenn die ausgewählte Schriftart ein bestimmtes Zeichen nicht enthält, wählt Qt automatisch eine ähnlich aussehende Ersatzschriftart, die das Zeichen enthält. Standardmäßig geschieht dies auf einer Zeichen-für-Zeichen-Basis.

Das bedeutet, dass in einigen ungewöhnlichen Fällen viele verschiedene Schriftarten verwendet werden können, um einen Text zu repräsentieren, auch wenn er im selben Skript steht. Wenn Sie contextFontMerging auf true setzen, wird stattdessen versucht, die Ersatzschriftart zu finden, die der größten Teilmenge der Eingabezeichenkette entspricht. Dies ist bei Zeichenketten, in denen Glyphen fehlen, aufwendiger, kann aber zu konsistenteren Ergebnissen führen. Standardmäßig ist contextFontMerging false .

Diese Eigenschaft wurde in Qt 6.8 eingeführt.

Siehe auch QFont::StyleStrategy.


font.family : string

Setzt den Familiennamen der Schriftart.

Der Familienname unterscheidet nicht zwischen Groß- und Kleinschreibung und kann optional einen Namen des Herstellers enthalten, z.B. "Helvetica [Cronyx]". Wenn die Familie von mehr als einer Gießerei verfügbar ist und die Gießerei nicht angegeben wird, wird eine beliebige Gießerei ausgewählt. Wenn die Familie nicht verfügbar ist, wird eine Familie mit Hilfe des Algorithmus zum Abgleich von Schriften festgelegt.


font.features : object [since 6.6]

Wendet ganzzahlige Werte auf bestimmte OpenType-Merkmale an, wenn der Text auf der Grundlage des Inhalts in features geformt wird. Dies bietet einen erweiterten Zugriff auf den Schriftformungsprozess und kann zur Unterstützung von Schriftmerkmalen verwendet werden, die sonst nicht von der API abgedeckt werden.

Die Schriftmerkmale werden durch eine Zuordnung von Tags mit vier Buchstaben zu Ganzzahlwerten dargestellt. Dieser Integer-Wert, der zusammen mit dem Tag übergeben wird, stellt in den meisten Fällen einen booleschen Wert dar: Ein Nullwert bedeutet, dass die Funktion deaktiviert ist, und ein Wert ungleich Null bedeutet, dass sie aktiviert ist. Bei bestimmten Schriftfunktionen kann er jedoch auch anders interpretiert werden. Bei der Anwendung auf das Merkmal salt ist der Wert beispielsweise ein Index, der die zu verwendende stilistische Alternative angibt.

Das Schriftmerkmal frac konvertiert zum Beispiel diagonale Brüche, die durch einen Schrägstrich getrennt sind (wie 1/2), in eine andere Darstellung. In der Regel wird dabei der gesamte Bruch in eine einzelne Zeichenbreite umgewandelt (z. B. ½).

Wenn eine Schriftart das Merkmal frac unterstützt, kann es im Shaper wie im folgenden Code aktiviert werden:

Text {
    text: "One divided by two is 1/2"
    font.family: "MyFractionFont"
    font.features: { "frac": 1 }
}

Mehrere Merkmale können in derselben Zuordnung mit Werten belegt werden. Wenn Sie zum Beispiel auch das Kerning für die Schriftart deaktivieren möchten, können Sie dies wie folgt explizit deaktivieren:

Text {
    text: "One divided by two is 1/2"
    font.family: "MyFractionFont"
    font.features: { "frac": 1, "kern": 0 }
}

Sie können die Schrifteigenschaften auch in einem Objekt sammeln:

Text {
    text: "One divided by two is 1/2"
    font: {
        family: "MyFractionFont"
        features: { "frac": 1, "kern": 0 }
    }
}

Hinweis: Standardmäßig aktiviert und deaktiviert Qt bestimmte Schriftfunktionen basierend auf anderen Schrifteigenschaften. Insbesondere wird die Funktion kern in Abhängigkeit von der Eigenschaft font.kerning des QFont aktiviert/deaktiviert. Darüber hinaus werden alle Ligaturfunktionen (liga, clig, dlig, hlig) deaktiviert, wenn ein font.letterSpacing gesetzt ist, aber nur für Schriftsysteme, bei denen die Verwendung von Ligaturen kosmetisch ist. Für Schriftsysteme, in denen Ligaturen erforderlich sind, bleiben die Merkmale in ihrem Standardzustand. Die Werte, die mit font.features gesetzt werden, setzen das Standardverhalten außer Kraft. Wenn zum Beispiel "kern" auf 1 gesetzt ist, wird das Kerning immer aktiviert, unabhängig davon, ob die Eigenschaft font.kerning auf false gesetzt ist. Wenn sie auf 0 gesetzt ist, wird sie immer deaktiviert sein.

Diese Eigenschaft wurde in Qt 6.6 eingeführt.

Siehe auch QFont::setFeature().


font.hintingPreference : enumeration

Setzt den bevorzugten Hinweis auf den Text. Dies ist ein Hinweis an das zugrundeliegende Text-Rendering-System, einen bestimmten Grad an Hinting zu verwenden, und wird von verschiedenen Plattformen unterschiedlich unterstützt. Weitere Einzelheiten finden Sie in der Tabelle in der Dokumentation zu QFont::HintingPreference.

Hinweis: Diese Eigenschaft hat nur eine Wirkung, wenn sie zusammen mit dem Rendering-Typ TextInput.NativeRendering verwendet wird.

KonstanteBeschreibung
Font.PreferDefaultHintingVerwendet die Standard-Hinting-Ebene für die Zielplattform.
Font.PreferNoHintingWenn möglich, rendern Sie Text, ohne die Umrisse der Glyphen anzudeuten. Das Textlayout ist typografisch korrekt, wobei dieselben Metriken verwendet werden, die z. B. beim Drucken verwendet werden.
Font.PreferVerticalHintingWenn möglich, rendern Sie den Text ohne horizontales Hinting, aber richten Sie die Glyphen in vertikaler Richtung am Pixelraster aus. Der Text wird auf Bildschirmen, deren Dichte für eine genaue Darstellung der Glyphen zu gering ist, schärfer erscheinen. Da die horizontalen Metriken der Glyphen jedoch nicht angedeutet sind, ist das Textlayout auf Geräten mit höherer Dichte (z. B. Druckern) skalierbar, ohne dass Details wie Zeilenumbrüche beeinträchtigt werden.
Font.PreferFullHintingWenn möglich, rendern Sie Text mit Hinting sowohl in horizontaler als auch in vertikaler Richtung. Der Text wird so verändert, dass er auf dem Zielgerät optimal lesbar ist. Da die Metrik jedoch von der Zielgröße des Textes abhängt, werden die Positionen von Glyphen, Zeilenumbrüchen und anderen typografischen Details nicht skaliert, was bedeutet, dass ein Textlayout auf Geräten mit unterschiedlicher Pixeldichte anders aussehen kann.
TextInput { text: "Hello"; renderType: TextInput.NativeRendering; font.hintingPreference: Font.PreferVerticalHinting }

font.italic : bool

Legt fest, ob die Schrift einen kursiven Stil hat.


font.kerning : bool

Aktiviert oder deaktiviert die OpenType-Funktion Kerning bei der Textgestaltung. Die Deaktivierung dieser Funktion kann die Leistung beim Erstellen oder Ändern des Textes auf Kosten einiger kosmetischer Merkmale verbessern. Der Standardwert ist true.

TextInput { text: "OATS FLAVOUR WAY"; font.kerning: false }

font.letterSpacing : real

Legt die Buchstabenabstände für die Schriftart fest.

Der Buchstabenabstand ändert den Standardabstand zwischen einzelnen Buchstaben in der Schriftart. Ein positiver Wert vergrößert den Buchstabenabstand um die entsprechenden Pixel, ein negativer Wert verkleinert den Abstand.


font.pixelSize : int

Legt die Schriftgröße in Pixeln fest.

Die Verwendung dieser Funktion macht die Schrift geräteabhängig. Verwenden Sie pointSize, um die Größe der Schrift geräteunabhängig einzustellen.


font.pointSize : real

Legt die Schriftgröße in Punkten fest. Die Punktgröße muss größer als Null sein.


font.preferShaping : bool

Manchmal wendet eine Schriftart komplexe Regeln auf eine Reihe von Zeichen an, um sie korrekt darzustellen. In einigen Schriftsystemen, wie z. B. den brahmanischen Schriften, ist dies für die Lesbarkeit des Textes erforderlich, aber z. B. in der lateinischen Schrift ist es nur ein kosmetisches Merkmal. Wenn Sie die Eigenschaft preferShaping auf false setzen, werden alle diese Funktionen deaktiviert, wenn sie nicht benötigt werden, was in den meisten Fällen zu einer Leistungssteigerung führt.

Der Standardwert ist true.

TextInput { text: "Some text"; font.preferShaping: false }

font.preferTypoLineMetrics : bool [since 6.8]

konkurrierende Sätze der vertikalen Linienmetriken, die die ascent, descent und leading der Schriftart liefern. Diese werden oft als win (Windows) Metriken und typo (typografische) Metriken bezeichnet. Obwohl die Spezifikation die Verwendung der typo -Metriken für den Zeilenabstand empfiehlt, bevorzugen viele Anwendungen die win -Metriken, es sei denn, das USE_TYPO_METRICS -Flag ist im fsSelection-Feld der Schriftart gesetzt. Aus Gründen der Rückwärtskompatibilität ist dies auch bei Qt-Anwendungen der Fall. Dies ist kein Problem für Schriften, die das USE_TYPO_METRICS -Flag setzen, um anzuzeigen, dass die typo -Metriken gültig sind, oder für Schriften, bei denen die win -Metriken und typo -Metriken übereinstimmen. Bei bestimmten Schriftarten können die win -Metriken jedoch größer sein als der bevorzugte Zeilenabstand und das USE_TYPO_METRICS -Flag kann versehentlich nicht gesetzt werden. Für solche Schriftarten kann die Einstellung font.preferTypoLineMetrics bessere Ergebnisse liefern.

Standardmäßig ist preferTypoLineMetrics auf false gesetzt.

Diese Eigenschaft wurde in Qt 6.8 eingeführt.

Siehe auch QFont::StyleStrategy.


font.strikeout : bool

Legt fest, ob die Schriftart einen Durchstreichungsstil hat.


font.styleName : string

Legt den Stilnamen der Schriftart fest.

Der Stilname unterscheidet nicht zwischen Groß- und Kleinschreibung. Wenn diese Eigenschaft gesetzt ist, wird die Schrift mit dem Stilnamen verglichen und nicht mit den Schrifteigenschaften font.weight, font.bold und font.italic.


font.underline : bool

Legt fest, ob der Text unterstrichen ist.


font.variableAxes : object [since 6.7]

Wendet Fließkommawerte auf variable Achsen in variablen Schriftarten an.

Variable Schriftarten bieten eine Möglichkeit, mehrere Variationen (mit unterschiedlichen Gewichten, Breiten oder Stilen) in derselben Schriftdatei zu speichern. Die Variationen werden als Fließkommawerte für einen vordefinierten Satz von Parametern angegeben, die als "variable Achsen" bezeichnet werden. Spezifische Instanzen werden typischerweise vom Fontdesigner mit Namen versehen, und in Qt können diese mit setStyleName() genau wie traditionelle Unterfamilien ausgewählt werden.

In manchen Fällen ist es auch nützlich, beliebige Werte für die verschiedenen Achsen anzugeben. Wenn zum Beispiel eine Schriftart eine Unterfamilie Regular und Bold hat, möchten Sie vielleicht ein Gewicht dazwischen haben. Sie könnten dies dann manuell anfordern, indem Sie einen benutzerdefinierten Wert für die Achse "wght" in der Schriftart angeben.

Text {
    text: "Foobar"
    font.family: "MyVariableFont"
    font.variableAxes: { "wght": (Font.Normal + Font.Bold) / 2.0 }
}

Wenn die "wght"-Achse von der Schriftart unterstützt wird und der angegebene Wert innerhalb des definierten Bereichs liegt, wird eine Schriftart mit dem Gewicht 550,0 bereitgestellt.

Es gibt einige Standardachsen, die von vielen Schriftarten unterstützt werden, wie "wght" (Gewicht), "wdth" (Breite), "ital" (kursiv) und "opsz" (optische Größe). Sie haben jeweils eigene Bereiche, die in der Schriftart selbst definiert sind. Zum Beispiel kann "wght" von 100 bis 900 reichen (QFont::Thin bis QFont::Black), während "ital" von 0 bis 1 reichen kann (von nicht kursiv bis vollständig kursiv).

Eine Schriftart kann auch benutzerdefinierte Achsen definieren; die einzige Einschränkung besteht darin, dass der Name die Anforderungen für QFont::Tag (Folge von vier lateinischen-1 Zeichen) erfüllen muss.

Standardmäßig sind keine variablen Achsen festgelegt.

Hinweis: Unter Windows werden variable Achsen nicht unterstützt, wenn das optionale GDI Font Backend verwendet wird.

Diese Eigenschaft wurde in Qt 6.7 eingeführt.

Siehe auch QFont::setVariableAxis().


font.weight : int

Das angeforderte Gewicht der Schriftart. Das angeforderte Gewicht muss eine ganze Zahl zwischen 1 und 1000 oder einer der vordefinierten Werte sein:

KonstanteBeschreibung
Font.Thin100
Font.ExtraLight200
Font.Light300
Font.Normal400 (Standard)
Font.Medium500
Font.DemiBold600
Font.Bold700
Font.ExtraBold800
Font.Black900
TextInput { text: "Hello"; font.weight: Font.DemiBold }

font.wordSpacing : real

Legt den Wortabstand für die Schriftart fest.

Der Wortabstand ändert den Standardabstand zwischen den einzelnen Wörtern. Ein positiver Wert vergrößert den Wortabstand um eine entsprechende Anzahl von Pixeln, während ein negativer Wert den Abstand zwischen den Wörtern entsprechend verkleinert.


inputMask : string

Ermöglicht es Ihnen, auf TextInput eine Eingabemaske zu setzen, die die zulässigen Texteingaben einschränkt. Weitere Einzelheiten finden Sie unter QLineEdit::inputMask, da genau dieselben Maskenzeichenfolgen auch von TextInput verwendet werden.

Siehe auch acceptableInput und validator.


inputMethodComposing : bool [read-only]

Diese Eigenschaft gilt unabhängig davon, ob die TextInput eine partielle Texteingabe von einer Eingabemethode hat.

Während eine Eingabemethode komponiert, kann sie sich auf Maus- oder Tastenereignisse von TextInput verlassen, um den Teiltext zu bearbeiten oder zu bestätigen. Diese Eigenschaft kann verwendet werden, um zu bestimmen, wann Ereignis-Handler deaktiviert werden sollen, die den korrekten Betrieb einer Eingabemethode stören könnten.


inputMethodHints : enumeration

Gibt der Eingabemethode Hinweise auf den erwarteten Inhalt der Texteingabe und wie sie funktionieren soll.

Der Wert ist eine bitweise Kombination von Flags, oder Qt.ImhNone, wenn keine Hinweise gesetzt sind.

Flags, die das Verhalten verändern, sind:

KonstanteBeschreibung
Qt.ImhHiddenTextZeichen sollten versteckt werden, wie es typischerweise bei der Eingabe von Passwörtern verwendet wird.
Qt.ImhSensitiveDataEingegebener Text sollte von der aktiven Eingabemethode nicht in einem persistenten Speicher wie dem prädiktiven Benutzerwörterbuch gespeichert werden.
Qt.ImhNoAutoUppercaseDie Eingabemethode sollte nicht versuchen, automatisch auf Großbuchstaben umzuschalten, wenn ein Satz endet.
Qt.ImhPreferNumbersZahlen werden bevorzugt (sind aber nicht erforderlich).
Qt.ImhPreferUppercaseGroßbuchstaben werden bevorzugt (sind aber nicht erforderlich).
Qt.ImhPreferLowercaseKleinbuchstaben werden bevorzugt (sind aber nicht erforderlich).
Qt.ImhNoPredictiveTextVerwenden Sie bei der Eingabe keine Textvorhersage (d. h. Wörterbuchsuche).
Qt.ImhDateDer Texteditor funktioniert wie ein Datumsfeld.
Qt.ImhTimeDer Texteditor funktioniert wie ein Zeitfeld.

Flags, die die Eingabe einschränken (Exklusivflags), sind:

KonstanteBeschreibung
Qt.ImhDigitsOnlyEs sind nur Ziffern erlaubt.
Qt.ImhFormattedNumbersOnlyEs ist nur die Eingabe von Zahlen erlaubt. Dies schließt Dezimalpunkt und Minuszeichen ein.
Qt.ImhUppercaseOnlyEs ist nur die Eingabe von Großbuchstaben erlaubt.
Qt.ImhLowercaseOnlyNur die Eingabe von Kleinbuchstaben ist erlaubt.
Qt.ImhDialableCharactersOnlyEs sind nur Zeichen erlaubt, die für die Telefonwahl geeignet sind.
Qt.ImhEmailCharactersOnlyEs sind nur Zeichen erlaubt, die für E-Mail-Adressen geeignet sind.
Qt.ImhUrlCharactersOnlyNur Zeichen, die für URLs geeignet sind, sind erlaubt.

Masken:

KonstanteBeschreibung
Qt.ImhExclusiveInputMaskDiese Maske ergibt einen Wert ungleich Null, wenn eines der Exklusiv-Flags verwendet wird.

length : int [read-only]

Gibt die Gesamtzahl der Zeichen im Element TextInput zurück.

Wenn TextInput eine inputMask hat, enthält die Länge Maskenzeichen und kann von der Länge der Zeichenkette abweichen, die von der Eigenschaft text zurückgegeben wird.

Diese Eigenschaft kann schneller sein als die Abfrage der Länge der text Eigenschaft, da sie kein Kopieren oder Konvertieren der internen String-Daten von TextInput erfordert.


maximumLength : int

Die maximal zulässige Länge des Textes in der TextInput.

Wenn der Text zu lang ist, wird er an dieser Grenze abgeschnitten.

Standardmäßig enthält diese Eigenschaft einen Wert von 32767.


mouseSelectionMode : enumeration

Gibt an, wie der Text mit der Maus ausgewählt werden soll.

KonstanteBeschreibung
TextInput.SelectCharacters(Standard) Die Auswahl wird mit einzelnen Zeichen aktualisiert.
TextInput.SelectWordsDie Auswahl wird mit ganzen Wörtern aktualisiert.

Diese Eigenschaft gilt nur, wenn selectByMouse wahr ist.


overwriteMode : bool

Ob der vom Benutzer eingegebene Text den vorhandenen Text überschreibt.

Wie bei vielen Texteditoren kann das Texteditor-Widget so konfiguriert werden, dass vorhandener Text mit neuem, vom Benutzer eingegebenem Text eingefügt oder überschrieben wird.

Wenn diese Eigenschaft true lautet, wird der vorhandene Text Zeichen für Zeichen mit dem neuen Text überschrieben; andernfalls wird der Text an der Cursorposition eingefügt und der vorhandene Text verdrängt.

Standardmäßig ist diese Eigenschaft false (neuer Text überschreibt den vorhandenen Text nicht).


passwordCharacter : string

Dies ist das Zeichen, das angezeigt wird, wenn echoMode auf Password oder PasswordEchoOnEdit gesetzt ist. Standardmäßig handelt es sich um das vom Plattformthema verwendete Kennwortzeichen.

Wenn diese Eigenschaft auf eine Zeichenfolge mit mehr als einem Zeichen eingestellt ist, wird das erste Zeichen verwendet. Wenn die Zeichenkette leer ist, wird der Wert ignoriert und die Eigenschaft wird nicht gesetzt.


passwordMaskDelay : int

Legt die Verzögerung in Millisekunden fest, bevor das sichtbare Zeichen mit dem Kennwortzeichen maskiert wird.

Die Reset-Methode wird durch Zuweisung von undefiniert aufgerufen.


persistentSelection : bool

Legt fest, ob TextInput seine Auswahl beibehalten soll, wenn es den aktiven Fokus an ein anderes Element in der Szene verliert. Standardmäßig ist dies auf false gesetzt;


preeditText : string [read-only]

Diese Eigenschaft enthält teilweise Texteingaben von einer Eingabemethode.

Um partiellen Text, der aus Vorhersagen resultiert, zu deaktivieren, setzen Sie das Qt.ImhNoPredictiveText Flag in inputMethodHints.

Siehe auch displayText und inputMethodHints.


readOnly : bool

Legt fest, ob Benutzereingaben den Inhalt von TextInput verändern können.

Wenn readOnly auf true gesetzt ist, hat die Benutzereingabe keinen Einfluss auf die Texteigenschaft. Alle Bindungen oder Versuche, die Texteigenschaft zu setzen, werden weiterhin funktionieren.


renderType : enumeration

Überschreiben Sie den Standard-Rendering-Typ für diese Komponente.

Unterstützte Rendertypen sind:

KonstantBeschreibung
TextInput.QtRenderingText wird mit einem skalierbaren Abstandsfeld für jede Glyphe gerendert.
TextInput.NativeRenderingText wird mit einer plattformspezifischen Technik gerendert.
TextInput.CurveRenderingText wird mit einem Kurvenrasterer gerendert, der direkt auf der Grafikhardware läuft. (Eingeführt in Qt 6.7.0.)

Wählen Sie TextInput.NativeRendering, wenn Sie es vorziehen, dass der Text auf der Zielplattform nativ aussieht und Sie keine erweiterten Funktionen wie die Transformation des Textes benötigen. Die Verwendung solcher Funktionen in Kombination mit dem Rendering-Typ NativeRendering führt zu schlechten und manchmal pixeligen Ergebnissen.

Sowohl TextInput.QtRendering als auch TextInput.CurveRendering sind hardwarebeschleunigte Techniken. QtRendering ist die schnellere der beiden Techniken, verbraucht aber mehr Speicher und führt bei großen Formaten zu Rendering-Artefakten. CurveRendering sollte als Alternative in Betracht gezogen werden, wenn QtRendering keine guten visuellen Ergebnisse liefert oder wenn die Reduzierung des Grafikspeicherverbrauchs Priorität hat.

Der Standard-Rendering-Typ wird durch QQuickWindow::textRenderType() bestimmt.


selectByMouse : bool

Die Voreinstellung ist true.

Wenn true, kann der Benutzer den Text wie gewohnt mit der Maus auswählen.

Hinweis: In Versionen vor 6.4 war der Standardwert false; wenn Sie diese Eigenschaft jedoch aktivierten, konnten Sie Text auch auf einem Touchscreen auswählen, indem Sie Ihren Finger darüber zogen. Dies störte das Flicking, wenn TextInput innerhalb eines Flickable verwendet wurde. Aus Gründen der Konsistenz mit TextField bedeutet selectByMouse jetzt wirklich das, was es aussagt: wenn true, können Sie Text nur durch Ziehen mit der Maus auswählen. Wenn diese Änderung für Ihre Anwendung nicht geeignet ist, können Sie selectByMouse auf false setzen oder eine ältere API-Version (z. B. import QtQuick 6.3) importieren, um zum vorherigen Verhalten zurückzukehren. Die Option, das Verhalten durch Ändern der Importversion umzukehren, wird in einer späteren Version von Qt entfernt werden.


selectedText : string [read-only]

Diese schreibgeschützte Eigenschaft liefert den aktuell in der Texteingabe ausgewählten Text.

Sie entspricht dem folgenden Schnipsel, ist aber schneller und einfacher zu benutzen.

myTextInput.text.toString().substring(myTextInput.selectionStart,
    myTextInput.selectionEnd);

selectedTextColor : color

Die Farbe des hervorgehobenen Textes, der in Auswahlen verwendet wird.


selectionColor : color

Die Farbe der Texthervorhebung, die hinter Markierungen verwendet wird.


selectionEnd : int [read-only]

Die Cursorposition nach dem letzten Zeichen in der aktuellen Auswahl.

Diese Eigenschaft ist schreibgeschützt. Um die Auswahl zu ändern, verwenden Sie select(start,end), selectAll(), oder selectWord().

Siehe auch selectionStart, cursorPosition, und selectedText.


selectionStart : int [read-only]

Die Cursorposition vor dem ersten Zeichen in der aktuellen Auswahl.

Diese Eigenschaft ist schreibgeschützt. Um die Auswahl zu ändern, verwenden Sie select(start,end), selectAll(), oder selectWord().

Siehe auch selectionEnd, cursorPosition, und selectedText.


text : string

Der Text im Feld TextInput.

Beachten Sie, dass einige Tastaturen eine Vorhersagefunktion verwenden. In diesem Fall ist der Text, der durch die Eingabemethode zusammengesetzt wird, nicht Teil dieser Eigenschaft. Der Teil des Textes, der sich auf die Vorhersagen bezieht, wird unterstrichen und in der Eigenschaft preeditText gespeichert. Um den gesamten Text in TextInput angezeigt zu bekommen, verwenden Sie die Eigenschaft displayText.

Siehe auch clear(), displayText, und preeditText.


validator : Validator

Ermöglicht das Festlegen eines Validators auf TextInput. Wenn ein Validator festgelegt ist, akzeptiert TextInput nur Eingaben, die die Texteigenschaft in einem akzeptablen oder Zwischenzustand belassen. Das Akzeptanzsignal wird nur gesendet, wenn sich der Text in einem akzeptablen Zustand befindet, wenn die Eingabetaste gedrückt wird.

Die derzeit unterstützten Validatoren sind IntValidator, DoubleValidator und RegularExpressionValidator. Nachfolgend ein Beispiel für die Verwendung von Validatoren, das die Eingabe von ganzen Zahlen zwischen 11 und 31 in die Texteingabe erlaubt:

import QtQuick 2.0
TextInput{
    validator: IntValidator{bottom: 11; top: 31;}
    focus: true
}

Siehe auch acceptableInput und inputMask.


wrapMode : enumeration

Setzen Sie diese Eigenschaft, um den Text auf die Breite des Elements TextInput umzubrechen. Der Text wird nur umbrochen, wenn eine explizite Breite festgelegt wurde.

KonstanteBeschreibung
TextInput.NoWrap(Standard) Es wird kein Umbruch durchgeführt. Wenn der Text nicht genügend Zeilenumbrüche enthält, überschreitet contentWidth die eingestellte Breite.
TextInput.WordWrapDer Umbruch wird nur an Wortgrenzen durchgeführt. Wenn ein Wort zu lang ist, überschreitet contentWidth eine festgelegte Breite.
TextInput.WrapAnywhereDer Umbruch erfolgt an jeder beliebigen Stelle einer Zeile, auch wenn er in der Mitte eines Wortes erfolgt.
TextInput.WrapWenn möglich, erfolgt der Umbruch an einer Wortgrenze; andernfalls erfolgt er an der entsprechenden Stelle der Zeile, auch mitten im Wort.

Die Voreinstellung ist TextInput.NoWrap. Wenn Sie eine Breite festlegen, sollten Sie TextInput.Wrap verwenden.


Signal Dokumentation

accepted()

Dieses Signal wird ausgegeben, wenn die Return- oder Enter-Taste gedrückt wird. Beachten Sie, dass das Signal nur dann ausgegeben wird, wenn die Texteingabe auf validator oder inputMask gesetzt ist und sich in einem akzeptablen Zustand befindet.

Hinweis: Der entsprechende Handler ist onAccepted.


editingFinished()

Dieses Signal wird ausgegeben, wenn die Return- oder Enter-Taste gedrückt wird oder die Texteingabe den Fokus verliert. Beachten Sie, dass dieses Signal nur ausgegeben wird, wenn ein Validator oder inputMask auf die Texteingabe gesetzt ist und Enter/Return gedrückt wird, wenn die Eingabe dem inputMask folgt und der Validator einen akzeptablen Zustand zurückgibt.

Hinweis: Der entsprechende Handler ist onEditingFinished.


textEdited()

Dieses Signal wird immer dann ausgegeben, wenn der Text bearbeitet wird. Im Gegensatz zu textChanged() wird dieses Signal nicht ausgegeben, wenn der Text programmatisch geändert wird, z. B. durch Änderung des Werts der Eigenschaft text oder durch Aufruf von clear().

Hinweis: Der entsprechende Handler ist onTextEdited.


Methode Dokumentation

clear()

Löscht den Inhalt der Texteingabe und setzt partielle Texteingaben aus einer Eingabemethode zurück.

Verwenden Sie diese Methode, anstatt die Eigenschaft text auf einen leeren String zu setzen.

Siehe auch QInputMethod::reset().


copy()

Kopiert den aktuell ausgewählten Text in die Systemzwischenablage.

Hinweis: Wenn der Echomodus auf einen anderen Modus als Normal eingestellt ist, funktioniert das Kopieren nicht. Damit soll verhindert werden, dass das Kopieren als Methode zur Umgehung von Kennwortfunktionen der Zeilensteuerung verwendet wird.


cut()

Verschiebt den aktuell markierten Text in die Systemzwischenablage.

Hinweis: Wenn der Echomodus auf einen anderen Modus als Normal eingestellt ist, funktioniert das Ausschneiden nicht. Damit soll verhindert werden, dass das Ausschneiden als Methode zur Umgehung der Kennwortfunktionen der Zeilensteuerung verwendet wird.


deselect()

Entfernt die aktive Textauswahl.


ensureVisible(int position)

Scrollt den Inhalt der Texteingabe, so dass das angegebene Zeichen position innerhalb der Grenzen der Texteingabe sichtbar ist.

Siehe auch autoScroll.


string getText(int start, int end)

Gibt den Textabschnitt zurück, der sich zwischen den Positionen start und end befindet.

Wenn TextInput ein inputMask enthält, schließt die Länge Maskenzeichen ein.


insert(int position, string text)

Fügt text in TextInput bei position ein.


isRightToLeft(int start, int end)

Gibt true zurück, wenn die natürliche Leserichtung des zwischen den Positionen start und end gefundenen Editortextes von rechts nach links ist.


moveCursorSelection(int position, SelectionMode mode)

Bewegt den Cursor zu position und aktualisiert die Auswahl entsprechend dem optionalen Parameter mode. (Um nur den Cursor zu bewegen, setzen Sie die Eigenschaft cursorPosition.)

Wenn diese Methode aufgerufen wird, wird zusätzlich entweder selectionStart oder selectionEnd (je nachdem, was sich an der vorherigen Cursorposition befand) auf die angegebene Position gesetzt. Auf diese Weise können Sie den ausgewählten Textbereich leicht erweitern und verkleinern.

Der Auswahlmodus gibt an, ob die Auswahl pro Zeichen oder pro Wort aktualisiert werden soll. Wenn nichts angegeben wird, ist der Auswahlmodus standardmäßig auf TextInput.SelectCharacters eingestellt.

KonstanteBeschreibung
TextInput.SelectCharactersSetzt entweder selectionStart oder selectionEnd (je nachdem, was sich an der vorherigen Cursorposition befand) an die angegebene Position.
TextInput.SelectWordsStellt selectionStart und selectionEnd so ein, dass alle Wörter zwischen der angegebenen Position und der vorherigen Cursorposition enthalten sind. Wörter, die sich teilweise innerhalb des Bereichs befinden, werden eingeschlossen.

Nehmen Sie zum Beispiel diese Folge von Aufrufen:

cursorPosition = 5
moveCursorSelection(9, TextInput.SelectCharacters)
moveCursorSelection(7, TextInput.SelectCharacters)

Der Cursor wird an die Position 5 bewegt, das Markierungsende wird von 5 bis 9 verlängert und dann von 9 bis 7 zurückgezogen, so dass der Text von Position 5 bis 7 ausgewählt bleibt (das 6. und 7. Zeichen).

Die gleiche Sequenz mit TextInput.SelectWords erweitert den Auswahlanfang bis zu einer Wortgrenze vor oder auf Position 5 und erweitert das Auswahlende bis zu einer Wortgrenze auf oder nach Position 9.


paste()

Ersetzt den aktuell ausgewählten Text durch den Inhalt der Systemzwischenablage.


int positionAt(real x, real y, CursorPosition position)

Diese Funktion gibt die Zeichenposition an den Positionen x und y von der linken oberen Ecke des TextInputs zurück. Position 0 liegt vor dem ersten Zeichen, Position 1 liegt nach dem ersten Zeichen, aber vor dem zweiten, und so weiter bis zur Position text.length, die nach allen Zeichen liegt.

Das bedeutet, dass diese Funktion für alle x-Werte vor dem ersten Zeichen den Wert 0 und für alle x-Werte nach dem letzten Zeichen den Wert text.length liefert. Wenn der y-Wert oberhalb des Textes liegt, wird die Position des nächstgelegenen Zeichens in der ersten Zeile zurückgegeben, wenn er unterhalb des Textes liegt, die Position des nächstgelegenen Zeichens in der letzten Zeile.

Der Parameter cursor position gibt an, wie die Cursorposition aufgelöst werden soll:

KonstanteBeschreibung
TextInput.CursorBetweenCharactersGibt die Position zwischen den Zeichen zurück, die x am nächsten liegt. Dies ist der Standardwert.
TextInput.CursorOnCharacterGibt die Position vor dem Zeichen zurück, das am nächsten bei x liegt.

rect positionToRectangle(int pos)

Diese Funktion nimmt eine Zeichenposition pos und gibt das Rechteck zurück, das der Cursor einnehmen würde, wenn er sich an dieser Zeichenposition befände.

Dies ist vergleichbar mit dem Setzen von cursorPosition und der anschließenden Abfrage des Cursor-Rechtecks, aber cursorPosition wird nicht geändert.


redo()

Wiederholt die letzte Operation, wenn redo auf available steht.


remove(int start, int end)

Entfernt den Textabschnitt, der zwischen den Positionen start und end liegt, aus TextInput.


select(int start, int end)

Bewirkt, dass der Text von start bis end ausgewählt wird.

Wenn entweder Anfang oder Ende außerhalb des Bereichs liegen, wird die Auswahl nicht geändert.

Nach dem Aufruf dieser Methode wird selectionStart zum kleineren und selectionEnd zum größeren Text (unabhängig von der Reihenfolge, die dieser Methode übergeben wurde).

Siehe auch selectionStart und selectionEnd.


selectAll()

Bewirkt, dass der gesamte Text ausgewählt wird.


selectWord()

Das Wort, das der aktuellen Cursorposition am nächsten liegt, wird ausgewählt.


undo()

Macht die letzte Operation rückgängig, wenn Rückgängig available ist. Hebt die Markierung der aktuellen Auswahl auf und aktualisiert den Beginn der Auswahl auf die aktuelle Cursorposition.


© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.