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

这篇具有很好参考价值的文章主要介绍了qt实现不定数量的按钮向前向后移动展示。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

引言

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

模拟按钮移动效果

示例代码

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

第一种

思路

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

开发环境

Qt5.15.2MinGW 64bit编译器。

代码结构

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

实现代码

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

#include "widget.h"

#include <QApplication>

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 <QWidget>
#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 <QWidget>
#include <vector>
#include <QPushButton>
#include <QString>

#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<QPushButton*> m_pBtnVector;
    int m_nCurNum;
    int m_nTailNum;
    int m_nFrontNum;
    QPushButton **m_pFront;
    QPushButton **m_pTail;
};

#endif // SCROLLBUTTONWIDGET_H

scrollbuttonwidget.cpp文章来源地址https://www.toymoban.com/news/detail-859532.html

#include "scrollbuttonwidget.h"
#include <QHBoxLayout>
#include <QDebug>

ScrollButtonWidget::ScrollButtonWidget(QWidget *parent) : QWidget(parent)
{
   
    m_nCurNum = 0;
    m_nTailNum = 0;
    m_nFrontNum = 0;
    m_pTail = nullptr;
    m_pFront = nullptr;

    createButtons()

到了这里,关于qt实现不定数量的按钮向前向后移动展示的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 如何实现element UI中table操作栏更多按钮的展示与折叠?

    解决思路: ​ 直接使用elementUI文档上 Popover 弹出框组件 废话不多说,直接上代码吧 el-table :data=\\\"locationList\\\" v-loading=\\\"loading\\\" border class=\\\"table\\\" ref=\\\"multipleTable\\\" @selection-change=\\\"handleSelectionChange\\\"     el-table-column type=\\\"selection\\\" width=\\\"55\\\"/el-table-column     el-table-column v-for=\\\"(item,index) in ta

    2024年02月11日
    浏览(30)
  • flutter开发实战-实现左右来回移动的按钮引导动画效果

    flutter开发实战-实现左右来回移动的按钮引导动画效果 最近开发过程中需要实现左右来回移动的按钮引导动画效果 AnimationController用来控制一个或者多个动画的正向、反向、停止等相关动画操作。在默认情况下AnimationController是按照线性进行动画播放的。AnimationController两个监听

    2024年02月13日
    浏览(50)
  • 如何实现QT按钮闪烁

    新建一个weight application工程   在ui界面放置一个label控件 两个pushButton按钮,通过改变label样式改变他的颜色   首先在mainwindow.h中加上QTimer的头文件,然后写一个槽函数接受定时器发送的信号,创建一个私有权限的Qtimer对象,然后将两个按钮转到槽。代码实现如下; 在构造函

    2024年02月11日
    浏览(43)
  • QT 完美实现圆形按钮

    QT 版本:5.6.0 官方的按钮有些普通,如果我们想要换成自己喜欢的按钮而却无从下手,那么请继续往下阅读(皮一下)。 首先,可以在网络上搜索一下自己喜欢的按钮图形(或者可以自行绘制),我以下面的图形为例: 创建好工程,向工程中加入资源文件: 在资源文件中加

    2023年04月13日
    浏览(35)
  • QT不规则形状的按钮的实现

    Qt实现按钮的不规则样式设置,不是视觉欺骗,是真正的不规则按钮,点击按钮外面不会触发按钮的点击信号 使用如下的代码可以实现特殊形状的按钮,但是按钮还是矩形的,如果按在不规则图形的外面,但是是按钮的矩形的区域仍然可以触发按钮。 使用如下代码可以实现特

    2023年04月09日
    浏览(45)
  • QT6实现按钮双击事件

    实现思路:利用事件过滤器实现按钮双击功能,主要是通过调用installEventFilter函数和重写事件eventFilter函数实现。   1、创建项目 启动Qt Creator,在主菜单的[文件]下,打开[新建文件或项目]菜单,弹出新建文件或项目对话框,创建Qt Widgets Application 项目,在Class Information步骤中

    2024年02月12日
    浏览(44)
  • Qt Button实现按钮长按事件

    最近项目遇到一个需求,通过鼠标按钮长按一直发数据,鼠标松开立即离开。 想了一会儿大概有了几种思路(仅仅是思路,不一样可以实现) 1.重写鼠标事件,通过鼠标检测实现。 2.定时器触发实现。 3.通过某一个参数或者勾选命令实现。 QT按钮类及定时器应用 【QT】定时器

    2024年02月08日
    浏览(56)
  • QT实现按钮开关Form窗体的效果

    实现效果叙述如下: MainWindow 中的按钮实现 Form 窗体的开关, Form 窗体的 关闭 按钮禁用掉,只允许使用窗体按钮进行,且关闭 MainWindow 按钮时 Form 窗体随之关闭。 注意: 要想实现关闭 MainWindow 按钮时 Form 窗体随之关闭, Form 窗体的 close() 在 MainWindow 的析构函数中无法实现,

    2024年02月15日
    浏览(35)
  • qt 实现点击按钮显示弹窗,再次点击按钮或点击弹窗之外的区域,弹窗消失。

    LumenWidget 为主界面 setting_ 为弹窗界面 tbn_map_setting 为点击按钮 弹窗界面要先设置如下属性 第一步 主界面增加事件过滤器 第二步 将此事件过滤器加入到全部控件中 在主界面的构造函数加入以下代码 或 第三步 设置按钮点击槽函数,本文为 tbn_map_setting

    2024年02月11日
    浏览(49)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包