Qt 之tableView控件C++语言

这篇具有很好参考价值的文章主要介绍了Qt 之tableView控件C++语言。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、table view

table view是用的比较多的一个控件之一,我们在展示数据或者表格的时候经常用到。

二、使用步骤

1、添加表头

QStandardItemModel *m_pTipMdl= new QStandardItemModel();
m_pTipMdl->setColumnCount(4);
m_pTipMdl->setHeaderData(0, Qt::Horizontal, QString::fromLocal8Bit("种族名称"));
m_pTipMdl->setHeaderData(1, Qt::Horizontal, QString::fromLocal8Bit("首发英雄"));
m_pTipMdl->setHeaderData(2, Qt::Horizontal, QString::fromLocal8Bit("二发英雄"));
m_pTipMdl->setHeaderData(3, Qt::Horizontal, QString::fromLocal8Bit("三发英雄"));
ui.tableView->setModel(m_pTipMdl);

ui.tableView->horizontalHeader()->setStretchLastSection(true);
ui.tableView->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
ui.tableView->verticalHeader()->setDefaultSectionSize(55);
	//奇数偶数行不同背景色
ui.tableView->setAlternatingRowColors(true);
	//选中整行,每次只允许选中一行
ui.tableView->setSelectionBehavior(QAbstractItemView::SelectRows);
ui.tableView->setSelectionMode(QAbstractItemView::SingleSelection);
	//设置行不能编辑
ui.tableView->setSelectionMode(QAbstractItemView::SingleSelection);
ui.tableView->setEditTriggers(QAbstractItemView::NoEditTriggers);

2、添加行数据

void JxAddLineData
(const char *pstName, const char *pstOne, const char *pstTwo, const char*pstThree)
{
	int iCurLine = m_pTipMdl->rowCount();

	m_pTipMdl->setItem(iCurLine, 0, new QStandardItem(QString::fromLocal8Bit(pstName)));
	m_pTipMdl->item(iCurLine, 0)->setTextAlignment(Qt::AlignCenter);

	m_pTipMdl->setItem(iCurLine, 1, new QStandardItem(QString::fromLocal8Bit(pstOne)));
	m_pTipMdl->item(iCurLine, 1)->setTextAlignment(Qt::AlignCenter);

	m_pTipMdl->setItem(iCurLine, 2, new QStandardItem(QString::fromLocal8Bit(pstTwo)));
	m_pTipMdl->item(iCurLine, 2)->setTextAlignment(Qt::AlignCenter);
    m_pTipMdl->setItem(iCurLine, 3, new QStandardItem(QString::fromLocal8Bit(pstThree)));
	m_pTipMdl->item(iCurLine, 3)->setTextAlignment(Qt::AlignCenter);
}

//调用函数添加数据
JxAddLineData("人族", "大法师", "MK", "帕拉丁");
JxAddLineData("兽族", "剑圣", "小Y", "牛头");
JxAddLineData("精灵", "DH", "兽王", "TK");
JxAddLineData("不死", "DK", "LICH", "小黑");

3、获取双击事件

connect(ui.ctrTV,SIGNAL(doubleClicked(const QModelIndex &)), this, SLOT(SktDoubleSlots(const QModelIndex &)));

4、获取选中行内容

void SktDoubleSlots(const QModelIndex &index)
{
    QString qsName    = m_pTipMdl->data(m_pCtrModel->index(index.row(), 0)).toString();
	QString qsOne     = m_pTipMdl->data(m_pCtrModel->index(index.row(), 1)).toString();
	QString qsTwo     = m_pTipMdl->data(m_pCtrModel->index(index.row(), 2)).toString();
	QString qsThree   = m_pTipMdl->data(m_pCtrModel->index(index.row(), 3)).toString();
}

5、删除行

int iCurLine = ui.ctrTV->currentIndex().row();
QAbstractItemModel *modessl = ui.ctrTV->model();
modessl->removeRow(iCurLine);

三、总结

以上就是QT中TABLE VIEW的使用,其实还有很多属性可以设置,比如是否隐藏表头呀,是否显示网格线呀,QSS样式设置呀等等,欢迎大家留言探讨。文章来源地址https://www.toymoban.com/news/detail-535394.html

到了这里,关于Qt 之tableView控件C++语言的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • qt tableview setEditTriggers解析

    EditTrigger是QAbstractItemView Class的Public Function This property holds which actions will initiate item editing 此属性保存哪些操作将启动项编辑 This property is a selection of flags defined by EditTrigger, combined using the OR operator. The view will only initiate the editing of an item if the action performed is set in this property. 此属

    2024年02月11日
    浏览(39)
  • qt表格可修改不可修改(qt tableview修改表格内容)

    QTableWidget是QT程序中常用的显示数据表格的控件.qt表格可修改不可修改. 不管是在金融app,还是医疗机械,还是智慧农业,QTableWidget无处不在. QTableWidget的效果大概如下图: 好了,接下来就来教大家如何使用QTableWidget. 首先,它的位置控件在: 注意,不要拖错控件,很多同学容易犯的错误

    2024年02月09日
    浏览(39)
  • qt设置tableview单元大小跟随窗口变化

    设置效果过于离奇。 右侧为代码设置显示效果

    2024年02月11日
    浏览(37)
  • Qt中的 tableView 设置 二进制 十六进制 序号表头

    因为QTableView的垂直表头并不支持使用委托来自定义。 相反,可以通过将自定义的QWidget作为QHeaderView的标签来实现这一目标。 代码: 在这个示例中,自定义了BinaryHeaderView类,继承自QHeaderView, 重写了paintSection方法来绘制二进制序列。然后,将这个自定义的垂直表头应用到了

    2024年04月27日
    浏览(44)
  • 如何让qt tableView每个item中个别字用不同颜色显示?

    从上面图片可以看到,Item为红色,数字5为黑色。 要实现在一个控件实现不同颜色,目前想到的只有QTextEdit 、QLabel。有两种方法,第一种是代理,第二种是通过setIndexWidget函数实现。 QTextEdit 可以实现多种样式,字体,字号,加粗,倾斜,下划线都可以实现。 写一个自定义代

    2024年02月10日
    浏览(35)
  • JavaFx 用户界面控件3——TableView

    ableView是JavaFX提供的一个强大的控件,可以用于显示表格数据。它通过为TableView设定items属性(存储行数据的ObservableList对象)和列属性(TableColumn对象)来完成数据填充与展示。 以下是一个简单的TableView的使用示例:  1.1 TableView 选中事件 演示应用程序是一个 TableView 和一对

    2024年02月07日
    浏览(48)
  • [编程语言][C++][Qt]单独添加UI文件

    不知什么原因,Qt Creator并不是很完美很智能。当先写好界面类的头文件和源代码文件后,我们再添加用于可视化界面设计的UI文件时,会出现一些问题。 当使用CMake管理项目时,CMake会读取 CMakeLists.txt 文件来确定各种项目设置。需要把 MainWindow.ui 包含进项目时,在 CMakeLists.

    2024年02月07日
    浏览(46)
  • VS QT——ui不显示新添加成员(控件)||代码无提示

    场景1:新建项目,在ui里编辑之后,新添加的控件不显示代码提示。 场景2:成员 ui  报错 不允许使用不完整的类型  因为是刚开始学,花了两三天才找到解决办法。 网上方法: 重新编译 ui文件 + 重新扫描解决方案 (但是我这里还是无法解决) 根本原因:缺少xxx.ui 的头文

    2024年02月13日
    浏览(42)
  • IOS 类似直播的tableView 顶部透明度渐变效果

    IOS 类似直播的tableView 顶部透明度渐变效果 在工程中,需要类似直播的tableView 顶部透明度渐变效果。这个渐变的效果呢,而且不能有覆盖在背景图上的感觉。底部背景图在没有数据的情况下,没有遮罩效果。首先想到了CAGradientLayer。 CAGradientLayer主要属性 colors var colors: [AnyO

    2024年02月12日
    浏览(44)
  • Qt项目UI文件中新添加的控件在代码中不识别的问题

    ui-XXXX 在UI界面中新添加了控件,但是在代码中怎么也不出现,或者划红线 我看不少人说备份删除文件再添加,或者关闭QT再打开。。。 其实只要右键项目清除构建,然后重新构建就可以了, 这有一个大哥写的也很明白,感觉好的办法被海一样的信息淹没了,也帮他给个链接

    2024年02月16日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包