Qt5 学习之路及嵌入式开发教程18:Qt5主窗口---字体字号状态栏

Qt5 学习之路及嵌入式开发教程18:Qt5主窗口---字体字号状态栏

这次任务要完成Qt5主窗口的界面设计第五部分:字体字号状态栏功能实现

无法用控件完成,只能用代码完成。

步骤:

1、在mainwidow.h中添加代码

#include <QSpinBox>
#include <QFontComboBox>

在类定义内:

private:
    QLabel           *fLabCurFile;
    QProgressBar     *progressBar1;
    QSpinBox         *spinFontSize;
    QFontComboBox    *comboFont;
    
    void             iniUI();

添加槽函数:

private slots:
    void on_spinBoxFontSize_valueChanged(int aFontSize);
    void on_comboFont_currentIndexChanged(const QString &arg1);

2、在mainwindow.cpp中变量初始化、功能实现

变量和函数初始化:

void MainWindow::iniUI()
{
    fLabCurFile = new QLabel;
    fLabCurFile->setMinimumWidth(150);
    fLabCurFile->setText("当前文件:");
    ui->statusBar->addWidget(fLabCurFile);

    progressBar1 = new QProgressBar;
    progressBar1->setMaximumWidth(200);
    progressBar1->setMinimum(5);
    progressBar1->setMaximum(50);
    progressBar1->setValue(ui->textEdit->font().pointSize());
    ui->statusBar->addWidget(progressBar1);

    spinFontSize = new QSpinBox;
    spinFontSize->setMinimum(5);
    spinFontSize->setMaximum(50);
    spinFontSize->setValue(ui->textEdit->font().pointSize());
    spinFontSize->setMinimumWidth(50);
    ui->toolBar->addSeparator();

    QLabel   *lb_1 = new QLabel("字号 ");
    QFont ft("Microsoft YaHei", 11);
    lb_1->setFont(ft);
    ui->toolBar->addWidget(lb_1);
    ui->toolBar->addWidget(spinFontSize);

    ui->toolBar->addSeparator();

    QLabel   *lb_2 = new QLabel(" 字体  ");
    QFont ft2("Microsoft YaHei", 11);
    lb_2->setFont(ft2);
    ui->toolBar->addWidget(lb_2);
    comboFont = new QFontComboBox;
    comboFont->setMinimumWidth(100);
    ui->toolBar->addWidget(comboFont);

    setCentralWidget(ui->textEdit);
}

在ui->setupUi(this);下一行添加

iniUI();

扫描二维码关注公众号,回复: 11195645 查看本文章

槽函数:

connect(spinFontSize,SIGNAL(valueChanged(int)),this,SLOT(on_spinBoxFontSize_valueChanged(int)));
  

connect(comboFont,SIGNAL(currentIndexChanged(QString)),this,SLOT(on_comboFont_currentIndexChanged(QString)));

功能实现:

void MainWindow::on_spinBoxFontSize_valueChanged(int aFontSize)
{
    QTextCharFormat     fmt;
    fmt.setFontPointSize(aFontSize);
    ui->textEdit->mergeCurrentCharFormat(fmt);
    progressBar1->setValue(aFontSize);
}

void MainWindow::on_comboFont_currentIndexChanged(const QString &arg1)
{
    QTextCharFormat     fmt;
    fmt.setFontFamily(arg1);
    ui->textEdit->mergeCurrentCharFormat(fmt);
}

3、运行结果:

原创文章 73 获赞 16 访问量 3万+

猜你喜欢

转载自blog.csdn.net/fjqlldg/article/details/105828268
Qt5