《QT从基础到进阶·十一》QStackedWidget和QListWidget使用

文章介绍了QStackedWidget在页面切换中的应用,以及如何在QListWidget中添加和显示列表信息,同时提到了信号槽机制在这些控件中的运用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

QStackedWidget主要用于页面切换,如下:
在这里插入图片描述
QListWidget主要用于显示列表信息,如下:
在这里插入图片描述

QStackedWidget具体使用:

TableDemo6::TableDemo6(QWidget *parent)
	:MainWindow(parent)
{
	ui.setupli(this);
	QPushButtom*b1 =new OPushButton("b1",this);
	stack =new QStackedWidget(this);//创建页面切换窗口
	stack->resize(300,300);
	stack->move(30,30);
	QLabel*FirstPage =new QLabel(this);
	QLabel*SecondPage =new QLabel(this);
	QLabel*ThirdPage =new QLabel(this);
	FirstPage->setText(QStringLiteral("第一页"));
	SecondPage->setText(QStringLiteral("第二页"));
	ThirdPage->setText(QStringLiteral("第三页"));
	//添加页面用于切换
	stack->addWidget(FirstPage);
	stack->addWidget (SecondPage);
	stack->addWidget (ThirdPage);
	comect(b1,SIGNAL(clicked()),this,SLOT(switchPage()));
}

void TableDem6::switchPage()
{
	int count = stack->count(); //获取切换页面的数量
	int index = stack->currentIndex(); //获取当前页面索引
	index++;
	if(index >= count){
		index =0;
	}
	stack->setCurrentIndex(index);
}

QListWidget具体使用:

demo::demo(QWidget *parent):QDialog(parent)
{
	//创建一个QListWidget控件并向其中添加列表项
	list =new QListwidget();
	list->insertItem(0,tr("列表信息1"));
	list->insertItem(1,tr("列表信息2"));
	list->insertItem(2,tr("列表信息3"));
	textLabel =new QLabel(tr("页面1"));
	showLabel =new QLabel(tr("页面2"));
	aboutLabel =new QLabel(tr("页面3"));
	//创建QStackedwidget控件
	stack =new QStackedwidget();//在控件添加切换页面
	stack->addwidget(textLabel);
	stack->addWidget(showLabel);
	stack->addwidget(aboutLabel);
	//使用一个水平布局管理器对对话框进行布局
	QHBoxLayout *mainLayout =new QHBoxLayout(this);
	mainLayout->addwidget(list);
	mainLayout->addwidget(stack,0,Qt::AlignHCenter);
	//设置mainLayout的边框与对话框边缘的距离
	mainLayout->setMargin(5);
	mainLayout->setSpacing(5);
	//信号与槽的连接,实现点击不同列表信息切换对应的页面
	//此处窗口的index按插入的顺序从0依次排序,与QListWidget的条目排序一致
	connect(list,SIGNAL(currentRowChanged(int)),stack,SLOT(setCurrentIndex(int)));
}

QListWidget其他常用函数:
QListWidget第二种插入方式:list->addItem(可以是字符串或者QListWidgetItem*)
List-> addItem(QObejct::tr(“world”));
List-> addItem(new QListWidgetItem(QIcon(QObject::tr(“images/china.png”)), QObject::tr(“China”)));
List->setItemHidden(m_ModuleListWidget->item(0), true); //隐藏某行
addItem(“helloworld”); //多次执行,helloworld不是一行一行的显示出来,而是一次性显示出来
this->insertItem(0, QString::fromStdString(“helloworld”)); //多次执行是一行一行打印出来

注意:像带有页面切换的组件,比如QComboBox、QStackWidget等,一些current…Changed()可以作为信号,setCurrent…()可以作为槽函数。

在这里插入图片描述

📢博客主页: 主页
📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
📢本文由 梦回阑珊 原创,首发于 优快云,转载注明出处🙉
📢代码改变世界,你来改变代码!✨

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦回阑珊

一毛不嫌多,一分也是爱

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值