实现综合实例:简单文字处软件 (一)

学业繁重,更新缓慢。

本内容主要用于个人学习/复习QT简单入门控件

DAY ONE

创建项目

界面设计与开发

实现简单的菜单栏设计

本人并没有使用代码实现,而是用于使用UI设计师界面。

action条例

分类 

设计控件(帮助)

设计帮助控件:

我们转到槽,填写如下代码:

这是一个基于QT6实现的文字处理软件,具备类似微软Office Word的功能。

该软件使用Qt框架开发,并利用QMessageBox组件显示关于信息。图片资源通过QPixmap加载,并调整大小以适应界面需求。

点击“关于QT 6”Action可以查看QT的相关信息。

void MainWindow::on_aboutAction_triggered()
{
    QMessageBox WaShu(QMessageBox::NoIcon,tr("关于"),tr("这是一个基于QT6实现的文字处理软件\r\n具备类似微软Office Word的功能。"));
    // 加载图片资源
    QPixmap pixmap(":/img/1734176346662.png");

    // 调整图片大小为50x100//Qt::KeepAspectRatio,你可以确保图像在缩放后仍然保持原有的比例。
    //Qt::SmoothTransformation 是 Qt 框架中的一个枚举值,用于在缩放图像时应用平滑变换。这有助于减少图像缩放过程中可能出现的锯齿和像素化现象,从而使图像在视觉上更加平滑和自然。
    QPixmap scaledPixmap = pixmap.scaled(100, 200, Qt::KeepAspectRatio, Qt::SmoothTransformation);

    // 将调整后的图片设置为QLabel的图标
    WaShu.setIconPixmap(scaledPixmap);
    WaShu.exec();
}

void MainWindow::on_action_QT6_Q_triggered()
{
    QMessageBox::aboutQt(NULL,"关于QT 6");
}

我们接着布局,这次直接把工具栏加入。并把ACtion拖拽进去

并且创建三个combox (其中一个为QFontCombox)其中分别命名为frontcobox和sizecombox

拖入一个MidArea

 

我们写一个init()用于初始化我们的项目;

 
    QList sizes = QFontDatabase::standardSizes();
    for (int size : sizes) {
        ui->sizeComboBox->addItem(QString::number(size));
    }
    //显示当前字体大小 QApplication::font().pointSize() 应用程序大小
    ui->sizeComboBox->setCurrentIndex(ui->sizeComboBox->findText(QString::number(QApplication::font().pointSize())));
 

这段代码入图注释。

 
    ui->mdiArea->setHorizontalScrollBarPolicy(Qt::ScrollBarAsNeeded);
    ui->mdiArea->setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded);
 

这里初始化一下mdiArea,用于给mdiArea对象增加一个垂直滚动条和水平滚动条

完整代码:

 

 
    #include "mainwindow.h"
#include "ui_mainwindow.h"
#include
#include
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{

    ui->setupUi(this);
    initMainWindow();
}

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

void MainWindow::initMainWindow()
{
    //将字体大小放入COMBOX中
    QList sizes = QFontDatabase::standardSizes();
    for (int size : sizes) {
        ui->sizeComboBox->addItem(QString::number(size));
    }
    //显示当前字体大小 QApplication::font().pointSize() 应用程序大小
    ui->sizeComboBox->setCurrentIndex(ui->sizeComboBox->findText(QString::number(QApplication::font().pointSize())));


    ui->mdiArea->setHorizontalScrollBarPolicy(Qt::ScrollBarAsNeeded);
    ui->mdiArea->setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded);
}


void MainWindow::on_aboutAction_triggered()
{
    QMessageBox WaShu(QMessageBox::NoIcon,tr("关于"),tr("这是一个基于QT6实现的文字处理软件\r\n具备类似微软Office Word的功能。"));
    // 加载图片资源
    QPixmap pixmap(":/img/1734176346662.png");

    // 调整图片大小为50x100//Qt::KeepAspectRatio,你可以确保图像在缩放后仍然保持原有的比例。
    //Qt::SmoothTransformation 是 Qt 框架中的一个枚举值,用于在缩放图像时应用平滑变换。这有助于减少图像缩放过程中可能出现的锯齿和像素化现象,从而使图像在视觉上更加平滑和自然。
    QPixmap scaledPixmap = pixmap.scaled(100, 200, Qt::KeepAspectRatio, Qt::SmoothTransformation);

    // 将调整后的图片设置为QLabel的图标
    WaShu.setIconPixmap(scaledPixmap);
    WaShu.exec();
}


void MainWindow::on_action_QT6_Q_triggered()
{
    QMessageBox::aboutQt(NULL,"关于QT 6");
}
 
posted @ 2024-12-14 20:02  安娜アンナ  阅读(36)  评论(0)    收藏  举报