list列表 类似于父亲 向里面连续添加字符串
listwidget 类似于儿子 向里面添加字符串 按钮 新的页面
mainwindow与mainwindow之间只能切换,不能融合包含
而
widget可以插入mainwindow中
所以,如果一个窗口要插入mainwindow中,在创建的时候就要选择widget类型
在listview中创建字符串列表
//点击按钮创建字符串列表
void MainWindow::on_bt1_clicked()
{
//创建一个字符串列表
//QStringList list;在.h中定义,就可以保存原来的内容,可以不停的写
//把字符串添加到列表中
list<<"hello"<< "world";
//创建一个字符串的列表模型
QStringListModel *model = new QStringListModel();
//把字符串列表模型里面的数据设置为list
model->setStringList(list);
ui->listView->setModel(model);
}
在listwidget中创建字符
//创建字符串
void MainWindow::on_pushButton_clicked()
{
ui->listWidget->addItem("hello");
}
在listwidget中创建按钮
//创建按钮
void MainWindow::on_pushButton_2_clicked()
{
QPushButton *button = new QPushButton();
//button->show();
//将按钮与当前窗口关联起来,即组件与组件之间的关联的方法
//item是一个中转站
//item先与列表listWidget关联
QListWidgetItem *item = new QListWidgetItem;
ui->listWidget->addItem(item);
//设置按钮插入列表中
//然后item与button关联
ui->listWidget->setItemWidget(item,button);
}
在listwidget中创建窗口
提前将要插入的窗口新建好,ui界面也设置好
//创建窗口
void MainWindow::on_pushButton_3_clicked()
{
//创建窗口的前提是:首先要有窗口()
Form *w = new Form();
//创建一个随机数
QListWidgetItem *atiem = new QListWidgetItem();
//在listwidget中添加一个新的窗口atiem
ui->listWidget->addItem(atiem);
//设置窗口尺寸 让w窗口和atiem大小相同
atiem->setSizeHint(w->sizeHint());
//atiem与w关联起来
ui->listWidget->setItemWidget(atiem,w);
}
在列表中先添加一个空白的窗口 atiem,然后再把form这个窗口与列表中的空窗口关联起来。