一、界面设计
组件说明:(布局省略)
3个checkBox组件;
3个radioButton组件;
1个textEdit组件;
3个pushButton组件;
二、代码实现
#pragma once
#include <QtWidgets/QDialog>
#include "ui_test2_3.h"
#include<qDebug>
class test2_3 : public QDialog
{
Q_OBJECT
public:
test2_3(QWidget *parent = Q_NULLPTR);
private:
Ui::test2_3Class ui;
void InitUI();
void InitConnect();
bool c1, c2, c3;
private slots:
void on_ok();
void on_cancel();
void on_exti();
void on_color1();
void on_color2();
void on_color3();
};
#include "test2_3.h"
test2_3::test2_3(QWidget *parent)
: QDialog(parent)
{
ui.setupUi(this);
InitUI();
InitConnect();
}
void test2_3::InitUI()
{
ui.textEdit->setText("Hello World!");
}
void test2_3::InitConnect()
{
connect(ui.pushButton, SIGNAL(clicked()), this, SLOT(on_ok()));
connect(ui.pushButton_2, SIGNAL(clicked()), this, SLOT(on_cancel()));
connect(ui.pushButton_3, SIGNAL(clicked()), this, SLOT(on_exti()));
connect(ui.radioButton, SIGNAL(clicked()), this, SLOT(on_color1()));
connect(ui.radioButton_2, SIGNAL(clicked()), this, SLOT(on_color2()));
connect(ui.radioButton_3, SIGNAL(clicked()), this, SLOT(on_color3()));
}
void test2_3::on_ok()
{
c1=ui.checkBox->isChecked();
c2 = ui.checkBox_2->isChecked();
c3 = ui.checkBox_3->isChecked();
ui.textEdit->selectAll();
qDebug() << c3;
if (c3)
{
ui.textEdit->setFontUnderline(true);
}
if (c2)
{
ui.textEdit->setFontItalic(true);
}
if (c1)
{
QFont f;
f.setBold(true);
ui.textEdit->setCurrentFont(f);
}
}
void test2_3::on_cancel()
{
c1 = ui.checkBox->isChecked();
c2 = ui.checkBox_2->isChecked();
c3 = ui.checkBox_3->isChecked();
ui.textEdit->selectAll();
if (c1)
{
ui.checkBox->setCheckState(Qt::Unchecked);
QFont f;
f.setBold(false);
ui.textEdit->setCurrentFont(f);
}
if (c2)
{
ui.checkBox_2->setCheckState(Qt::Unchecked);
ui.textEdit->setFontItalic(false);
}
if (c3)
{
ui.checkBox_3->setCheckState(Qt::Unchecked);
ui.textEdit->setFontUnderline(false);
}
}
void test2_3::on_exti()
{
qDebug() << "ok";
reject();
}
void test2_3::on_color1()
{
qDebug() << "color";
ui.textEdit->selectAll();
ui.textEdit->setTextColor(Qt::blue);
QPalette pt = palette();
pt.setBrush(QPalette::HighlightedText, Qt::NoBrush);
ui.textEdit->setPalette(pt);
}
void test2_3::on_color2()
{
qDebug() << "color";
ui.textEdit->selectAll();
ui.textEdit->setTextColor(Qt::red);
}
void test2_3::on_color3()
{
qDebug() << "color";
ui.textEdit->selectAll();
ui.textEdit->setTextColor(Qt::yellow);
}
三、运行效果