小白自学Qt控件篇——QTextEdit(文本框)

有不对的地方,希望大佬指正

1.QTextEdit

(1)setPlainText和setHtml的区别

QTextEdit*text;

 text=new QTextEdit(this);
 text->move(100,100);
 text->setPlaceholderText("请输入你的姓名");
 //setPlainText会以覆盖之前文本的方式输入,PlainText是普通文本。和下面的html文本做一个区分

 text->setPlainText("替换掉其他的文本");
 //inserPlainText,在光标的位置的插入文本,设计一个信号函数来实现,OnclickedText中是
 auto btn=new QPushButton("插入文本",this);

 connect(btn,&QPushButton::clicked,this,&Widget::OnclickedText);
   

就像图中所示

//获取文本,可以做一个输出

qInfo()<<text->toPlainText();

//现在我们来看setHtml,这需要一些html的知识。

text->setHtml("<h1>请输入你的姓名</h1>");

//<h1></h1>一个标题

明显和上面的PlainText是不一样的,字体不一样

text->toHtml()函数做的输出html代码,我们可以看一下.输出的是html文件代码

但因为一些不知名的原因,文本内容qt的输出器没有直接写出来。那些问号的字符就是我们输入的文本

在txt中复制输出器输出的html文件代码,后缀改成html我们会发现。

就是一个静态网页。所以QTextEdit是支持html语言的

//还有一个就是Qmarkdown

text->setMarkdown("# Qt\n## 控件\n## 槽函数\n+ 信号函数");

Markdown也可以在QTextEdit中使用,看一下效果. 

最后提一下,setText()函数可以自动识别文本语言类型,但是没办法识别markdown

2.QTextcurcor

QtextEdit当中光标的应用是很多的,可以在光标处插入字,图片,列表,一段文字,一个框架

    text=new QTextEdit(this);
    //获取文本光标
    QTextCursor cursor=text->textCursor();
    //设置文本字符格式 ,format 格式
    QTextCharFormat cc;
    //设置字体下划线, font 字体
    cc.setFontUnderline(true);
    //设置字体下划线的颜色
    cc.setUnderlineColor(Qt::red);
    //设置字体前景颜色Foreground 前景
    cc.setForeground(Qt::blue );
    cursor.insertText("欢迎",cc);

记住这个模式,Format是格式的意思,后面的内容都差不多是这样设置的,先通过Format设置插入的具体格式,再进行插入。

//设置图片的格式
QTextImageFormat tt;
//添加照片
tt.setName("11.png");

//用光标插入图片 FloatLeft左浮动
    cursor.insertImage(tt,QTextFrameFormat::Position::FloatLeft);
    //cursor.insertImage(tt,QTextFrameFormat::Position::FloatRight);
    //cursor.insertImage(tt,QTextFrameFormat::Position::InFlow);

    //直接插入图片也是可以的
    //cursor.insertImage("11.png");

//插入一段文字

cursor.insertFragment(QTextDocumentFragment::fromHtml("<a href='https://www.baidu.com'></a>"));

//设置一个按钮用来展示下面的列表,框架的添加

    auto btn=new QPushButton("run",this);
    btn->move(400,0);
    //点击一下就会出现表格格式
    connect(btn,&QPushButton::clicked,this,&Widget::clicked);

来看列表的插入

QTextCursor cuir= text->textCursor();
QTextListFormat ttt;
 //自定义列表的格式,prefix前缀 suffix后缀
ttt.setNumberPrefix("<");
ttt.setNumberSuffix(">");
//设置列表的样式,ListDisc小圆点格式
//ttt.setStyle(QTextListFormat::ListDisc);
//数字模式
ttt.setStyle(QTextListFormat::ListDecimal);
//也可以直接在插入时规定格式
//cuir.insertList(QTextListFormat::ListDisc);

cuir.insertList(ttt);

运行出来就是我们想要的列表结果

下面是表格的插入,依旧是老套路

文本块的插入,也就是插入一段文字,因为下一段缩进的设置,所以光标的位置很靠后

        text->setFocus();
        //插入文本块,就是重新开始一段
        QTextBlockFormat tbf;
        //设置缩进,即使是1也是很大的
        tbf.setIndent(1);
        //老样子
        cuir.insertBlock(tbf);

最后是框架的设置,其实框架就相当于插入了一个小的QTextEdit,这里我们把它设为红色

QTextFrameFormat tff;
//设置框架内的背景颜色
tff.setBackground(Qt::red);
cuir.insertFrame(tff);

Qt有很多很多函数,大家要结合帮助文档来使用这些函数.

  • 33
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值