zl程序教程

您现在的位置是:首页 >  工具

当前栏目

Qt之QStackedLayout

Qt
2023-09-11 14:19:16 时间

QStackedLayout可用于创建类似于QTabWidget提供的用户界面。也有建立在QStackedLayout之上的便利类QStackedWidget。


QPushButton *pButton = new QPushButton(this);

QLabel *pFirstPage= new QLabel(this);

QLabel *pSecondPage = new QLabel(this);

QLabel *pThirdPage = new QLabel(this);

m_pStackedLayout = new QStackedLayout();

pButton- setText(QStringLiteral("点击切换"));

pFirstPage- setText(QStringLiteral("一去丶二三里"));

pSecondPage- setText(QStringLiteral("青春不老,奋斗不止!"));

pThirdPage- setText(QStringLiteral("纯正开源之美,有趣、好玩、靠谱。。。"));

// 添加页面(用于切换)

m_pStackedLayout- addWidget(pFirstPage);

m_pStackedLayout- addWidget(pSecondPage);

m_pStackedLayout- addWidget(pThirdPage);

QVBoxLayout *pLayout = new QVBoxLayout();

pLayout- addWidget(pButton, 0, Qt::AlignLeft | Qt::AlignVCenter);

pLayout- addLayout(m_pStackedLayout);

pLayout- setSpacing(10);

pLayout- setContentsMargins(10, 10, 10, 10);

setLayout(pLayout);

// 连接切换按钮信号与槽

connect(pButton, QPushButton::clicked, this, MainWindow::switchPage);

// 切换页面

void MainWindow::switchPage()

 int nCount = m_pStackedLayout- count();

 int nIndex = m_pStackedLayout- currentIndex();

 // 获取下一个需要显示的页面索引

 ++nIndex;

 // 当需要显示的页面索引大于等于总页面时,切换至首页

 if (nIndex = nCount)

 nIndex = 0;

 m_pStackedLayout- setCurrentIndex(nIndex);

}

设置显示模式,StackingMode有两个值,一个是StackOne(默认-显示一个页面),一个是StackAll(显示所有页面),一般不使用。


根据currentWidget()来判断当前页面,然后通过setCurrentWidget()来设置需要显示的页面。

根据currentIndex()来判断当前页面索引,然后通过setCurrentIndex()来设置需要显示的页面。


QTimeLine 类提供了用于控制动画的时间轴,通常用于通过定期调用一个槽函数来动画一个 GUI 控件。 相信了解动画的人对帧应该不陌生,可以把一个动画想象成由很多张静态画面组成,而每一个画面就是一帧图像。每隔一定时间间隔就显示一帧图像,当该间隔较短时,人眼就感觉不出来了,觉得看到的是连续的影像。
QFuture 允许线程与一个或多个结果同步,这些结果将在稍后的时间点准备就绪,该结果可以是具有默认构造函数和拷贝构造函数的任何类型。如果一个结果在调用 result()、resultAt() 或 results() 函数时不可用,QFutur
QThreadPool 管理和循环使用单独的 QThread 对象,以帮助程序减少创建线程的成本。每个 Qt 应用程序都有一个全局 QThre
现代操作系统通常在桌面上提供一个特殊的区域,称为系统托盘或通知区域,长时间运行的应用程序可以显示图标和短消息。