Qt之MVC使用

1、QTableView

#if 0
    QStandardItemModel *model = new QStandardItemModel;
    model->setColumnCount(5);
    model->setRowCount(3);
#else
    QStandardItemModel *model = new QStandardItemModel(3, 5); //指定表格的行列
#endif

    QStringList Hlabels;
    Hlabels << "id" << "name" << "age" << "math" << "eng";
    model->setHorizontalHeaderLabels(Hlabels);   //設置行表頭

    QStringList Vlabels;
    Vlabels << "col1" << "col2" << "col3";
    model->setVerticalHeaderLabels(Vlabels);    //設置列表頭

    for ( int i = 0; i < model->rowCount(); i++ ) {
        for ( int j = 0; j < model->columnCount(); j++ ) {
            QStandardItem *item = new QStandardItem;
            item->setData(QVariant(i), Qt::EditRole);   //表明以數字形式存儲
            model->setItem(i, j, item);
            model->item(i, j)->setTextAlignment(Qt::AlignCenter);   //設置居中
            model->item(i, j)->setForeground(Qt::red);  //設置單元格文本顏色

            QFont font;
            font.setFamily("Times");
            font.setPointSize(12);
            font.setBold(true); //加粗
            font.setItalic(true);   //斜體
            font.setUnderline(true);    //下劃線
            model->item(i, j)->setFont(font);   //設置字體

            model->verticalHeaderItem(i)->setFont(font);    //設置表頭字體
            model->horizontalHeaderItem(j)->setFont(font);
            model->verticalHeaderItem(i)->setForeground(Qt::red);   //設置表頭字體顏色
            model->horizontalHeaderItem(j)->setForeground(Qt::red);
        }
    }

    Qt::ItemFlags flag = model->item(1, 2)->flags();
    model->item(1, 2)->setFlags(flag & ~Qt::ItemIsEditable);    //設置某一單元格不可編輯
    model->sort(3, Qt::DescendingOrder);    //按第四列降序


    QTableView *tableView = new QTableView(this);
//    tableView->setEditTriggers(QAbstractItemView::NoEditTriggers);  //設置不可編輯
//    tableView->setSelectionBehavior(QAbstractItemView::SelectRows); //選中一行
//    tableView->horizontalHeader()->setHidden(true); //隱藏列表頭
//    tableView->verticalHeader()->setHidden(true);   //隱藏行表頭
//    tableView->setSortingEnabled(true);     //設置可排序

    //如果在tableView中使用右鍵菜單,需啓用該屬性
    tableView->setContextMenuPolicy(Qt::CustomContextMenu);

    tableView->setModel(model);

    setCentralWidget(tableView);
    resize(550, 300);





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章