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…()可以作为槽函数。
📢博客主页: 主页
📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
📢本文由 梦回阑珊 原创,首发于 CSDN,转载注明出处🙉
📢代码改变世界,你来改变代码!✨