QTableView

QStandardItemModel,基于项的模型类,每一项都是一个QStandardItem对象

QItemSelectionModel选择模型,跟踪视图组件的单元格选择状态。

1. 设置中心部件(Central Widget)

setCentralWidget(ui->splitter);

Qt中的主窗口通常由几个部分组成,其中一个重要的部分是中心部件,它占据主窗口的中心区域。这个中心部件可以是任何继承自QWidget的对象,比如QSplitterQTextEditQTableView等。

2.样式设置

设置表格的线属性

this->setShowGrid(false); // 隐藏网格线
this->setGridStyle(Qt::DotLine); // 线的样式
this->setFocusPolicy(Qt::NoFocus); // 取消Item选中后的虚线边框
ui->tableView->setAlternatingRowColors(true);//设置换行颜色变化
	ui.wait_check_field_table_->setColumnCount(2);
	ui.wait_check_field_table_->setHorizontalHeaderLabels({ "点击查询字段","列号" });
	ui.wait_check_field_table_->horizontalHeader()->setMinimumSectionSize(100);
	ui.wait_check_field_table_->setColumnWidth(0, 200);
	ui.wait_check_field_table_->setColumnWidth(1, 80);
	ui.wait_check_field_table_->horizontalHeader()->setDefaultAlignment(Qt::AlignLeft | Qt::AlignVCenter);//表头文字左对齐
	ui.wait_check_field_table_->horizontalHeader()->setStretchLastSection(true);//最后一列拉伸
	ui.wait_check_field_table_->setAlternatingRowColors(true);//隔行换色
	ui.wait_check_field_table_->verticalHeader()->setVisible(false); //隐藏列表头
	ui.wait_check_field_table_->setShowGrid(false);//不显示格子线
	ui.wait_check_field_table_->setEditTriggers(QTableView::EditKeyPressed | QTableView::DoubleClicked);//可疑编辑
	ui.wait_check_field_table_->horizontalHeader()->setSectionsClickable(true);//设置表头可点击
	ui.wait_check_field_table_->setContextMenuPolicy(Qt::CustomContextMenu);//添加右键菜单
	ui.wait_check_field_table_->setSelectionMode(QAbstractItemView::SingleSelection);//设置选中模式
	//ui.wait_check_field_table_->setSelectionBehavior(QAbstractItemView::SelectRows);//设置选中状态

 

    //支持拖放操作   
    ui->tableView->setDragEnabled(true);
    ui->tableView->setAcceptDrops(true);
    ui->tableView->setDropIndicatorShown(true);
    //设置拖放模式为移动项目,如果不设置,则为复制项目
    ui->tableView->setDragDropMode(QAbstractItemView::InternalMove);

添加右键菜单的两种方式

ui->tableView->installEventFilter(this);

bool MainWindow::eventFilter(QObject *object, QEvent *event)
{
    if(object==ui->tableView&&event->type()==QEvent::ContextMenu){
        if(ui->tableView->currentIndex().isValid()){
            QMenu * menu = new QMenu();
            menu->addAction("添加");
            menu->addAction("删除");
            QAction * action = menu->exec(cursor().pos());    // 弹出菜单
            if(action == nullptr){
                return QWidget::eventFilter(object, event);
            }
            if(action->text()=="添加"){
                QList<QStandardItem*> list;
                list<<new QStandardItem("QQ")<<new QStandardItem("QQ")<<new QStandardItem("QQ")<<new QStandardItem("QQ");
                m_model->insertRow(m_model->rowCount(),list);
            }
            if (action->text() == "删除") {
                m_model->removeRow(ui->tableView->currentIndex().row());
            }
        }
    }
    return QWidget::eventFilter(object, event);
}
     ui->tableView->setContextMenuPolicy(Qt::CustomContextMenu);

    connect(ui->tableView,&QTableView::customContextMenuRequested,[=](const QPoint &pos){
        QMenu * menu = new QMenu();
        menu->addAction("添加");
        menu->addAction("删除");
        QAction * action = menu->exec(QCursor::pos());    // 弹出菜单
    });

相关推荐

  1. QTableView

    2024-07-18 20:26:05       19 阅读
  2. Qt QTableView模拟表格点击事件

    2024-07-18 20:26:05       39 阅读
  3. QT中使用QTableView控件

    2024-07-18 20:26:05       32 阅读
  4. 在QT中使用QTableView与数据库连接

    2024-07-18 20:26:05       35 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-18 20:26:05       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-18 20:26:05       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-18 20:26:05       58 阅读
  4. Python语言-面向对象

    2024-07-18 20:26:05       69 阅读

热门阅读

  1. crontab文件只能有一个吗

    2024-07-18 20:26:05       22 阅读
  2. Linux系统如何安装pip pip3

    2024-07-18 20:26:05       21 阅读
  3. 深入解析:conda 与 pip 使用全攻略

    2024-07-18 20:26:05       20 阅读
  4. c字符串转go字符串

    2024-07-18 20:26:05       20 阅读
  5. Maxwell同步mysql binlog日志执行的几条数据库命令

    2024-07-18 20:26:05       20 阅读
  6. Andrey‘s Tree

    2024-07-18 20:26:05       21 阅读