注册 登录

清河洛

pyside中的文本编辑及下拉组件

qingheluo2024-11-04清河洛235
文本编辑在文本编辑的组件中,有单行文本编辑组件,也有多行文本编辑组件输入相关组件的一些基本上都有的方法和信号isReadOnly()、setReadOnly(bool) 只读模式 placeholderText()、setPlaceholderText() 占位字符串 isUndoAvailable() 当前是否是可撤销状态,一旦对文本进行了编辑后会处于该状态 undo() 执行撤销操作 isRedoAvailable() 当前是否是可重做状态,一旦对编辑的文本执行了撤销操作就会处于可重做状态 redo() ...

文本编辑

在文本编辑的组件中,有单行文本编辑组件,也有多行文本编辑组件

输入相关组件的一些基本上都有的方法和信号

isReadOnly()、setReadOnly(bool)              只读模式
placeholderText()、setPlaceholderText()      占位字符串
isUndoAvailable()   当前是否是可撤销状态,一旦对文本进行了编辑后会处于该状态
undo()              执行撤销操作
isRedoAvailable()   当前是否是可重做状态,一旦对编辑的文本执行了撤销操作就会处于可重做状态
redo()              执行重做操作
selectAll()         选中所有内容并将光标移至末尾
clear()             清空所有内容
copy()              复制选中文本
cut()               剪切选中文本
paste()             在光标当前位置执行粘贴,如果存在选中文本,会先删除选中文本
alignment()、setAlignment()   文本对齐方式
        水平方向:Qt.AlignLeft、Qt.AlignRight、Qt.AlignHCenter、Qt.AlignJustify
        垂直方向:Qt.AlignTop、Qt.AlignBottom、Qt.AlignVCenter、Qt.AlignBaseline
        Qt.AlignCenter  水平和垂直都居中
        默认为水平左对齐,垂直居中对齐

QLineEdit,单行文本编辑

QLineEdit([parent=None])
QLineEdit(text[, parent=None])

isClearButtonEnabled()、setClearButtonEnabled(bool)  是否显示清空按钮
hasFrame()、setFrame(bool)               是否显示边框,默认True
textMargins()、setTextMargins(QMargins)  内边距
dragEnabled()、setDragEnabled(bool)      选中文本后鼠标是否可以拖动,默认False

内容格式设置
maxLength()、setMaxLength(int)   最长输入字符,默认为32767
        如果设置了inputMask,则强制设置为格式字符串的长度
inputMask()、setInputMask(str)   输入格式("转换字符元字符;占位字符"),默认为空字符串
        输入框中的始化显示为将所有元字符替换为占位字符
        在指定位置输入后占位字符替换为输入字符,如果输入字符不符合元字符要求,则输入无效
        转换字符
            >       将所有字母转换为大写
            >       将所有字母转换为小写
            !       禁用大小写转换
        元字符是使用一些有特殊意义的字符表示一系列字符,类似于正则中的元字符
            字母              A  1个      a  0个或1个
            数字              9  1个      0  0个或1个
            大于0的数字        D  1个      d  0个或1个
            字母或数字         N  1个      n  0个或1个
            非空字符           X  1个      x  0个或1个
            16进制字符         H  1个      h  0个或1个
            2进制字符          B  1个      b  0个或1个
        占位字符默认为1个空格 "; "
hasAcceptableInput()  当前内容是否匹配inputMask设置
validator()、setValidator(QValidator)   内容验证
        当验证不通过时不会发送returnPressed()和editingFinished()信号
        QtGui.QValidator([parent=None])表示用于文本验证的对象
        需要重新实现该类的validate(str)方法
        validate(str),返回int,0表示无效,1表示中间状态,一般为用户正在编辑时,2表示有效
        changed()  当任何可能影响字符串有效性的属性发生更改时,将发出此信号
echoMode()、setEchoMode(int)  当输入框中内容的显示格式
        0,按实际显示,默认值        1,不显示任何字符
        2,显示为平台关联的密码替代字符,一般为星号(*)
        3,当获得焦点时显示正常字符,失去焦点后显示掩码字符

选中文本
hasSelectedText()       当前是否有选中文本
setSelection(start,end) 选中指定索引区间的文本,允许使用负值
deselect()              取消文本的选中
selectedText()          str,当前选中的文本字符串
selectionLength()       选中文本的长度
selectionStart()        选中文本中第一个字符的索引
selectionEnd()          选中文本中最后一个字符的索引

内容相关
displayText()           str,当前输入框中实际显示的文本字符串
text()、setText(str)    获取和设置内容
insert(text)            在光标当前位置插入内容,如果存在选中文本,会先删除选中文本

光标相关
cursorPosition()、setCursorPosition(int) 光标所在位置的索引
cursorBackward(mark[, steps=1])  将光标从当前位置向后移动steps个字符
    mark表示是否选中,如果True,则选中光标移动时经过的所有字符
cursorWordBackward(mark)        将光标向后移动一个单词
cursorWordForward(mark)         将光标向前移动一个单词
end(mark)                       光标移动至末尾
home(mark)                      光标移动至开头

其他
isModified()、setModified(bool)  标注内容是否已被修改
        调用setText()后会自动设置该值为False
backspace()         执行删除操作
        如果未选中文本,则删除光标左侧的字符
        如果存在选中文本,则删除所选文本

信号相关

selectionChanged()      当选中的文本发生改变时
textChanged(now_text)   当内容发生改变时
textEdited(now_text)    与textChanged不同的是当使用编程方式改变文本(如使用setText())时不发送该信号

cursorPositionChanged(old_index,new_index)   当光标移动时,传入前后光标的位置索引

returnPressed()         当按下enter键时发送
editingFinished()       当按下了enter键或者失去焦点,如果内容自上次发送此信号以来发生了更改则发送此信号

inputRejected()         当进行了被视为无效输入时,如在已经达到限定的最大长度时继续输入

QPlainTextEdit,多行文本编辑

多行文本中有QPlainTextEdit和QTextEdit两个组件

QTextEdit支持富文本,可以将内容进行指定格式的转化,在转化时会进行一定的转义,如html代码中的标签会进行转义(<会转为&lt;)

QPlainTextEdit是一个纯文本编辑,所有内容均会原封的接收,在某些时候会存在一定的风险,但执行效率较高

QPlainTextEdit是一个相比于QTextEdit更加精简的类,在此我们仅学习QPlainTextEdit

QPlainTextEdit([parent=None])
QPlainTextEdit(text[, parent=None])

backgroundVisible()、setBackgroundVisible(bool)  背景是否透明
        如果为True则文档内容为覆盖到的区域会渲染为透明,默认False
overwriteMode()、setOverwriteMode(bool)  插入新内容时是否覆盖现有内容,默认False
centerOnScroll()、setCenterOnScroll(bool)是否自动滚动内容使光标处于编辑区垂直的中心
        默认为False,表示尽可能小的滚动保障光标可见
cursorWidth()、setCursorWidth(int)    光标宽度(像素),默认为1
tabChangesFocus()、setTabChangesFocus(bool)   是否将tab按键行为视为输入
        默认为False,会切换焦点对象而不是视为输入内容
tabStopDistance()、setTabStopDistance(float)  制表位宽度(像素),默认为80.0
isUndoRedoEnabled()、setUndoRedoEnabled(bool) 是否启用撤消和重做功能
canPaste()          是否允许执行粘贴操作
zoomIn(int) / zoomInF(float)    设置文本放大显示倍数
zoomOut(int)                    设置文本缩小显示倍数
maximumBlockCount()、setMaximumBlockCount(int)  最大的块数量
        当超过设定值后,再添加新内容会从文档开头删除块
        负值或0表示不限,默认为0
lineWrapMode()、setLineWrapMode(int) 同一个文本块的换行模式,0表示不换行,1表示自动换行

toPlainText()、setPlainText(str)     获取和设置内容
        设置此属性时将删除原有内容和所有撤消/重做历史记录
insertPlainText(str)       在当前光标处插入文本
appendHtml(str)            在文档末尾追加html代码
appendPlainText(str)       在文档末尾追加纯文本

blockCount()        内容中的文本块的数量
    使用程序进行新增的内容,一次新增操作的所有内容认为是一个块
    用户在输入是按下回车时会认为是一个块的结束

centerCursor()      滚动内容使光标处于编辑区垂直的中心
ensureCursorVisible()  滚动内容以使光标可见

moveCursor(p[, mode=0]) 将光标移动至p指定的位置
        p为一个在QtGui.QTextCursor中定义的枚举常量
            NoMove      保持原位
            Start       文档开头             End       文档末尾
            StartOfLine 当前行开头           EndOfLine 当前行末尾
            StartOfBlock当前块开头           EndOfBlock当前块末尾
            Left        左移一个字符         Right     右移一个字符
            Up          上移一行             Down      下移一行
            PreviousBlock 上一个块开头       NextBlock 下一个块开头
            StartOfWord 当前单词开头         EndOfWord 当前单词末尾
            PreviousWord上一个单词开头       NextWord  下一个单词开头
            WordLeft    左一个单词开头       WordRight 右移一个单词开头
        mode表示移动的模式
            QTextCursor.MoveAnchor  表示仅移动
            QTextCursor.KeepAnchor  表示在移动的同时选中光标原位置至新位置之间的内容

信号相关

textChanged()            内容改变时
blockCountChanged(int)   当文本块数量发生变化时,传入新的文本块数量
cursorPositionChanged()  光标位置改变时
copyAvailable(bool)      当复制操作可用状态变化时(选中或取消选中)
redoAvailable(bool)      当重做操作可用状态发生变化时
undoAvailable(bool)      当撤销操作可用状态发生变化时
selectionChanged()       选中内容更改时

下拉菜单

下拉菜单是由QComboBox组件来实现的,另外还有一个基于该类的子类组件,就是字体选择下拉列表QFontComboBox,专门用于选择字体

QComboBox,常规下拉菜单

整体设置
isEditable()、setEditable(bool)     是否可编辑,默认False
lineEdit()、setLineEdit(QLineEdit)  可编辑下拉菜单的编辑框组件
validator()、setValidator(QValidator)可编辑菜单的验证器
maxCount()、setMaxCount(int)        最大项目数量,默认为int最大值
maxVisibleItems()、setMaxVisibleItems(int)项目最大显示数量,默认10
minimumContentsLength()、setMinimumContentsLength(int)
        下拉框未展开时需要容纳显示的最小字符数
sizeAdjustPolicy()、setSizeAdjustPolicy()  当新增子项时下拉框的尺寸怎么变动
        AdjustToContents                始终根据内容进行调整
        AdjustToContentsOnFirstShow     仅在第一次显示时根据其内容进行调整
        AdjustToMinimumContentsLengthWithIcon
                        组合框固定为minimumContentsLength加上图标的空格
placeholderText()、setPlaceholderText(str)
        未选中任何选项时的占位符文本
        setCurrentIndex(-1)可以重置状态以显示该文本
duplicatesEnabled()、setDuplicatesEnabled(bool)
        是否允许添加重复子项目,默认False
        无论是否允许,均可以通过编程方式将重复项插入
insertPolicy()、setInsertPolicy()  用户在插入子项时插入的位置
        值为在QComboBox中定义的常量
        NoInsert             不允许插入子项
        InsertAtTop          第一项
        InsertAtCurrent      替换当前选中项
        InsertAtBottom       最后一项
        InsertAfterCurrent   当前项之后
        InsertBeforeCurrent  当前项之前
        InsertAlphabeticallyInsert按字母顺序排列
hasFrame()、setFrame(bool)        是否渲染边框,默认True
iconSize()、setIconSize(QSize)    显示的图标大小

操作相关
addItem([QIcon,] texts)   追加子项目到末尾
        当不指定QIcon时,可以传递str的list来添加多个子项目
insertItem(index, [QIcon,] texts) 在指定索引添加子项目
        如果索引大于子项目总数,添加到末尾
        如果索引为0或负数,添加到开头
        当不指定QIcon时,可以传递str的list来添加多个子项目
insertSeparator(index)  将分隔符插入到指定索引
removeItem(index)       根据索引删除子项目
clear()                 清除所有子项目
clearEditText()         清除可编辑下拉框中当前进行编辑的内容
setEditText(text)       设置可编辑下拉菜单的编辑框内容
currentIndex()、setCurrentIndex(int) 当前选中项的索引
        当新增或删除项目时整个子项目的索引会重置
        空组件或未设置选中项时返回-1
setEditText()、setCurrentText(str)   当前选中项的文本
        空组件或未设置选中项时返回空字符串
        如果是可编辑的,输入内容在其子项目中有匹配项会同步修改选中索引
itemIcon(index)、setItemIcon(index, QIcon) 指定索引项目的QIcon
itemText(index)、setItemText(index, text)  指定索引项目的文本str
findText(text)          返回指定文本的索引,未找到返回-1

其他
count()                  组件中子项目数量
hidePopup()、showPopup() 隐藏/显示下拉项目

信号相关

activated(int)
textActivated(str)         选中操作时,即使选中项未改变

currentIndexChanged(int)
currentTextChanged(str)    选中改变时

highlighted(int)
textHighlighted(str)       当用户鼠标放置在展开的某个子项目时

editTextChanged(str)       可编辑时编辑的文本改变时

QFontComboBox,,字体选择下拉菜单

currentFont()、setCurrentFont(QFont)   当先选中的字体

fontFilters()、setFontFilters(FontFilter)  字体类别过滤器
        AllFonts          所有字体
        ScalableFonts     可缩放字体
        NonScalableFonts  不可缩放字体
        MonospacedFonts   等宽字体
        ProportionalFonts 比例字体

sampleTextForFont(fontFamily)
setSampleTextForFont(fontFamily,str)
        在指定字体名称项后面显示的示例文本

writingSystem()、setWritingSystem()  字体种类过滤器
        在QtGui.QFontDatabase中定义的常量,常用的有
        Any                全部,默认值
        Armenian           美式英文
        Symbol             图标
        SimplifiedChinese  简体中文
        TraditionalChinese 繁体中文
sampleTextForSystem(writingSystem)
setSampleTextForSystem(writingSystem,str)
        指定字体种类后面的示例文本

信号相关

currentFontChanged(QFont)  选择字体改变时


网址导航