其他分享
首页 > 其他分享> > QT5笔记:2.可视化UI设计

QT5笔记:2.可视化UI设计

作者:互联网

2.可视化UI设计

参考视频:https://www.bilibili.com/video/BV1AX4y1w7Nt

QMetaObject::connectSlotsByName(Dialog);//表示使用方法名来建立信号&槽的关系


/**
 * @brief Dialog::on_checkBoxUnderline_clicked
 * @param checked
 * sender checkBoxUnderline
 * signal clicked
 * receiver Dialog
 * slot   on_checkBoxUnderline_clicked(bool checked)
 */
void Dialog::on_checkBoxUnderline_clicked(bool checked)
{
    QFont font = ui->textBox->font();//获取font
    font.setUnderline(checked);//设置下划线
    ui->textBox->setFont(font);//设置font
    //ui->textBox->font().setUnderline(checked);//界面不能这么设置,因为font()的返回值是const,不能改,但是能获取
}

void Dialog::on_checkBoxItalic_clicked(bool checked)
{
    QFont font = ui->textBox->font();//获取font
    font.setItalic(checked);//设置斜体
    ui->textBox->setFont(font);//设置font
}

void Dialog::on_checkBoxBold_clicked(bool checked)
{
    QFont font = ui->textBox->font();//获取font
    font.setBold(checked);//设置加粗
    ui->textBox->setFont(font);//设置font
}

/**
 * @brief Dialog::on_checkBoxUnderline_clicked
 * @param checked
 * sender checkBoxUnderline
 * signal clicked
 * receiver Dialog
 * slot   on_checkBoxUnderline_clicked(bool checked)
 */
void Dialog::on_checkBoxUnderline_clicked(bool checked)
{
    QFont font = ui->textBox->font();//获取font
    font.setUnderline(checked);//设置下划线
    ui->textBox->setFont(font);//设置font
    //ui->textBox->font().setUnderline(checked);//界面不能这么设置,因为font()的返回值是const,不能改,但是能获取
}

void Dialog::on_checkBoxItalic_clicked(bool checked)
{
    QFont font = ui->textBox->font();//获取font
    font.setItalic(checked);//设置斜体
    ui->textBox->setFont(font);//设置font
}

void Dialog::on_checkBoxBold_clicked(bool checked)
{
    QFont font = ui->textBox->font();//获取font
    font.setBold(checked);//设置加粗
    ui->textBox->setFont(font);//设置font
}

/**
 * @description 设置字体颜色
 * 该槽函数是Radio Btn 的槽函数,是手动定义的。目的是让三个Radio Btn 共用一个槽函数
 * 也可以让三个Radio Btn有三个槽函数,只是会让代码显示很臃肿
 * 最后记得手动在窗口构造函数里(或者根据逻辑在代码其他地方)设置connnect ,使界面和槽函数连接起来。
 * QObject::connect(ui->radioButtonBlack, SIGNAL(clicked()), this, SLOT(on_colorRadioBtn_clicked()));
 * QObject::connect(ui->radioButtonRed, SIGNAL(clicked()), this, SLOT(on_colorRadioBtn_clicked()));
 * QObject::connect(ui->radioButtonBlue, SIGNAL(clicked()), this, SLOT(on_colorRadioBtn_clicked()));
 */
void Dialog::on_colorRadioBtn_clicked()
{
    QPalette palette = ui->textBox->palette();
    if(ui->radioButtonBlack->isChecked()){
        palette.setColor(QPalette::Text,Qt::black);
    }
    else if(ui->radioButtonBlue->isChecked()){
        palette.setColor(QPalette::Text,Qt::blue);
    }
    else if(ui->radioButtonRed->isChecked()){
        palette.setColor(QPalette::Text,Qt::red);
    }
    else
        palette.setColor(QPalette::Text,Qt::black);
    ui->textBox->setPalette(palette);
}

标签:QT5,clicked,可视化,UI,Dialog,checked,ui,font,textBox
来源: https://www.cnblogs.com/FlyonGrass/p/16215768.html