qt实现不定数量的按钮向前向后移动展示

2024-04-27 1083阅读

温馨提示:这篇文章已超过370天没有更新,请注意相关的内容是否还可用!

按钮模拟移动

  • 引言
  • 示例代码
    • 第一种
      • 思路
      • 开发环境
      • 代码结构
      • 实现代码
    • 第二种
      • 思路
      • 开发环境
      • 实现代码
    • 第三种
      • 思路
      • 开发环境
      • 实现代码
    • 总结

引言

此文主要记录用qt实现按钮的移动,具体效果如下:

模拟按钮移动效果

示例代码

本文记录了三种实现方式。

第一种

思路

用动态数组vector存放创建的按钮QPushButton的指针,使用两个同类型的二级指针QPushButton来指向数组中的元素,初始状态下,首尾指针都指向数组中第一个元素,随着界面初始化时需要显示的按钮的个数的增加,尾指针不断地移动,确保首指针永远指向窗中显示的按钮的第一个,尾指针指向窗口显示的按钮的最后一个按钮,同时在首尾指针处对应的各自有首计数,和尾计数,来记录当前首尾指针所在处分别是第几个元素,以一开始计数,向前移动时,当首计数为1时,不可向前,尾计数为最后一个元素时,不可向后。
qt实现不定数量的按钮向前向后移动展示

开发环境

Qt5.15.2MinGW 64bit编译器。

代码结构

qt实现不定数量的按钮向前向后移动展示

实现代码

下面是具体的实现代码。
mian.cpp

#include "widget.h"
#include 
int main(int argc, char *argv[])
{
   
    QApplication a(argc, argv);
    Widget w;
    w.show();
    return a.exec();
}

widget.h

#ifndef WIDGET_H
#define WIDGET_H
#include 
#include "scrollbuttonwidget.h"
QT_BEGIN_NAMESPACE
namespace Ui {
    class Widget; }
QT_END_NAMESPACE
class Widget : public QWidget
{
   
    Q_OBJECT
public:
    Widget(QWidget *parent = nullptr);
    ~Widget();
private:
    Ui::Widget *ui;
};
#endif // WIDGET_H

widget.cpp

#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
   
    ui->setupUi(this);
    ScrollButtonWidget *p = new ScrollButtonWidget(this);
}
Widget::~Widget()
{
   
    delete ui;
}

scrollbuttonwidget.h

#ifndef SCROLLBUTTONWIDGET_H
#define SCROLLBUTTONWIDGET_H
#include 
#include 
#include 
#include 
#define TOTAL_NUM 5
#define VISUAL_NUM 3
class ScrollButtonWidget : public QWidget
{
   
    Q_OBJECT
public:
    explicit ScrollButtonWidget(QWidget *parent = nullptr);
protected:
    void createButtons();
    void setLayout();
    void initInterface();
    void goBack();
    void toFront();
signals:
public slots:
private:
    std::vector m_pBtnVector;
    int m_nCurNum;
    int m_nTailNum;
    int m_nFrontNum;
    QPushButton **m_pFront;
    QPushButton **m_pTail;
};
#endif // SCROLLBUTTONWIDGET_H

scrollbuttonwidget.cpp

#include "scrollbuttonwidget.h"
#include 
#include 
ScrollButtonWidget::ScrollButtonWidget(QWidget *parent) : QWidget(parent)
{
   
    m_nCurNum = 0;
    m_nTailNum = 0;
    m_nFrontNum = 0;
    m_pTail = nullptr;
    m_pFront = nullptr;
    createButtons()
VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]