❝记录QTextEdit的使用笔记。 ❞
焦点捕获
继承QTextEdit并重写以下函数。
代码语言:javascript复制/* 获得焦点重载函数 */
void focusInEvent(QFocusEvent *event);
/* 失去焦点重载函数 */
void focusOutEvent(QFocusEvent *event);
样式
- 扁平化样式:
QTextEdit {
border-style: none;
border-radius: 5px;
padding: 3px;
background: transparent;
}
- 获得焦点时样式:
QTextEdit:focus {
border: 2px solid #3498db;
}
* setEnabled(false)使用样式:
```css
QTextEdit:!enabled {
color: #525252;
}
- setEnabled(true)使用样式:
QTextEdit:enabled {
color: #525252;
}
只读与禁用
代码语言:javascript复制setReadOnly(true)
setEnable(false)
禁用并隐藏滚动条
禁用并隐藏水平方向的滚动条。
代码语言:javascript复制horizontalScrollBar()->hide();
horizontalScrollBar()->setEnabled(false);
setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
禁用并隐藏垂直方向的滚动条。
代码语言:javascript复制verticalScrollBar()->hide();
verticalScrollBar()->setEnabled(false);
setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
设置字体
代码语言:javascript复制QFont fontt;
font.setFamily("默认");
fontt.setPixelSize(14);
setFont(ft);
根据文本自动调整大小
- 建立槽函数
onTextChanged
。
void onTextChanged()
{
QTextDocument *document = this->document();
if (document) {
document->adjustSize();
this->setFixedSize(document->size().toSize());
}
}
- 使用
textChanged
信号绑定onTextChanged
槽函数。
connect(pointer, SIGNAL(textChanged()), pointer, SLOT(onTextChanged()));
获取行数
代码语言:javascript复制document().linecout()
手动设置焦点
代码语言:javascript复制setFocus(Qt::MouseFocusReason);