欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Qt實現一個簡單的word文檔編輯器

 更新時間:2022年07月05日 11:24:09   作者:Mr.codeee  
本文主要介紹了Qt實現一個簡單的word文檔編輯器,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

1.先看效果圖

可以設置文字的屬性、文字顏色、字體類型。以下示例僅供參考,有的地方還是不完善。

2.需要用到的類

2.1字體選擇下拉框:QFontComboBox。

QFontComboBox是一個讓用戶選擇字體的組合框。組合框中填充了按字母順序排列的字體族名稱列表。

常用方法:

獲取當前的字體

QFont currentFont() const

還有一個信號,當字體發(fā)生改變時,發(fā)送信號。

void currentFontChanged(const QFont &font)

2.2顏色對話框:QColorDialog

常用方法:

獲取當前選擇的顏色

QColor currentColor() const

2.3QTextCharFormat

QTextCharFormat類為QTextDocument中的字符提供格式化信息。換句話說,我們要設置鼠標選中字體的屬性,就需要使用這個類。

本例子中使用的方法:

void setFont(const QFont &font)設置字體
void setFontItalic(bool italic)設置是否斜體
void setFontStrikeOut(bool strikeOut)設置刪除線
void setFontUnderline(bool underline)設置下劃線

3.源碼

為了方便,我定義了5個全局變量

bool isBold = false;    //是否粗體
bool isUnderLine = false; //是否下劃線
bool isDelLine = false; //是否刪除線
bool isLean = false; //是否斜體
 
QColor color(Qt::black); //字體顏色

設置斜體、粗體等按鈕可選中,因為默認是不可選中的,我們需要綁定可選中的信號。

    ui->btnBold->setCheckable(true);
    ui->btnDelLine->setCheckable(true);
    ui->btnLean->setCheckable(true);
    ui->btnUnderline->setCheckable(true);

綁定按鈕的信號

void clicked(bool checked = false)

#include "WTextEdit.h"
#include "ui_WTextEdit.h"
#include <QColorDialog>
#include <QTextDocument>
#include <QTextCursor>
#include <QTextCharFormat>
#include <QFont>
#include <QBrush>
 
bool isBold = false;    //是否粗體
bool isUnderLine = false; //是否下劃線
bool isDelLine = false; //是否刪除線
bool isLean = false; //是否斜體
 
QColor color(Qt::black); //字體顏色
 
WTextEdit::WTextEdit(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::WTextEdit)
{
    ui->setupUi(this);
 
    ui->btnBold->setCheckable(true);
    ui->btnDelLine->setCheckable(true);
    ui->btnLean->setCheckable(true);
    ui->btnUnderline->setCheckable(true);
}
 
WTextEdit::~WTextEdit()
{
    delete ui;
}
 
 
void WTextEdit::on_btnBold_clicked(bool checked)
{
    isBold = checked;
    updateText();
}
 
void WTextEdit::on_btnLean_clicked(bool checked)
{
    isLean = checked;
    updateText();
}
 
void WTextEdit::on_btnUnderline_clicked(bool checked)
{
    isUnderLine = checked;
    updateText();
}
 
void WTextEdit::on_btnDelLine_clicked(bool checked)
{
    isDelLine = checked;
    updateText();
}
 
void WTextEdit::updateText()
{
    QFont font = ui->fontComboBox->currentFont();
    font.setBold(isBold);
    font.setPointSize(ui->lineEdit->text().toInt());
 
    QTextCharFormat format;
    format.setFont(font);
    format.setFontItalic(isLean);
    format.setFontStrikeOut(isDelLine);
    format.setFontUnderline(isUnderLine);
 
    QPen pen;
    pen.setColor(color);    //設置字體顏色
    format.setTextOutline(pen);
 
    ui->textEdit->textCursor().setCharFormat(format);
}
 
void WTextEdit::on_btnColor_clicked()
{
    QColorDialog dialog;
    dialog.exec();
 
 
    color = dialog.currentColor();
    updateText();
}
 
void WTextEdit::on_lineEdit_textChanged(const QString &arg1)
{
    updateText();
}
 
void WTextEdit::on_fontComboBox_currentFontChanged(const QFont &f)
{
    updateText();
}

到此這篇關于Qt實現一個簡單的word文檔編輯器的文章就介紹到這了,更多相關Qt word文檔編輯器內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • VS2019調試C語言程序(監(jiān)視操作)的詳細步驟

    VS2019調試C語言程序(監(jiān)視操作)的詳細步驟

    在很多時候我們在寫程序的過程中會發(fā)現一些非編程錯誤的問題,這樣的問題很難直接分辨出來,但是我們可以用調試了一步一步的模擬程序運行的過程,來找出程序的錯誤,下面這篇文章主要給大家介紹了關于VS2019調試C語言程序(監(jiān)視操作)的詳細步驟,需要的朋友可以參考下
    2022-11-11
  • 插入排序的順序表實現代碼

    插入排序的順序表實現代碼

    這篇文章主要介紹了插入排序的順序表實現代碼,有需要的朋友可以參考一下
    2014-01-01
  • 函數指針的一些概念詳解

    函數指針的一些概念詳解

    首先看函數指針的語法,舉一個最簡單的例子,要創(chuàng)建一個函數指針,則它與它指向的函數,在參數個數類型以及返回值上都保持一致,跟重載的要求應該是一樣的
    2013-09-09
  • C++實現萬年歷小功能

    C++實現萬年歷小功能

    這篇文章主要為大家詳細介紹了C++實現萬年歷小功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • C++實現掃雷小游戲(控制臺版)

    C++實現掃雷小游戲(控制臺版)

    這篇文章主要為大家詳細介紹了C++實現控制臺版的掃雷小游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • 一篇文章帶你了解C語言的文件操作

    一篇文章帶你了解C語言的文件操作

    這篇文章主要為大家詳細介紹了C語言的文件操作,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • C++如何調用簡單的python程序

    C++如何調用簡單的python程序

    這篇文章主要介紹了C++如何調用簡單的python程序問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • 利用Matlab實現迭代適應點算法

    利用Matlab實現迭代適應點算法

    道格拉斯-普克算法(Douglas–Peucker?algorithm,亦稱為拉默-道格拉斯-普克算法、迭代適應點算法、分裂與合并算法)是將曲線近似表示為一系列點,并減少點的數量的一種算法。本文將利用Matlab實現這一算法,需要的可以參考一下
    2022-04-04
  • 教你用Matlab制作立體動態(tài)相冊

    教你用Matlab制作立體動態(tài)相冊

    沒想到吧,MATLAB竟也能制作3D相冊!本文將為大家詳細介紹Matlab制作立體動態(tài)相冊的方法步驟,感興趣的小伙伴可以跟隨小編一起動手試一試
    2022-03-03
  • C語言 聯合(union)用法案例詳解

    C語言 聯合(union)用法案例詳解

    這篇文章主要介紹了C語言 聯合(union)用法案例詳解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下
    2021-08-08

最新評論