QInputMethodEventclass provides parameters for input method events. 更多 …
def
attributes
()
def
commitString
()
def
preeditString
()
def
replacementLength
()
def
replacementStart
()
def
setCommitString
(commitString[, replaceFrom=0[, replaceLength=0]])
输入法事件被发送给 Widget,当使用输入法把文本键入 Widget 时。输入法被广泛用于键入非拉丁字母语言的文本。
注意:当创建自定义文本编辑 Widget 时,
WA_InputMethodEnabled窗口属性必须被明确设置 (使用setAttribute()function) in order to receive input method events.这些事件对希望能够正确处理具有复杂字符输入的语言的键盘键入 Widget 的作者是很感兴趣的。这种语言的文本输入过程通常分 3 个步骤:
开始合成
当用户在键盘上按下首个键时,输入上下文被创建。此输入上下文将包含已键入字符的字符串。
正在合成
当每按下一个新键,输入法会试着为迄今为止键入的文本创建匹配字符串 (又称预编辑字符串)。当输入上下文处于活动状态时,用户只可以把光标移入属于此输入上下文的字符串中。
完成
在某个时候,用户会激活用户界面组件 (或许使用特定键),在那里用户可以从大量匹配迄今为止键入文本的字符串中进行选择。用户可以确认其选择或取消输入;无论哪种情况,输入上下文都会被关闭。
QInputMethodEventmodels these three stages, and transfers the information needed to correctly render the intermediate result. AQInputMethodEventhas two main parameters:preeditString()andcommitString()。preeditString()parameter gives the currently active preedit string. ThecommitString()parameter gives a text that should get added to (or replace parts of) the text of the editor widget. It usually is a result of the input operations and has to be inserted to the widgets text directly before the preedit string.若
commitString()should replace parts of the of the text in the editor,replacementLength()will contain the number of characters to be replaced.replacementStart()contains the position at which characters are to be replaced relative from the start of the preedit string.许多属性控制预编辑字符串的视觉外观 (预编辑字符串之外的文本的视觉外观仅由 Widget 控制)。
AttributeType枚举描述了可以设置的不同属性。类实现
inputMethodEvent()orinputMethodEvent()should at least understand and honor theTextFormatandCursor属性。由于输入法需要能够从 Widget (或图形项) 查询某些特性,因此子类也必须实现
inputMethodQuery()andinputMethodQuery(),分别。当收到输入法事件时,文本 Widget 必须履行以下步骤:
若 Widget 有选择文本,就应该移除所选文本。
移除文本始于
replacementStart()with lengthreplacementLength()and replace it by thecommitString()。若replacementLength()is 0,replacementStart()gives the insertion position for thecommitString().When doing replacement the area of the preedit string is ignored, thus a replacement starting at -1 with a length of 2 will remove the last character before the preedit string and the first character afterwards, and insert the commit string directly before the preedit string.
若 Widget 实现了撤销/重做,此操作被添加到撤销堆栈。
若当前没有预编辑字符串,插入
preeditString()at the current cursor position; otherwise replace the previouspreeditString采用来自此事件的某一接收。If the widget implements undo/redo, the
preeditString()should not influence the undo/redo stack in any way.The widget should examine the list of attributes to apply to the preedit string. It has to understand at least the
TextFormatand Cursor attributes and render them as specified.另请参阅
QInputMethod
QInputMethodEvent
¶
QInputMethodEvent(other)
QInputMethodEvent(preeditText, attributes)
- param preeditText
unicode
- param attributes
- param other
Constructs an event of type
InputMethod
。
attributes()
,
preeditString()
,
commitString()
,
replacementStart()
,和
replacementLength()
are initialized to default values.
另请参阅
构造副本为
other
.
Constructs an event of type
InputMethod
. The preedit text is set to
preeditText
, the attributes to
attributes
.
commitString()
,
replacementStart()
,和
replacementLength()
values can be set using
setCommitString()
.
PySide2.QtGui.QInputMethodEvent.
AttributeType
¶
|
常量 |
描述 |
|---|---|
|
QInputMethodEvent.TextFormat |
A
|
|
QInputMethodEvent.Cursor |
If set, a cursor should be shown inside the preedit string at position start. The length variable determines whether the cursor is visible or not. If the length is 0 the cursor is invisible. If value is a
|
|
QInputMethodEvent.Language |
The variant contains a
|
|
QInputMethodEvent.Ruby |
The ruby text for a part of the preedit string. There should be at most one ruby text set for every part of the preedit string. If several are specified for any character in the string the behaviour is undefined. |
|
QInputMethodEvent.Selection |
If set, the edit cursor should be moved to the specified position in the editor text contents. In contrast with
|
另请参阅
属性
PySide2.QtGui.QInputMethodEvent.
attributes
(
)
¶
Returns the list of attributes passed to the
QInputMethodEvent
constructor. The attributes control the visual appearance of the preedit string (the visual appearance of text outside the preedit string is controlled by the widget only).
另请参阅
PySide2.QtGui.QInputMethodEvent.
commitString
(
)
¶
unicode
Returns the text that should get added to (or replace parts of) the text of the editor widget. It usually is a result of the input operations and has to be inserted to the widgets text directly before the preedit string.
PySide2.QtGui.QInputMethodEvent.
preeditString
(
)
¶
unicode
返回预编辑文本,即:用户开始编辑之前的文本。
PySide2.QtGui.QInputMethodEvent.
replacementLength
(
)
¶
int
返回预编辑字符串中要被替换的字符数。
PySide2.QtGui.QInputMethodEvent.
replacementStart
(
)
¶
int
返回要替换字符的位置,相对于预编辑字符串开头。
PySide2.QtGui.QInputMethodEvent.
setCommitString
(
commitString
[
,
replaceFrom=0
[
,
replaceLength=0
]
]
)
¶
commitString – unicode
replaceFrom
–
int
replaceLength
–
int
把提交字符串设为
commitString
.
The commit string is the text that should get added to (or replace parts of) the text of the editor widget. It usually is a result of the input operations and has to be inserted to the widgets text directly before the preedit string.
If the commit string should replace parts of the of the text in the editor,
replaceLength
specifies the number of characters to be replaced.
replaceFrom
specifies the position at which characters are to be replaced relative from the start of the preedit string.