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 查看本文章
![](/qrcode.jpg)
槽函数:
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、运行结果: