【Qt】实训1.9

可在以下网址查看资料
https://doc.qt.io/archives/qt-5.9/classes.html

效果展示:
可以点击上方的按钮对下面的文字进行修改。
在这里插入图片描述

mylayouttest.h

//mylayouttest.h
#ifndef MYLAYOUTTEST_H
#define MYLAYOUTTEST_H

#include <QMainWindow>
#include <QAbstractItemModel>
#include<QCheckBox>
#include<QRadioButton>
#include<QPlainTextEdit>

namespace Ui {
class MyLayoutTest;
}

class MyLayoutTest : public QWidget
{
    Q_OBJECT

public:
    explicit MyLayoutTest(QWidget *parent = 0);
    ~MyLayoutTest();
private slots:
    void chkUnderLineSlot(bool checked);
    void chkItalicLineSlot(bool checked);
    void chkBoldLineSlot(bool checked);
    void setTextFontColor();

private:
    Ui::MyLayoutTest *ui;
    QCheckBox ulCheckBox;
    QCheckBox itCheckBox;
    QCheckBox boldCheckBox;
    QRadioButton redRadioButton;
    QRadioButton blueRadioButton;
    QRadioButton blackRadioButton;
    QPlainTextEdit showTextEdit;

};

#endif // MYLAYOUTTEST_H

main.cpp

//main.cpp
#include "mylayouttest.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MyLayoutTest w;
    w.show();

    return a.exec();
}

mylayouttest.cpp

//mylayouttest.cpp
#include "mylayouttest.h"
#include "ui_mylayouttest.h"
#include<QGroupBox>
#include<QHBoxLayout>

MyLayoutTest::MyLayoutTest(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::MyLayoutTest)
{
    ui->setupUi(this);
    QGroupBox *checkGroup=new QGroupBox(this);
    QHBoxLayout *checkLayout=new QHBoxLayout;
    this->ulCheckBox.setText("UnderLine");
    this->itCheckBox.setText("Italic");
    this->boldCheckBox.setText("Bold");
    checkLayout->addWidget(&ulCheckBox);
    checkLayout->addWidget(&boldCheckBox);
    checkLayout->addWidget(&itCheckBox);
    checkGroup->setLayout(checkLayout);

    QGroupBox *radioGroup=new QGroupBox(this);
    QHBoxLayout *radioLayout=new QHBoxLayout;
    this->redRadioButton.setText("Red");
    this->blueRadioButton.setText("Bule");
    this->blackRadioButton.setText("Black");
    radioLayout->addWidget(&redRadioButton);
    radioLayout->addWidget(&blueRadioButton);
    radioLayout->addWidget(&blackRadioButton);
    radioGroup->setLayout(radioLayout);

    QVBoxLayout *mainLayout= new QVBoxLayout;
    mainLayout->addWidget(checkGroup);
    mainLayout->addWidget(radioGroup);
    mainLayout->addWidget(&showTextEdit);

    this->setLayout(mainLayout);

    // 信号与槽
    connect(&this->ulCheckBox, SIGNAL(clicked(bool)), this, SLOT(chkUnderLineSlot(bool)));
    connect(&boldCheckBox, SIGNAL(clicked(bool)), this, SLOT(chkBoldLineSlot(bool)));
    connect(&itCheckBox, SIGNAL(clicked(bool)), this, SLOT(chkItalicLineSlot(bool)));

    connect(&redRadioButton, SIGNAL(clicked(bool)), this, SLOT(setTextFontColor()));
    connect(&blueRadioButton, SIGNAL(clicked(bool)), this, SLOT(setTextFontColor()));
    connect(&blackRadioButton, SIGNAL(clicked(bool)), this, SLOT(setTextFontColor()));

}

MyLayoutTest::~MyLayoutTest()
{
    delete ui;
}

void MyLayoutTest::chkUnderLineSlot(bool checked)
{
        QFont font=showTextEdit.font();
        font.setUnderline(checked);
        showTextEdit.setFont(font);

}

void MyLayoutTest::chkItalicLineSlot(bool checked)
{
    QFont font=showTextEdit.font();
    font.setItalic(checked);
    showTextEdit.setFont(font);

}

void MyLayoutTest::chkBoldLineSlot(bool checked)
{
    QFont font=showTextEdit.font();
    font.setBold(checked);
    showTextEdit.setFont(font);
}

void MyLayoutTest::setTextFontColor()
{
    QPalette plt = showTextEdit.palette();

    if(redRadioButton.isChecked())
        plt.setColor(QPalette::Text,Qt::red);
    else if(blueRadioButton.isChecked())
        plt.setColor (QPalette::Text,Qt::blue);
    else if(blackRadioButton.isChecked())
        plt.setColor(QPalette::Text,Qt::black);

    showTextEdit.setPalette(plt);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值