TextInput QML Type
Zeigt eine editierbare Textzeile an. Mehr...
Eigenschaften
- acceptableInput : bool
- activeFocusOnPress : bool
- autoScroll : bool
- bottomPadding : real
- canPaste : bool
- canRedo : bool
- canUndo : bool
- color : color
- contentHeight : real
- contentWidth : real
- cursorDelegate : Component
- cursorPosition : int
- cursorRectangle : rectangle
- cursorVisible : bool
- displayText : string
- echoMode : enumeration
- effectiveHorizontalAlignment : enumeration
- font.bold : bool
- font.capitalization : enumeration
- font.contextFontMerging : bool
(since 6.8) - font.family : string
- font.features : object
(since 6.6) - font.hintingPreference : enumeration
- font.italic : bool
- font.kerning : bool
- font.letterSpacing : real
- font.pixelSize : int
- font.pointSize : real
- font.preferShaping : bool
- font.preferTypoLineMetrics : bool
(since 6.8) - font.strikeout : bool
- font.styleName : string
- font.underline : bool
- font.variableAxes : object
(since 6.7) - font.weight : int
- font.wordSpacing : real
- horizontalAlignment : enumeration
- inputMask : string
- inputMethodComposing : bool
- inputMethodHints : enumeration
- leftPadding : real
- length : int
- maximumLength : int
- mouseSelectionMode : enumeration
- overwriteMode : bool
- padding : real
- passwordCharacter : string
- passwordMaskDelay : int
- persistentSelection : bool
- preeditText : string
- readOnly : bool
- renderType : enumeration
- rightPadding : real
- selectByMouse : bool
- selectedText : string
- selectedTextColor : color
- selectionColor : color
- selectionEnd : int
- selectionStart : int
- text : string
- topPadding : real
- validator : Validator
- verticalAlignment : enumeration
- wrapMode : enumeration
Signale
Methoden
- void clear()
- void copy()
- void cut()
- void deselect()
- void ensureVisible(int position)
- string getText(int start, int end)
- void insert(int position, string text)
- bool isRightToLeft(int start, int end)
- void moveCursorSelection(int position, SelectionMode mode)
- void paste()
- int positionAt(real x, real y, CursorPosition position)
- rect positionToRectangle(int pos)
- void redo()
- void remove(int start, int end)
- void select(int start, int end)
- void selectAll()
- void selectWord()
- void undo()
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.
Um auf die Annahme von Text durch den Benutzer über die Return- oder Enter-Tasten zu reagieren, verarbeiten Sie das Signal accepted(). Wenn Return oder Enter gedrückt werden und die Texteingabe den Fokus verliert, wird editingFinished() ausgegeben. Wenn der Text in irgendeiner Weise vom Benutzer bearbeitet wird, wird textEdited() ausgegeben. Diese Signale sollten in den meisten Fällen gegenüber textChanged() bevorzugt 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.
Dokumentation der Eigenschaften
acceptableInput : bool [read-only]
Diese Eigenschaft ist immer wahr, es sei denn, es wurde ein Validator 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 Zeichenfolge (nicht als Zwischenzeichenfolge) akzeptabel ist.
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().
Diese Eigenschaften enthalten die Füllung 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.
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 TextInput beschreibbar ist und es undone Operationen gibt, die erneut ausgeführt werden können.
canUndo : bool [read-only]
Gibt true zurück, wenn 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 über die Breite hinaus, 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 Stammelement der Delegatenkomponente ein QQuickItem oder QQuickItem abgeleitetes Element sein muss.
cursorPosition : int
Die Position des Cursors in TextInput. Der Cursor wird zwischen den Zeichen positioniert.
Hinweis: Die Zeichen beziehen sich in diesem Fall auf die Zeichenfolge QChar, 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 gerendert wird. Nur lesen.
Die Position und Höhe eines benutzerdefinierten cursorDelegate werden automatisch aktualisiert, um dem cursorRectangle zu folgen, wenn es sich ändert. Die Breite des Delegaten wird durch Änderungen des Cursor-Rechtecks nicht beeinflusst.
cursorVisible : bool
Wird auf true gesetzt, wenn auf TextInput ein Cursor angezeigt wird.
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.
| Konstante | Beschreibung |
|---|---|
TextInput.Normal | Zeigt den Text so an, wie er ist. (Voreinstellung) |
TextInput.Password | Zeigt 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.NoEcho | Zeigt nichts an. |
TextInput.PasswordEchoOnEdit | Der 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 der Schriftschnitt fett ist.
font.capitalization : enumeration
Legt die Großschreibung für den Text fest.
| Konstante | Beschreibung |
|---|---|
Font.MixedCase | Normalfall: 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 komplett in Kleinbuchstaben wiedergegeben wird |
Font.SmallCaps | ändert den Text so, dass er in Kapitälchen wiedergegeben wird |
Font.Capitalize | ändert den Text so, dass das erste Zeichen eines jeden Wortes ein Großbuchstabe istTextInput { 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 teurer für Zeichenketten, in denen Glyphen fehlen, kann aber konsistentere Ergebnisse liefern. Standardmäßig ist contextFontMerging false .
Diese Eigenschaft wurde in Qt 6.8 eingeführt.
Siehe auch QFont::StyleStrategy.
font.family : string
Legt den Familiennamen der Schriftart fest.
Der Familienname unterscheidet nicht zwischen Groß- und Kleinschreibung und kann optional den Namen eines 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 der Schriften festgelegt.
font.features : object [since 6.6]
Wendet ganzzahlige Werte auf bestimmte OpenType-Merkmale an, wenn der Text basierend auf den Inhalten 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, allerdings 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
Legt das bevorzugte Hinting für den Text fest. Dies ist ein Hinweis an das zugrundeliegende Textwiedergabesystem, ein bestimmtes Maß 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 Auswirkung, wenn sie zusammen mit dem Rendertyp TextInput.NativeRendering verwendet wird.
| Konstante | Beschreibung |
|---|---|
Font.PreferDefaultHinting | Verwendet die Standard-Hinting-Ebene für die Zielplattform. |
Font.PreferNoHinting | Wenn 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.PreferVerticalHinting | Wenn möglich, rendern Sie den Text ohne horizontales Hinting, aber richten Sie die Glyphen in vertikaler Richtung am Pixelraster aus. Auf Bildschirmen, deren Dichte zu gering ist, um eine genaue Darstellung der Glyphen zu ermöglichen, wird der Text schärfer erscheinen. Da die horizontalen Metriken der Glyphen jedoch nicht angedeutet sind, kann das Textlayout auf Geräten mit höherer Dichte (wie Druckern) skaliert werden, ohne dass Details wie Zeilenumbrüche beeinträchtigt werden. |
Font.PreferFullHinting | Wenn 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 Kerning-OpenType-Funktion bei der Gestaltung des Textes. Die Deaktivierung dieser Funktion kann die Leistung beim Erstellen oder Ändern des Textes verbessern, allerdings auf Kosten einiger kosmetischer Merkmale. 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 Punkt 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 lediglich 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 die Leistung verbessert.
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 Schrift einen Durchstreichungsstil hat.
font.styleName : string
Legt den Stilnamen der Schriftart fest.
Beim Stilnamen wird die Groß- und Kleinschreibung nicht berücksichtigt. Falls festgelegt, wird die Schrift mit dem Stilnamen anstelle der Schrifteigenschaften font.weight, font.bold und font.italic abgeglichen.
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 die Möglichkeit, mehrere Varianten (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() 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 gewünschte Gewicht der Schrift. Das gewünschte Gewicht muss eine ganze Zahl zwischen 1 und 1000 oder einer der vordefinierten Werte sein:
| Konstante | Beschreibung |
|---|---|
Font.Thin | 100 |
Font.ExtraLight | 200 |
Font.Light | 300 |
Font.Normal | 400 (Standard) |
Font.Medium | 500 |
Font.DemiBold | 600 |
Font.Bold | 700 |
Font.ExtraBold | 800 |
Font.Black | 900TextInput { text: "Hello"; font.weight: Font.DemiBold } |
font.wordSpacing : real
Legt die Wortabstände 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.
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.
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 gibt an, ob die TextInput eine partielle Texteingabe durch eine Eingabemethode hat.
Während eine Eingabemethode komponiert wird, kann sie auf Maus- oder Tastenereignisse von TextInput angewiesen sein, 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
Liefert der Eingabemethode Hinweise über 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:
| Konstante | Beschreibung |
|---|---|
Qt.ImhHiddenText | Zeichen sollten versteckt werden, wie es typischerweise bei der Eingabe von Passwörtern verwendet wird. |
Qt.ImhSensitiveData | Eingegebener Text sollte von der aktiven Eingabemethode nicht in einem persistenten Speicher wie dem prädiktiven Benutzerwörterbuch gespeichert werden. |
Qt.ImhNoAutoUppercase | Die Eingabemethode sollte nicht versuchen, automatisch auf Großbuchstaben umzuschalten, wenn ein Satz endet. |
Qt.ImhPreferNumbers | Zahlen werden bevorzugt (sind aber nicht erforderlich). |
Qt.ImhPreferUppercase | Großbuchstaben werden bevorzugt (sind aber nicht erforderlich). |
Qt.ImhPreferLowercase | Kleinbuchstaben werden bevorzugt (sind aber nicht erforderlich). |
Qt.ImhNoPredictiveText | Verwenden Sie bei der Eingabe keine Textvorhersage (d. h. Wörterbuchsuche). |
Qt.ImhDate | Der Texteditor funktioniert wie ein Datumsfeld. |
Qt.ImhTime | Der Texteditor funktioniert wie ein Zeitfeld. |
Flags, die die Eingabe einschränken (Exklusivflags), sind:
| Konstante | Beschreibung |
|---|---|
Qt.ImhDigitsOnly | Es sind nur Ziffern erlaubt. |
Qt.ImhFormattedNumbersOnly | Nur die Eingabe von Zahlen ist erlaubt. Dies schließt Dezimalpunkt und Minuszeichen ein. |
Qt.ImhUppercaseOnly | Es ist nur die Eingabe von Großbuchstaben erlaubt. |
Qt.ImhLowercaseOnly | Nur die Eingabe von Kleinbuchstaben ist erlaubt. |
Qt.ImhDialableCharactersOnly | Es sind nur Zeichen erlaubt, die für die Telefonwahl geeignet sind. |
Qt.ImhEmailCharactersOnly | Es sind nur Zeichen erlaubt, die für E-Mail-Adressen geeignet sind. |
Qt.ImhUrlCharactersOnly | Nur Zeichen, die für URLs geeignet sind, sind erlaubt. |
Masken:
| Konstante | Beschreibung |
|---|---|
Qt.ImhExclusiveInputMask | Diese 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 ein 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 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.
| Konstante | Beschreibung |
|---|---|
TextInput.SelectCharacters | (Standard) Die Auswahl wird mit einzelnen Zeichen aktualisiert. |
TextInput.SelectWords | Die 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 überschreiben soll.
Wie bei vielen Texteditoren kann auch das Texteditor-Widget so konfiguriert werden, dass vorhandener Text durch neuen, vom Benutzer eingegebenen 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 lautet 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 eingestellt ist. Standardmäßig ist es 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 undefined aufgerufen.
persistentSelection : bool
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 Teiltexteingaben aus einer Eingabemethode.
Um Textteile, die aus Vorhersagen resultieren, zu deaktivieren, setzen Sie das Flag Qt.ImhNoPredictiveText 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, wirkt sich die Benutzereingabe nicht auf die Texteigenschaft aus. Alle Bindungen oder Versuche, die Texteigenschaft zu setzen, funktionieren trotzdem.
renderType : enumeration
Überschreiben Sie den Standard-Rendering-Typ für diese Komponente.
Unterstützte Rendertypen sind:
| Konstant | Beschreibung |
|---|---|
TextInput.QtRendering | Text wird mit einem skalierbaren Abstandsfeld für jede Glyphe gerendert. |
TextInput.NativeRendering | Text wird mit einer plattformspezifischen Technik gerendert. |
TextInput.CurveRendering | Text 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
Der Standardwert ist true.
Ist diese Eigenschaft aktiviert, 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 auf einem Touchscreen auch 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 verwenden.
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 in der TextInput.
Beachten Sie, dass einige Tastaturen eine Vorhersagefunktion verwenden. In diesem Fall ist der von der Eingabemethode zusammengestellte Text 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, preeditText, accepted(), editingFinished(), und textEdited().
validator : Validator
Ermöglicht die Einstellung eines Validators auf TextInput. Wenn ein Validator eingestellt 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.
| Konstante | Beschreibung |
|---|---|
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.WordWrap | Der Umbruch wird nur an Wortgrenzen durchgeführt. Wenn ein Wort zu lang ist, überschreitet contentWidth eine festgelegte Breite. |
TextInput.WrapAnywhere | Der Umbruch erfolgt an jeder beliebigen Stelle einer Zeile, auch wenn er in der Mitte eines Wortes erfolgt. |
TextInput.Wrap | Wenn 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 die Eingabe in einem akzeptablen Zustand befindet.
Hinweis: Der entsprechende Handler ist onAccepted.
Siehe auch editingFinished() und textEdited().
editingFinished()
Dieses Signal wird ausgegeben, wenn die Return- oder Enter-Taste gedrückt wird oder die Texteingabe den Fokus verliert. Beachten Sie, dass, wenn ein Validator oder inputMask auf die Texteingabe gesetzt ist und Enter/Return gedrückt wird, dieses Signal nur ausgegeben wird, wenn die Eingabe der inputMask folgt und der Validator einen akzeptablen Zustand zurückgibt.
Hinweis: Der entsprechende Handler ist onEditingFinished.
Siehe auch accepted() und textEdited().
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.
Siehe auch accepted() und editingFinished().
Dokumentation der Methode
void 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 eine leere Zeichenkette zu setzen.
Siehe auch QInputMethod::reset().
void copy()
Kopiert den aktuell ausgewählten Text in die Zwischenablage des Systems.
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.
void cut()
Verschiebt den aktuell ausgewählten Text in die Zwischenablage des Systems.
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 von Kennwortfunktionen der Zeilensteuerung verwendet wird.
void deselect()
Entfernt die aktive Textauswahl.
void ensureVisible(int position)
Rollt 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 zwischen den Positionen start und end liegt.
Wenn TextInput ein inputMask enthält, schließt die Länge Maskenzeichen ein.
void insert(int position, string text)
Fügt text in die TextInput unter position ein.
bool 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.
void moveCursorSelection(int position, SelectionMode mode)
Bewegt den Cursor zu position und aktualisiert die Auswahl entsprechend dem optionalen Parameter mode. (Um nur den Cursor zu verschieben, setzen Sie die Eigenschaft cursorPosition.)
Wenn diese Methode aufgerufen wird, setzt sie zusätzlich entweder selectionStart oder selectionEnd (je nachdem, was sich an der vorherigen Cursorposition befand) auf die angegebene Position. 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.
| Konstante | Beschreibung |
|---|---|
TextInput.SelectCharacters | Setzt entweder selectionStart oder selectionEnd (je nachdem, was sich an der vorherigen Cursorposition befand) an die angegebene Position. |
TextInput.SelectWords | Stellt 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.
void paste()
Ersetzt den aktuell markierten Text durch den Inhalt der Systemzwischenablage.
int positionAt(real x, real y, CursorPosition position)
Diese Funktion gibt die Zeichenposition auf 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:
| Konstante | Beschreibung |
|---|---|
TextInput.CursorBetweenCharacters | Gibt die Position zwischen den Zeichen zurück, die x am nächsten liegt. Dies ist der Standardwert. |
TextInput.CursorOnCharacter | Gibt die Position vor dem Zeichen zurück, das am nächsten zu 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 an dieser Zeichenposition platziert wäre.
Dies ist vergleichbar mit dem Setzen von cursorPosition und der anschließenden Abfrage des Cursor-Rechtecks, aber cursorPosition wird nicht geändert.
void redo()
Wiederholt den letzten Vorgang, wenn redo available ist.
void remove(int start, int end)
Entfernt den Textabschnitt, der zwischen den Positionen start und end liegt, aus TextInput.
void 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 der Übergabe an diese Methode).
Siehe auch selectionStart und selectionEnd.
void selectAll()
Bewirkt, dass der gesamte Text ausgewählt wird.
void selectWord()
Das Wort, das der aktuellen Cursorposition am nächsten liegt, wird ausgewählt.
void undo()
Macht den letzten Vorgang rückgängig, wenn Rückgängig available ist. Deselektiert die aktuelle Auswahl und aktualisiert den Auswahlanfang auf die aktuelle Cursorposition.
© 2026 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.