1.头文件
#ifndef QWDIALOG_H
#define QWDIALOG_H
#include <QDialog>
namespace Ui {
class QWDialog;
}
class QWDialog : public QDialog
{
Q_OBJECT //只要使用信号与槽功能的类,都需加入此宏定义
public:
explicit QWDialog(QWidget *parent = 0); //构造函数
~QWDialog(); //析构函数
private slots:
void on_chkBoxUnder_clicked(bool checked); //设置下划线
void on_chkBoxItalic_clicked(bool checked); //设置斜体
void on_chkBoxBold_clicked(bool checked); //设置粗体
void setTextFontColor(); //设置字体颜色
private:
Ui::QWDialog *ui; //指向界面的指针,用于访问界面组件
};
#endif // QWDIALOG_H
2,cpp
#include "qwdialog.h"
#include "ui_qwdialog.h"
QWDialog::QWDialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::QWDialog)
{
ui->setupUi(this); //UI初始化
connect(ui->rBtnBlue,SIGNAL(clicked()),this,SLOT(setTextFontColor()));//信号与槽的关联
connect(ui->rBtnRed,SIGNAL(clicked()),this,SLOT(setTextFontColor()));//信号与槽的关联
connect(ui->rBtnBlack,SIGNAL(clicked()),this,SLOT(setTextFontColor()));//信号与槽的关联
}
QWDialog::~QWDialog()
{
delete ui;
}
void QWDialog::setTextFontColor()
{ //设置字体颜色
QPalette plet=ui->txtEdit->palette();
if (ui->rBtnBlue->isChecked())
plet.setColor(QPalette::Text,Qt::blue);
else if (ui->rBtnRed->isChecked())
plet.setColor(QPalette::Text,Qt::red);
else if (ui->rBtnBlack->isChecked())
plet.setColor(QPalette::Text,Qt::black);
else
plet.setColor(QPalette::Text,Qt::black);
ui->txtEdit->setPalette(plet);
}
void QWDialog::on_chkBoxUnder_clicked(bool checked)
{//设置下划线
QFont font=ui->txtEdit->font();
font.setUnderline(checked);
ui->txtEdit->setFont(font);
}
void QWDialog::on_chkBoxItalic_clicked(bool checked)
{ //设置斜体
QFont font=ui->txtEdit->font();
font.setItalic(checked);
ui->txtEdit->setFont(font);
}
void QWDialog::on_chkBoxBold_clicked(bool checked)
{ //设置粗体
QFont font=ui->txtEdit->font();
font.setBold(checked);
ui->txtEdit->setFont(font);
}
3,理解部分
#ifndef QWDIALOG_H
#define QWDIALOG_H
#include <QDialog> //这个是类的标志,也就是说它是一个消息框体
namespace Ui {
class QWDialog; //这可以理解为一个命名空间,每一个你的程序前面都会有,养成习惯
}
class QWDialog : public QDialog
{
Q_OBJECT //只要使用信号与槽功能的类,都需加入此宏定义
public:
explicit QWDialog(QWidget *parent = 0); //构造函数
~QWDialog(); //析构函数,也就是关闭时的函数
private slots:
void on_chkBoxUnder_clicked(bool checked); //设置下划线
void on_chkBoxItalic_clicked(bool checked); //设置斜体
void on_chkBoxBold_clicked(bool checked); //设置粗体
void setTextFontColor(); //设置字体颜色
private:
Ui::QWDialog *ui; //指向界面的指针,用于访问界面组件
};
#endif // QWDIALOG_H
#include "qwdialog.h"
#include "ui_qwdialog.h" //这个是ui界面给出来的
QWDialog::QWDialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::QWDialog) //这个是将这个消息窗体的类当作整个文件的父类
{
ui->setupUi(this); //UI初始化
//这个就是整个QT图像编程语言最重要的知识点--信号与槽。
//可以理解为一个萝卜一个坑,萝卜拔出来,坑就形成了,也就是说:前者会触发后者的发生
connect(ui->rBtnBlue,SIGNAL(clicked()),this,SLOT(setTextFontColor()));//信号与槽的关联
connect(ui->rBtnRed,SIGNAL(clicked()),this,SLOT(setTextFontColor()));//信号与槽的关联
connect(ui->rBtnBlack,SIGNAL(clicked()),this,SLOT(setTextFontColor()));//信号与槽的关联
}
QWDialog::~QWDialog()
{
delete ui; //这就是析构函数,也就是把ui给从内存里面清除掉
}
void QWDialog::setTextFontColor()
{ //设置字体颜色
//QPalette plet 就是在QPalette里面定义一个变量,她的名字为plet
//ui->txtEdit->palette() //这个就是在ui里面有一个控件叫做txtEdit,这个控件带有一个函数,名字叫做 palette();
//后面都是如此了,你需要的就是记下下面的类的成员有哪些,成员又有哪些函数
QPalette plet=ui->txtEdit->palette();
if (ui->rBtnBlue->isChecked())
plet.setColor(QPalette::Text,Qt::blue);
else if (ui->rBtnRed->isChecked())
plet.setColor(QPalette::Text,Qt::red);
else if (ui->rBtnBlack->isChecked())
plet.setColor(QPalette::Text,Qt::black);
else
plet.setColor(QPalette::Text,Qt::black);
ui->txtEdit->setPalette(plet);
}
void QWDialog::on_chkBoxUnder_clicked(bool checked)
{//设置下划线
QFont font=ui->txtEdit->font();
font.setUnderline(checked);
ui->txtEdit->setFont(font);
}
void QWDialog::on_chkBoxItalic_clicked(bool checked)
{ //设置斜体
QFont font=ui->txtEdit->font();
font.setItalic(checked);
ui->txtEdit->setFont(font);
}
void QWDialog::on_chkBoxBold_clicked(bool checked)
{ //设置粗体
QFont font=ui->txtEdit->font();
font.setBold(checked);
ui->txtEdit->setFont(font);
}