91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2022-07-06 14:14:23 來源:億速云 閱讀:300 作者:iii 欄目:開發技術

本文小編為大家詳細介紹“Qt如何實現一個簡單的word文檔編輯器”,內容詳細,步驟清晰,細節處理妥當,希望這篇“Qt如何實現一個簡單的word文檔編輯器”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

    1.先看效果圖

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

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

    2.需要用到的類

    2.1字體選擇下拉框:QFontComboBox。

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

    常用方法:

    獲取當前的字體

    QFont currentFont() const

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

    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文檔編輯器”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    兴国县| 偏关县| 和龙市| 晴隆县| 乐陵市| 富民县| 疏附县| 延庆县| 陆川县| 夏津县| 萨迦县| 通许县| 望奎县| 天门市| 台中县| 成武县| 渝北区| 镇巴县| 台南县| 呼玛县| 宁安市| 曲阜市| 叙永县| 万盛区| 呈贡县| 连州市| 西林县| 茌平县| 涪陵区| 德安县| 苏尼特左旗| 靖江市| 昌黎县| 三亚市| 凌云县| 浙江省| 奇台县| 龙南县| 岫岩| 瑞昌市| 甘肃省|