不二如是 发表于 2016-10-10 10:47:29

70-深化说明(Img、Table、List)

在,之前的几个帖子中。
69(http://bbs.fishc.com/thread-77094-1-1.html)
68(http://bbs.fishc.com/thread-77091-1-1.html)
67(http://bbs.fishc.com/thread-77089-1-1.html)

我们完成了编辑器的优化,如下所示:


有几点总结,必须要梳理下


[*]如何通过代码完成一个信号与槽的关联

S1 -> 在头文件创建,私有槽声明
private slots:
    //遍历文档框架
    void show_TextFrame();

    //遍历文本块
    void show_TextBlock();

    //设置字体格式
    void set_TextFont(bool checked);

    //插入列表
    void insert_List();

    //插入表格
    void insert_Table();

    //插入图片
    void insert_Img();

S2 -> 构造函数完成动作创建、信号与槽关联

    /*
   * 新建动作
   * 和私有槽关联
   * 添加到工具栏
*/

    QAction *action_Img = new QAction(("图片"),this);

    connect(action_Img,SIGNAL(triggered()),this,SLOT(insert_Img()));

    ui->mainToolBar->addAction(action_Img);
S3 -> 完成槽函数相关

//列表格式
    QTextListFormat format;

    //数字编号记录,十进制
    format.setStyle(QTextListFormat::ListDecimal);

    ui->textEdit->textCursor().insertList(format);定义



[*]表格、列表、图片的其他调用说明

对于表格和列表,也可以使用QTextFrame::iterator来便利他们,具体参考帮助文档(关键字:Rich Text Document Structure)


[*]表格对应的QTextTable类,还提供了以下函数:



cellAt() 获取指定单元格
insertColumns() 插入列
insertRows() 插入行
mergeCells() 合并单元格
splitCell() 拆分单元格


对于一个单元格,其对应类是QTextTableCell,其对应格式是QTextTableCellFormat类

[*]对于列表,其对应类是QTextList,提供以下函数:



count() 获取列表中项目个数
item() 获取指定的项目的文本块
removeItem() 删除一个项目



对于列表编号,是用数字编号,需要更多编号方式,请看QTextFormat::Style关键字


[*]对于图片,可以使用QTextImageFormat类,提供以下函数:



setHeight() 设置高度
setWidth() 设置宽度
setName() 来指定图片


关于如何调用图片,前面已有很详细的介绍。

忘了的话,自行看之。
(11-13)





页: [1]
查看完整版本: 70-深化说明(Img、Table、List)