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…()可以作为槽函数。

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