《Qt5.9c++开发指南》学习笔记(QtUI和代码混合编程实现⼯具栏添加控件,
进度条控件。。。
参考书籍:《Qt5.9 c++开发指南》
先上效果图:
action创建
什么是action?
使⽤action可以创建菜单项,⼯具栏按钮,也可以设置QToolButton按钮的关联action,点击这些action创建的菜单项,按钮就执⾏action 的槽函数。
1.资源⽂件创建,即等会action要⽤到的图标图⽚,点击File->new File or priject然后如下操作
2.action创建
3.action与槽函数绑定
代码
MainWindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QFontComboBox>
#include <QLabel>
#include <QMainWindow>
#include <QProgressBar>
#include <QSpinBox>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = nullptr);
~MainWindow();
private:
QString fCurFileName;//当前⽂件名
QLabel *fLabCurFile;//状态栏⾥显⽰当前⽂件的Label
QProgressBar *progressBar1;//状态栏上的进度条
QSpinBox *spinFontSize;// 字体⼤写
QFontComboBox *comboFont;//字体名称
void updateCurFile(QString aFile);//更新当前⽂件名,并更新状态栏提⽰
void iniUI(); //程序设计的UI初始化
void iniSignalSlots(); //⼿⼯关联信号与槽
void createNew();
private slots:
//UI界⾯设计⽣成的槽函数
void on_actFontBold_triggered(bool checked); //粗体Action
void on_actFontItalic_triggered(bool checked); //斜体Action
void on_actFontUnder_triggered(bool checked); //下划线Action
void on_actNew_triggered();//新建⽂件
void on_actOpen_triggered();//打开⽂件
void on_actFont_triggered();//字体选择对话框
void on_txtEdit_selectionChanged(); //当前选择的⽂字发⽣变化,更新粗体、斜体、下划线3个action的checked状态 void on_txtEdit_copyAvailable(bool b);//有⽂字可copy时更新cut,copy的Enable状态
void on_actToolbarLab_triggered(bool checked); //设置⼯具栏按钮样式
// ⾃定义槽函数
void on_spinBoxFontSize_valueChanged(int aFontSize);//改变字体⼤⼩的SpinBox的响应
void on_comboFont_currentIndexChanged(const QString &arg1);//FontCombobox的响应,选择字体名称
//void on_actCut_triggered();
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
fontweight属性boldMainWindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QFile>
#include <QFileDialog>
#include <QTextStream>
#include <QFontDialog>
#include <QCoreApplication>
#include <Qlabel>
#include <QTextCharFormat>
void MainWindow::updateCurFile(QString aFile)
{//更新当前⽂件名,并更新状态栏提⽰
fCurFileName=aFile;
fLabCurFile->setText("当前⽂件:"+fCurFileName);
}
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
iniUI();//⼿⼯初始化UI
iniSignalSlots();//信号与槽关联
}
MainWindow::~MainWindow()
{
delete ui;
}
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->txtEdit->font().pointSize());//初始值
ui->statusBar->addWidget(progressBar1); //添加到状态栏
//⼯具栏
spinFontSize = new QSpinBox;// ⼯具栏上的⽂字⼤⼩ SpinBox
spinFontSize->setMinimum(5);
spinFontSize->setMaximum(50);
spinFontSize->setValue(ui->txtEdit->font().pointSize());//初始值
spinFontSize->setMinimumWidth(50);//设置组件最⼩宽度
ui->mainToolBar->addWidget(new QLabel("字体⼤⼩ ")); //不引⽤的Label⽆需定义变量 ui->mainToolBar->addWidget(spinFontSize); //SpinBox添加到⼯具栏
ui->mainToolBar->addSeparator(); //⼯具栏上增加分隔条
ui->mainToolBar->addWidget(new QLabel(" 字体 "));
comboFont = new QFontComboBox;//字体名称ComboBox
comboFont->setMinimumWidth(150); //设置组件最⼩宽度
ui->mainToolBar->addWidget(comboFont);//添加到⼯具栏
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论