Qt学习笔记(五)堆栈窗体QStackWidget与QListWidget的配合使用(通过index切换页面)
2018-03-10 14:05
1316 查看
学习堆栈窗口的时候看的例子都是自动按每一行的顺序切换页面,这次我要自己设置每一行跳到那个页面
一、创建widget工程,添加ui文件
二、ui中拖入一个stack,一个listwidget
三、堆栈窗口每一页添加一个标签,可以右键插入页在后,使有六个页面;双击listwidget,点击图标“+”,添加行,也添加六行;
注意:stack和list的索引都是从0开始,即第一页、第一行的index都是0,之后递增。可以在右边属性栏里查看堆栈的索引。
界面如下:
代码实现://widget.h
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
namespace Ui {
class Widget;
}
class Widget : public QWidget
{
Q_OBJECT
public:
explicit Widget(QWidget *parent = 0);
~Widget();
private:
Ui::Widget *ui;
private slots:
void on_list_1_clicked(); //声明槽函数
};
#endif // WIDGET_H
以上。
一、创建widget工程,添加ui文件
二、ui中拖入一个stack,一个listwidget
三、堆栈窗口每一页添加一个标签,可以右键插入页在后,使有六个页面;双击listwidget,点击图标“+”,添加行,也添加六行;
注意:stack和list的索引都是从0开始,即第一页、第一行的index都是0,之后递增。可以在右边属性栏里查看堆栈的索引。
界面如下:
代码实现://widget.h
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
namespace Ui {
class Widget;
}
class Widget : public QWidget
{
Q_OBJECT
public:
explicit Widget(QWidget *parent = 0);
~Widget();
private:
Ui::Widget *ui;
private slots:
void on_list_1_clicked(); //声明槽函数
};
#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); /* ui->list_1->insertItem(0,tr("window1")); //此处可以自己通过代码添加行,左边为行号,右边为名称 ui->list_1->insertItem(1,tr("window2")); ui->list_1->insertItem(2,tr("window3")); ui->list_1->insertItem(3,tr("window4")); ui->list_1->insertItem(4,tr("window5")); */ QObject::connect(ui->list_1,SIGNAL(currentRowChanged(int)),ui->stacke_1,SLOT(on_list_1_clicked()));//信号与槽 } Widget::~Widget() { delete ui; } void Widget::on_list_1_clicked() { int row_list_1=ui->list_1->currentRow(); //currentRow()获取当前行号 if((row_list_1==0)||(row_list_1==3)) //点击第一或第四行切换到第一页 { ui->stacke_1->setCurrentIndex(0);//为堆栈窗体切换到当前索引 } else if((row_list_1==1)||(row_list_1==4)) { ui->stacke_1->setCurrentIndex(1); } else if((row_list_1==2)||(row_list_1==5)) { ui->stacke_1->setCurrentIndex(2); } /* else if(row_list_1==3) { ui->stacke_1->setCurrentIndex(3); } else if(row_list_1==4) { ui->stacke_1->setCurrentIndex(4); } */ }效果图:
以上。
相关文章推荐
- 通过使用GDI+和CImage类配合实现针对目标窗体的子控件进行截图
- 【转】C# 系统应用之使用Pancel控件同一窗体切换页面
- 初学Qt——菜单栏QAction+ QstackedWidget堆栈窗体实现切换分页
- C# 系统应用之使用Pancel控件同一窗体切换页面
- 使用HTML页面美化WinForm窗体
- strut1通过页面动态切换语言
- Android使用ViewFlipper做页面切换,与手势滑动切换的使用。
- Android使用ViewFlipper做页面切换,与手势滑动切换的使用
- TabNavigator中页面切换使用Move效果
- QListWidget和QListWidgetItem的简单使用
- jQuery实现切换页面布局使用介绍
- Android中使用Intent进行窗体切换,并且传值和自定义类的对象详解 .
- ios 编程: ipad 和 iphone开发中使用 UIWebView 来播放视频的时候,在页面切换时 停止播放
- ASP.NET jQuery 食谱11 (通过使用jQuery validation插件简单实现用户登录页面验证功能)
- Qt基础学习(6)------多页面切换之QTabWidget
- ASP.NET jQuery 实例11 通过使用jQuery validation插件简单实现用户登录页面验证功能
- asp.net中的窗体身份验证(完整篇之六:登出后不能通过后退回来面来的页面)
- SDI窗体中使用mscom控件通信当窗体切换时如何使其通信不中断
- [QT]QT教程之实例分析[五]堆栈窗体 (QStackedWidget)
- jQuery实现切换页面布局使用介绍