Qt Framework完整的软件开发框架
  一些代码   0 评论   88 浏览量

Qt Framework完整的软件开发框架

  一些代码   0 评论   88 浏览量

Qt Creator 11.0.3离线版本安装包下载链接。这个需求登录邮箱账号,进行下载。该版本是最新的版本,基于QT6.4.3框架。

Qt Framework 包含一整套高度直观、模块化 的C++ 库类,并加载可简化应用程序开发的API。Qt 可生成高可读、易维护和可重用的代码,具有较高的运行时性能,且内存占用小——最重要的是,Qt是跨平台的。安装的时候一定要选择Desktop Qt 6.6.0 MinGW 64-bit构建套件。否则不能编译运行

学习视频链接:传智教育,经典的案例:链接地址

image.png

模态框与非模态框的创建

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDialog>
#include <QDebug>
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    //点击信号按钮,出现对话框 信号 槽 lomada表达式
    connect(ui->actionnewSave,&QAction::triggered,[=](){
        // 对话框的分类
        // 模态对话框(不可以对其他窗口进行操作) 非模态对话框(可以对其他窗口对话框)
        // 模态对话框
        QDialog dlg(this);
        dlg.resize(200,400);
        dlg.exec(); // 阻塞
        qDebug() << "模态框弹出了";
    });
}

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

登录窗口的绘制。首先需要设置窗口的工具栏,title为空。不能设置成SplashScreen(闪屏,启动动画)。否则会导致无法出现应用图标。使用setWindowFlags(Qt::FramelessWindowHint);设置成无边框的窗口。然后重写拖动的方法。实现三个事件的虚函数即可


#include <QMouseEvent>
// 虚函数
void TLoginDialog::mousePressEvent(QMouseEvent *event)
{
    if(event->button() == Qt::LeftButton)
    {
        m_moving = true;
        m_lastPos = event->globalPosition().toPoint()-this->pos();
    }
    return QDialog::mousePressEvent(event);
}

void TLoginDialog::mouseReleaseEvent(QMouseEvent *event)
{
    m_moving = false;
    event->accept();
}

void TLoginDialog::mouseMoveEvent(QMouseEvent *event)
{
    QPoint eventPos = event->globalPosition().toPoint();
    //qDebug() << event->button() ;
    if(m_moving && (event->button() == Qt::NoButton) &&
        (eventPos-m_lastPos-pos()).manhattanLength() > QApplication::startDragDistance())
    {
        move(eventPos - m_lastPos);
        m_lastPos = eventPos - pos();
        //qDebug() << eventPos << m_moving;
    }
    return QDialog::mouseMoveEvent(event);
}
cpp

创建渐变色的逻辑代码

// 创建渐变
QLinearGradient gradient(0, 0, 0, this->size().height());
gradient.setColorAt(0, QColor(38, 72, 198)); // 起始颜色为红色
gradient.setColorAt(1, QColor(96, 73, 215)); // 结束颜色为蓝色
// 设置渐变背景
QPalette palette;
palette.setBrush(QPalette::Window, QBrush(gradient));
this->setPalette(palette);
cpp

设置窗口圆角的方法

// 设置窗口的形状为圆角
int radius = 6; // 圆角半径
// 创建 QPainterPath 来定义窗口形状
QPainterPath path;
path.addRoundedRect(0, 0, this->size().width(), this->size().height(), radius, radius);
// 设置窗口的形状
this->setMask(path.toFillPolygon().toPolygon());
cpp
本文由 木之下 发表, 最后编辑时间为:2023-11-29 21:19:14
(完)