QT开发中文网

C++ QT tabwidget动态添加页面,并且每个页面里面有一个按钮,没有标题,用按钮进行翻页

首先需要在UI界面中添加一个TabWidget,然后在代码中实现动态添加页面和按钮的功能。

  1. 动态添加页面
// 创建一个新页面
QWidget *newPage = new QWidget();

// 将新页面添加到TabWidget中
ui->tabWidget->addTab(newPage, "Page");

// 设置当前选中的页面为新页面
ui->tabWidget->setCurrentWidget(newPage);
  1. 添加按钮
// 在新页面上添加一个按钮
QPushButton *button = new QPushButton("Next", newPage);

// 设置按钮的位置和大小
button->setGeometry(QRect(100, 100, 75, 23));

// 连接按钮的点击信号和槽函数进行翻页操作
connect(button, SIGNAL(clicked()), this, SLOT(nextPage()));
  1. 翻页操作
void MainWindow::nextPage()
{
    // 获取当前选中的页面的索引
    int currentIndex = ui->tabWidget->currentIndex();

    // 计算下一个页面的索引
    int nextIndex = (currentIndex + 1) % ui->tabWidget->count();

    // 切换到下一个页面
    ui->tabWidget->setCurrentIndex(nextIndex);
}

完整示例代码如下:

mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

private slots:
    void nextPage();

private:
    Ui::MainWindow *ui;
};

#endif // MAINWINDOW_H

mainwindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QPushButton>

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

    // 添加第一个页面
    QWidget *firstPage = new QWidget();
    ui->tabWidget->addTab(firstPage, "Page 1");

    // 在第一个页面上添加一个按钮
    QPushButton *button = new QPushButton("Next", firstPage);
    button->setGeometry(QRect(100, 100, 75, 23));
    connect(button, SIGNAL(clicked()), this, SLOT(nextPage()));
}

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

void MainWindow::nextPage()
{
    // 获取当前选中的页面的索引
    int currentIndex = ui->tabWidget->currentIndex();

    // 计算下一个页面的索引
    int nextIndex = (currentIndex + 1) % ui->tabWidget->count();

    // 切换到下一个页面
    ui->tabWidget->setCurrentIndex(nextIndex);
}

注意:在实际使用中,可能需要根据具体需求进行一些改动,比如设置每个页面的内容、更改按钮的样式等。

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://qt.0voice.com/?id=1082

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?