Qt界面设计——侧边栏隐藏和滑出

这篇具有很好参考价值的文章主要介绍了Qt界面设计——侧边栏隐藏和滑出。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在日常项目中,界面布局上经常使用到侧边栏的方式,在侧边栏放置控件进行复合使用,可以实现子功能界面的隐藏和滑出,效果展示如下:

Qt界面设计——侧边栏隐藏和滑出

  界面控件很简单,主界面QWidget,侧边栏也用一个QWidget和一个按钮QPushbutton来进行组合。通过点击按钮来显示和隐藏侧边栏。主要用到的是控件的move()函数,配合QPropertyAnimation实现动画效果滑动显示隐藏。动画滑出动画效果使用到的是QPropertyAnimation类的setEasingCurve()函数,通过设置函数参数来实现不同的动画效果,具体效果可以通过Qt Create的帮助文件查询到。Qt界面设计——侧边栏隐藏和滑出

Qt界面设计——侧边栏隐藏和滑出 

Qt界面设计——侧边栏隐藏和滑出 

 

  mainwindow.h源码:

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QPropertyAnimation>

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

private:
    Ui::MainWindow *ui;
    QPropertyAnimation *m_propertyAnimation;
    QPropertyAnimation *m_propertyAnimation2;
    bool m_bSideflag = false;private slots:
    void on_pushButton_clicked();

};

#endif // MAINWINDOW_H

  mainwindow.cpp源码:

#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    ui->widget_side->move(-ui->widget_side->width(),0);// 左侧停靠
    ui->pushButton->move(-1,ui->widget_side->height()/2);
    m_propertyAnimation = new QPropertyAnimation(ui->widget_side,"geometry");
    m_propertyAnimation->setEasingCurve(QEasingCurve::InOutSine);
    m_propertyAnimation->setDuration(800);
    m_propertyAnimation2 = new QPropertyAnimation(ui->pushButton,"geometry");
    m_propertyAnimation2->setEasingCurve(QEasingCurve::InOutSine);
    m_propertyAnimation2->setDuration(800);
}

MainWindow::~MainWindow()
{
    delete ui;
}void MainWindow::on_pushButton_clicked()
{
    //显示侧边栏
    if(!m_bSideflag)
    {
        m_propertyAnimation->setStartValue(QRect(-this->rect().width(),0,ui->widget_side->width(),ui->widget_side->height()));
        m_propertyAnimation->setEndValue(QRect(0,0,ui->widget_side->width(),ui->widget_side->height()));
        m_propertyAnimation->start();
        m_propertyAnimation2->setStartValue(QRect(-1,ui->widget_side->height()/2-ui->pushButton->height()/2,ui->pushButton->width(),ui->pushButton->height()));
        m_propertyAnimation2->setEndValue(QRect(ui->widget_side->width()-2,ui->widget_side->height()/2-ui->pushButton->height()/2,ui->pushButton->width(),ui->pushButton->height()));
        m_propertyAnimation2->start();
        ui->pushButton->setText("<<");
        m_bSideflag = !m_bSideflag;
    }
    else
    {
        m_propertyAnimation->setStartValue(QRect(0,0,ui->widget_side->width(),ui->widget_side->height()));
        m_propertyAnimation->setEndValue(QRect(-this->rect().width(),0,ui->widget_side->width(),ui->widget_side->height()));
        m_propertyAnimation->start();
        m_propertyAnimation2->setStartValue(QRect(ui->widget_side->width()-2,ui->widget_side->height()/2-ui->pushButton->height()/2,ui->pushButton->width(),ui->pushButton->height()));
        m_propertyAnimation2->setEndValue(QRect(-1,ui->widget_side->height()/2-ui->pushButton->height()/2,ui->pushButton->width(),ui->pushButton->height()));
        m_propertyAnimation2->start();
        ui->pushButton->setText(">>");
        m_bSideflag = !m_bSideflag;
    }
}

  Qt中动画效果的功能很强大,初次接触,还有很多功能需要去不断摸索,加油!

优化思路:

新增一个qwidget容器,将菜单栏和按钮控件放置到qwidget容器里面,可以实现两者动态效果的一致性,以下是实现的最终效果图:

Qt界面设计——侧边栏隐藏和滑出文章来源地址https://www.toymoban.com/news/detail-515428.html

到了这里,关于Qt界面设计——侧边栏隐藏和滑出的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • QT界面设计:深入理解QSS样式表设计

    本文详细介绍了QT界面设计中的QSS样式技术,包括QSS样式表的语法、用法、selector设置以及属性列表等内容,帮助你提升审美,打造出令人羡慕的软件界面。

    2024年02月13日
    浏览(36)
  • qt设计界面

    widget.h main.cpp widget.cpp 结果 XMind

    2024年02月10日
    浏览(27)
  • QT界面布局和设计

    2024年02月12日
    浏览(39)
  • 【Qt设计开发】GUI界面设计开发

      本文是我在学习QT的GUI界面设计过程当中的心得和学习笔记,在学习时已经有C, C++,Python的基础。文章附上了学习的代码,仅供大家参考。如果有问题,有错误欢迎大家留言。此外,博主还有另外几篇文章,分别关于 Python基础知识 、 Python的具体应用 、 C语言指针结构体

    2024年02月02日
    浏览(38)
  • Qt用户图形界面设计应用(闹钟)

    什么是Qt Qt 是一个跨平台的 C++ 图形用户界面库,由挪威 TrollTech 公司于 1995 年底出品,并于 2008年6月17日被NOKIA公司收购,以增强NOKIA公司在跨平 台软件研发方面的实力,更名为Qt Software。 Qt的优点 基本上, Qt 同 X Window 上的 Motif, Openwin, GTK 等图形界 面库 和 Windows 平台上的

    2024年02月08日
    浏览(49)
  • QT day1 (图形界面设计)

    要求:  功能函数模块  做出如下效果图:  

    2024年02月08日
    浏览(28)
  • Qt Dialog 界面设计之 FindDialog

    目录 一、FindDialog效果图 二、实现代码 H文件: CPP文件: 三、信号和槽 四、补充说明 代码的逻辑顺序:          1、创建并初始化窗口部件。          2、添加布局,把创建好的控件放入布局当中。          3、设置控件的属性。          4、建立信号-槽之间的

    2023年04月18日
    浏览(35)
  • 设计qt界面并通过代码显示

    方法 1: 在 ui 文件所在的文件夹中,按快捷键 Shift+鼠标右键,在弹出的菜单栏中选择“在此处打开 Powershell\\\" 在终端输入指令:pyuic5 -o xxx.py py xxx.ui 例子:pyuic5 -o 界面.py untitled.ui 方法 2:通过 python 代码直接调用终端输入命令 方法 1.界面生成的代码 + python 代码 方法 2.ui 文件

    2024年02月09日
    浏览(26)
  • qt中使用 ui 文件进行界面设计

    目录 1、创建 Qt 应用 ​2、项目创建成功 3、直接点击打开 mainwindow.ui 文件 4、随便从左边侧边栏拖拽一个空间到 界面设计区域 5、在右侧边栏右键点击 pushButton 控件,点击转到槽 6、根据实际需要选择对应的信号,我这里方便演示选择 clicked()信号,直接点击 OK 7、自动在

    2024年02月04日
    浏览(29)
  • qt设计一个简单的注册登录界面

    实现代码:

    2024年02月14日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包