美文网首页Qt学习C++PyQt
2.8 输入控件(二)

2.8 输入控件(二)

作者: 223480235e8e | 来源:发表于2018-02-02 18:22 被阅读39次

2.8.3 QTextEdit 富文本编辑器

2.8.3.1 富文本编辑器

与普通的纯文本相比,富文本其实就是可以显示图片,链接,表格,对文本进行格式化处理等的编辑器。

有人可能还会拿markdown和富文本相比较,其实markdown就是通过一些标识字符将信息转化成富文本。我在简书中就是用的markdown编辑的。

再次强调,在阅读Qt类时,先看属性是一个非常有效的方法

2.8.3.2 属性

image.png

1 autoFormatting

自动格式化,这里的格式化类似于word文档中的自动格式化。

  • AutoNone:不进行任何自动格式化。
  • AutoBulletList:自动创建列表。(当用户在当前行最左侧输入一个星号*,就会创建一个列表条目。如果在一个已有的列表后输入回车,则会创建一个新列表。这个功能类似于markdown的语法)。
  • AutoAll:打开所有自动格式化。但目前只支持列表的自动格式化。

2 cursorWidth

光标宽度,默认为1个像素

3 lineWrapColumnOrWidth

如果属性wordWrapMode是FixedPixelWidth,那么它表示从文本编辑框的文本像素宽。如果wordWrapMode是FixedColumnWidth,其值表示列号。

4 lineWrapMode

换行模式

  • NoWrap 不换行。
  • WidgetWidth 到达窗口边缘处换行。默认模式。
  • FixedPixelWidth 到达固定的像素值换行。
  • FixedColumnWidth 到达固定的列号换行。

5 overwriteMode

true-相当于文本编辑器中的插入模式。

6 plainText

纯文本

如果要获取编辑框的文本,可以调用toPlainText()

7 tabChangesFocus

一般情况下,tab键用来切换控件焦点,但在文本编辑框中经常用tab键作为输入,设置该属性为false,则编辑框接收tab输入。

8 tabStopWidth

设置tab键缩进距离(像素)

9 wordWrapMode

单词换行模式

  • NoWrap: 不换行。
  • WordWrap: 在边界换行,单词本身并不会被拆分,如果当前行无法显示,则会显示在下一行。
  • ManualWrap:同NoWrap不换行。
  • WrapAnywhere: 一个单词可以分多行显示。
  • WrapAtWordBoundaryOrAnywhere: WordWrap|WrapAnywhere

注意换行模式中,要先以lineWrapMode为标准,再看wordWrapMode。

10 html

QTextEdit还支持使用html标记语言。关于html的语法知识,你可以查看w3school 在线教程进行学习,小豆君就是从那里入门的。

2.8.4 示例

在上一节的InputWidget类中,继续添加槽函数和一个私有函数initTextEditTab()。

在ui界面中插入一个tab页,标签设置为QTextEdit

ui界面:

image.png

inputwidget.h

private slots:
    //QTextEdit
    void on_spinBox_cursorWidth_valueChanged(int arg1);
    void on_spinBox_lineWrapColumnOrWidth_valueChanged(int arg1);
    void on_spinBox_tabStopWidth_valueChanged(int arg1);
    void on_checkBox_overwriteMode_toggled(bool checked);
    void on_checkBox_tabChangesFocus_toggled(bool checked);
    void on_comboBox_lineWrapMode_currentIndexChanged(int index);
    void on_comboBox_wordWrapMode_currentIndexChanged(int index);

private:
    void initTextEditTab();

inputwidget.cpp

void InputWidget::on_spinBox_cursorWidth_valueChanged(int arg1)
{
    ui->textEdit->setCursorWidth(arg1);
}

void InputWidget::on_spinBox_lineWrapColumnOrWidth_valueChanged(int arg1)
{
    ui->textEdit->setLineWrapColumnOrWidth(arg1);
}

void InputWidget::on_spinBox_tabStopWidth_valueChanged(int arg1)
{
    ui->textEdit->setTabStopWidth(arg1);
}

void InputWidget::on_checkBox_overwriteMode_toggled(bool checked)
{
    ui->textEdit->setOverwriteMode(checked);
}

void InputWidget::on_checkBox_tabChangesFocus_toggled(bool checked)
{
    ui->textEdit->setTabChangesFocus(checked);
}

void InputWidget::on_comboBox_lineWrapMode_currentIndexChanged(int index)
{
    ui->textEdit->setLineWrapMode((QTextEdit::LineWrapMode)index);
}

void InputWidget::on_comboBox_wordWrapMode_currentIndexChanged(int index)
{
    ui->textEdit->setWordWrapMode((QTextOption::WrapMode)index);
}

void InputWidget::initTextEditTab()
{
    //输入方向-水平
    QStringList textList;
    textList << "NoWrap" <<"WidgetWidth" << "FixedPixelWidth" << "FixedColumnWidth";
    ui->comboBox_lineWrapMode->addItems(textList);

    //输入方向-垂直
    textList.clear();
    textList << "NoWrap" << "WordWrap" <<"ManualWrap" << "WrapAnywhere" << "WrapAtWordBoundaryOrAnywhere";
    ui->comboBox_wordWrapMode->addItems(textList);
}

好了,关于QTextEidt的内容今天先讲到这里,下节会继续介绍如何对富文本进行操作。

欢迎关注小豆君的微信公众号:小豆君,只要关注,便可加入我的C++\Qt交流群一起学习。

相关文章

  • 2.8 输入控件(二)

    2.8.3 QTextEdit 富文本编辑器 2.8.3.1 富文本编辑器 与普通的纯文本相比,富文本其实就是可以...

  • 2.8 输入控件(一)

    2.8.1 QLineEdit 2.8.1.1 属性 QLineEdit是行文本编辑框。我们直接来看它的属性。 就...

  • 2.8 输入控件(四)

    2.8.7 QSpinBox 数值输入框 QSpinBox类是数值输入框,和它类似的有QDoubleSpinBox...

  • 2.8 输入控件(三)

    2.8.5 QComboBox 下拉框 QComboBox提供了一个选项列表,这样就可以占用最少的屏幕空间。 1 ...

  • iOS控件 -UITextField/UITextView-文本

    此中所述两种UI控件,皆为文本输入控件,即可接收用户输入的UI控件。 >>>UITextField是作为文字输入控...

  • 小程序即时通讯

    小程序即时通讯——文本、语音输入控件(一)集成 小程序即时通讯——文本、语音输入控件(一)集成聊天输入组件控件样式...

  • 微信小程序 - 7.组件(form 表单提交和取值)

    第一步、添加 from 控件,并为其指定 bindsubmit 属性值。 第二步、添加输入控件到 form 中,并...

  • Android输入控件详解

    输入控件 输入控件是您的应用用户界面中的交互式组件。Android 提供了多种可在 UI 中使用的控件,如按钮、文...

  • 【pyqt】2.控件学习

    控件 按钮 按钮 单选 多选 输入控件 纯键盘输入 多行输入 步长调节 组合框 滑块 橡皮筋选中 对话框-颜色,字...

  • 时间控件输入

    selenium.FindElementById("d1").Clear(); selenium.FindElem...

网友评论

    本文标题:2.8 输入控件(二)

    本文链接:https://www.haomeiwen.com/subject/zeduoxtx.html