到这一段,基础的窗口切分已经掌握,基础树形结构也没问题了。把树形结构放进视图左边区域,右边和右下空余。这里的要点是不再直接拉控件进去,而是自己定义一个控件,将父窗口指向spliter出来的窗口。垂直切分后的窗口,谁先用,就是谁的,没有左右索引,只有先来后到。
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
setWindowTitle(tr("OK"));
spliter = new QSplitter(Qt::Horizontal,ui->centralWidget);
treeView = new QTreeView(spliter);
QTextEdit* pLeftEdt = new QTextEdit(spliter);
pLeftEdt->setText(QObject::tr("文本窗口"));
pLeftEdt->setDisabled(false);
spliter->setStretchFactor(0, 1);//两句设置左右两列的宽度比为1:4
spliter->setStretchFactor(1, 4);
QStandardItemModel *goodsModel = new QStandardItemModel();
QStandardItem *item0 = new QStandardItem("main0");
QStandardItem *item1 = new QStandardItem("main1");
item0->setEditable(false); //不许修改
goodsModel->appendRow(item0);
goodsModel->appendRow(item1);
QStandardItem *item_1 = new QStandardItem("abc1");
QStandardItem *item_2 = new QStandardItem("abc2");
item0->appendRow(item_1);
item1->appendRow(item_2);
treeView->setModel(goodsModel);
}
运行后如下: