一.项目功能
这是一个简单的文本处理项目,使用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);
}