• 欢迎浏览“String me = Creater\忠实的资深Linux玩家;”,请文明浏览,理性发言,有侵犯你的权益请邮件我(creater@vip.qq.com).
  • 把任何的失败都当作一次尝试,不要自卑;把所有的成功都想成是一种幸运,不要自傲。
  •    5年前 (2013-12-22)  QT |   1 条评论  32 
    文章评分 0 次,平均分 0.0

    Widgets Tutorial - Nested Layouts

    描述

    该例子演示M/V模型与QTableView的使用,以及界面布局构建。
    Model为QStandardItemModel
    View为QTableView

    Model的修改与数据添加

    1.通过如下代码来修改横向header,修改header后,QTableView会自动决定列的数目,其中使用了QStringList()来存放标题行和数据每一行的列表。

    model.setHorizontalHeaderLabels(
            QStringList() << QApplication::translate("nestedlayouts", "Name")
                          << QApplication::translate("nestedlayouts", "Office"));
    

    2.QList来存放整张表,每一行的数据以String列表形式放于QStringList()中。QStringList重载了<<符号来添加元素。

        QList<QStringList> rows = QList<QStringList>()
            << (QStringList() << "Verne Nilsen" << "123")
            << (QStringList() << "Carlos Tang" << "77")
            << (QStringList() << "Bronwyn Hawcroft" << "119")
            << (QStringList() << "Alessandro Hanssen" << "32")
            << (QStringList() << "Andrew John Bakken" << "54")
            << (QStringList() << "Vanessa Weatherley" << "85")
            << (QStringList() << "Rebecca Dickens" << "17")
            << (QStringList() << "David Bradley" << "42")
            << (QStringList() << "Knut Walters" << "25")
            << (QStringList() << "Andrea Jones" << "34");

    下面来看MODEL与VIEW的联系

    1. QTableView的每一格为一个item,每一行的数据存放在QStringList,所以需要将以行存放的String转换为items,并使用appendRow将items以行为单位添加到Model中。
    读取每一行的QStringList,将其中的Strings转换为以行为单位的items。

        foreach (QStringList row, rows) {
            QList<QStandardItem *> items;
            foreach (QString text, row)
                items.append(new QStandardItem(text));
            model.appendRow(items);
        }

    2.Model与View的关联

    resultView->setModel(&model);

    其他

    第一行隐藏了左侧的列标题
    第二行使得QTableView,仅仅显示可用的列单元。

        resultView->verticalHeader()->hide();
        resultView->horizontalHeader()->setStretchLastSection(true);
     

    除特别注明外,本站所有文章均为String me = "Creater\忠实的资深Linux玩家";原创,转载请注明出处来自http://unix8.net/home.php/2847.html

    关于

    发表评论

    暂无评论

    切换注册

    登录

    忘记密码 ?

    切换登录

    注册

    扫一扫二维码分享