<强>重要函数:强>,
1。空白setCurrentIndex (int);//用下标显示当前页,,从0开始只
2. int数();//返回页面的数量只
3。空白insertWidget (int, QWidget *);//在下标为参数位置插入页只
4。空白addWidget (QWidget *);//加上页只
5。空白removeWidget (QWidget *);//删除页。
<>强信号:强>
1。空白currentChanged (int);//当前页面发生改变时,发出信号只
2。空白widgetRemoved (int);//页面被删除时,发出信号。
首先我们添加一个类,名字自定义,我这里叫MyPicture。不用Qt设计师进行拖拽,而是进行手工布的局,因为当部件的量很多或者需要自动生成的时候,手工布局显得更加灵活。
<人力资源/>以下是“MyPicture。cpp”下的代码:
# include “MyPicture.h”MyPicture: MyPicture (QWidget *父母) ,,,:,QWidget(父) { ,,,ui.setupUi(这个),,,,,//创建一个垂直布的局。 ,,,QVBoxLayout * vertLayout =, new QVBoxLayout;,,,, for (int 小姐:=,0;,小姐:& lt;, 5,, + + i) ,,,{,,,,,,,//创建一个水平布的局。 ,,,,,,,QHBoxLayout * horiLayout =, new QHBoxLayout;,,,,,,,, for (int j =, 0;, j & lt;, 5,, + + j) ,,,,,,,{ ,,,,,,,,,,,QLabel * temp =, new QLabel (“z”); ,,,,,,,,,,,临时→调整(100100年),,,,,,,,,,,,,//也添加到向量容器里去,方便调用。 ,,,,,,,,,,,这个→labelArray.push_back(临时),,,,,,,,,,,,,//把标签对象添加到水平布局中去。 ,,,,,,,,,,,horiLayout→addWidget(临时); ,,,,,,,},,,,,,,,//布局中可以添加布的局。 ,,,,,,,vertLayout→addLayout (horiLayout); ,,,},,,,//最后应用垂直布的局。 ,,,这个→setLayout (vertLayout); } MyPicture:: ~ MyPicture () { }void MyPicture:: setText (QString str) {,,,for (int 小姐:=,0;,小姐:& lt;, 25岁,,+ + i) ,,,{,,,,,,,这个→labelArray[我]→setText (str); ,,,} }12345678910111213141516171819202122232425262728293031323334353637383940<人力资源/>
以下是“MyPicture。h”的代码:
# ifndef MYPICTURE_H # define MYPICTURE_H # include & lt; QWidget> # include “ui_MyPicture.h”# include & lt; QMessageBox> # include & lt; QLabel> # include & lt; QVBoxLayout> # include & lt; QHBoxLayout> class MyPicture :, public QWidget { ,,,Q_OBJECTpublic: ,,,MyPicture (QWidget * parent =, 0); ,,,~ MyPicture (),,,,, void setText (QString);私人: ,,,Ui: MyPicture 界面; ,,,QVector<人力资源/> 然后在c.ui处,进行拖拽,进行如下布局和命名只
<人力资源/>
然后是“c。cpp”的代码:
# include “刘昀“c: c (QWidget *父母) ,,,:,QMainWindow(父) { ,,,ui.setupUi(这个); ,,,initStackedWidget(),,,,,//连接信号与槽。 ,,,连接(ui.firstButton,,信号(点击()),,,,槽(showFirstPageSlot ())); ,,,连接(ui.secondButton,,信号(点击()),,,,槽(showSecondPageSlot ())); } c:: ~ c () { }void c:: showFirstPageSlot () {,,,//设置当前显示的页面 ,,,ui.stackedWidget→setCurrentIndex (0); }void c:: showSecondPageSlot () { ,,,ui.stackedWidget→setCurrentIndex (1); }//初始化堆积页.void c: initStackedWidget () {,,,//先删除系统自动为你添加的两个页面。 ,,,ui.stackedWidget→removeWidget (ui.page); ,,,ui.stackedWidget→removeWidget (ui.page_2); ,,,MyPicture * temp =, new MyPicture; ,,,临时→setText (QString: fromLocal8Bit(“哈哈")); ,,,ui.stackedWidget→addWidget(临时); ,,,MyPicture *小姐:=,new MyPicture; ,,,我→setText (QString: fromLocal8Bit(“嘻嘻”)); null null null null null null null null null null null null null null nullQt学习:QStackedWidget和手工代码布局的程序实例