Qt 简单文本处理项目

一.项目功能

这是一个简单的文本处理项目,使用Qt制作。用户可以在该项目中添加下划线、斜体、加粗样式,并且还可以改变字体颜色。

效果演示如下:

二.项目设计流程

1.添加所需要控件指针

    //添加指针变量,用来指向界面组件
    QCheckBox*chkBoxUnderLine;//下划线
    QCheckBox*chKBoxItalic;//斜体
    QCheckBox*chKBoxBold;//粗体

    //单选按钮
    QRadioButton*rBtnBlack;//黑色单选按钮
    QRadioButton*rBtnRed;
    QRadioButton*rBtnGreen;

    QPlainTextEdit*txtEdit;//纯文本编辑器

    QPushButton*btnOk;
    QPushButton*btnCancel;
    QPushButton*btnClose;

2.初始化控件

    //创建3个复选框
    chkBoxUnderLine=new QCheckBox("下划线");//旁边文字
    chKBoxItalic=new QCheckBox("斜体");
    chKBoxBold=new QCheckBox("粗体");

    //创建单选按钮
    rBtnBlack=new QRadioButton("黑色");
    rBtnRed=new QRadioButton("红色");
    rBtnGreen=new QRadioButton("绿色");

    //创建点击按钮
    btnOk=new QPushButton("确定");
    btnClose=new QPushButton("关闭");
    btnCancel=new QPushButton("取消");

 3.设置水平垂直布局

    QHBoxLayout*hlayer1=new QHBoxLayout;
    hlayer1->addWidget(chkBoxUnderLine);//添加窗口部件
    hlayer1->addWidget(chKBoxItalic);
    hlayer1->addWidget(chKBoxBold);
    
    QHBoxLayout*hlayer1=new QHBoxLayout;
    hlayer1->addWidget(chkBoxUnderLine);//添加窗口部件
    hlayer1->addWidget(chKBoxItalic);
    hlayer1->addWidget(chKBoxBold);

    QHBoxLayout*hLayer3=new QHBoxLayout;
    hLayer3->addWidget(btnOk);
    hLayer3->addWidget(btnCancel);
    //在尾部添加一个可拉伸控件
    hLayer3->addStretch();
    hLayer3->addWidget(btnClose);
    
    QHBoxLayout*hLayer3=new QHBoxLayout;
    hLayer3->addWidget(btnOk);
    hLayer3->addWidget(btnCancel);
    //在尾部添加一个可拉伸控件
    hLayer3->addStretch();
    hLayer3->addWidget(btnClose);

4.设置相应的槽函数

private slots:
    void onChkBoxUnderLine(bool checked);//下滑线槽函数
    void onChkBoxItalic(bool checked);//斜体
    void onChkBoxBold(bool checked);//粗体

    void setTextFontColor();//颜色单选框的槽函数

void Dialog::onChkBoxUnderLine(bool checked)//下滑线槽函数
{
    //取出文本编辑器的字体
    QFont font=txtEdit->font();

    //设置字体的下划线
    font.setUnderline(checked);

    //设置文本编辑器的字体
    txtEdit->setFont(font);

}
void Dialog::onChkBoxItalic(bool checked)//斜体
{
    //取出文本编辑器的字体
    QFont font=txtEdit->font();

    //设置字体的下划线
    font.setItalic(checked);

    //设置文本编辑器的字体
    txtEdit->setFont(font);
}
void Dialog::onChkBoxBold(bool checked)//粗体
{
    //取出文本编辑器的字体
    QFont font=txtEdit->font();

    //设置字体的下划线
    font.setBold(checked);

    //设置文本编辑器的字体
    txtEdit->setFont(font);
}

void Dialog::setTextFontColor()//颜色单选框的槽函数
{
    //获取纯文本编辑器的调色板
    QPalette Palette=txtEdit->palette();

    if(rBtnRed->isChecked())
    {
       Palette.setColor(QPalette::Text,Qt::red);
    }else if(rBtnBlack->isChecked())
    {
        Palette.setColor(QPalette::Text,Qt::black);
    }else if(rBtnGreen->isChecked())
    {
        Palette.setColor(QPalette::Text,Qt::green);
    }

    //设置文本编辑器的调色版,放回去
    txtEdit->setPalette(Palette);
}

5.关联槽函数 

void Dialog::onChkBoxUnderLine(bool checked)//下滑线槽函数
{
    //取出文本编辑器的字体
    QFont font=txtEdit->font();

    //设置字体的下划线
    font.setUnderline(checked);

    //设置文本编辑器的字体
    txtEdit->setFont(font);

}
void Dialog::onChkBoxItalic(bool checked)//斜体
{
    //取出文本编辑器的字体
    QFont font=txtEdit->font();

    //设置字体的下划线
    font.setItalic(checked);

    //设置文本编辑器的字体
    txtEdit->setFont(font);
}
void Dialog::onChkBoxBold(bool checked)//粗体
{
    //取出文本编辑器的字体
    QFont font=txtEdit->font();

    //设置字体的下划线
    font.setBold(checked);

    //设置文本编辑器的字体
    txtEdit->setFont(font);
}

void Dialog::setTextFontColor()//颜色单选框的槽函数
{
    //获取纯文本编辑器的调色板
    QPalette Palette=txtEdit->palette();

    if(rBtnRed->isChecked())
    {
       Palette.setColor(QPalette::Text,Qt::red);
    }else if(rBtnBlack->isChecked())
    {
        Palette.setColor(QPalette::Text,Qt::black);
    }else if(rBtnGreen->isChecked())
    {
        Palette.setColor(QPalette::Text,Qt::green);
    }

    //设置文本编辑器的调色版,放回去
    txtEdit->setPalette(Palette);
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值