首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

查询使包含QTableView和QSqlTableModel的表不可编辑

,可以通过设置QAbstractItemView的属性来实现。

QAbstractItemView是Qt中用于展示和编辑表格数据的基类,QTableView是其子类,而QSqlTableModel是用于与数据库交互的模型类。

要使QTableView和QSqlTableModel的表不可编辑,可以通过以下步骤实现:

  1. 创建QSqlTableModel对象,并绑定到数据库表:
代码语言:txt
复制
QSqlTableModel* model = new QSqlTableModel();
model->setTable("tableName");
model->select();
  1. 创建QTableView对象,并设置模型为QSqlTableModel:
代码语言:txt
复制
QTableView* tableView = new QTableView();
tableView->setModel(model);
  1. 设置QTableView的编辑模式为只读:
代码语言:txt
复制
tableView->setEditTriggers(QAbstractItemView::NoEditTriggers);

通过设置setEditTriggers函数的参数为QAbstractItemView::NoEditTriggers,可以禁止对表格中的单元格进行编辑。

完整的代码示例如下:

代码语言:txt
复制
QSqlTableModel* model = new QSqlTableModel();
model->setTable("tableName");
model->select();

QTableView* tableView = new QTableView();
tableView->setModel(model);
tableView->setEditTriggers(QAbstractItemView::NoEditTriggers);

这样,包含QTableView和QSqlTableModel的表就会变为只读,无法编辑。

该方法适用于需要展示数据库表格内容,但不希望用户进行修改的场景,比如只读的数据报表、历史记录等。

推荐的腾讯云相关产品:腾讯云数据库 MySQL

腾讯云数据库 MySQL是一种高可用、可扩展的云数据库服务,适用于各种规模的应用。它提供了稳定、可靠、安全、高性能的数据库解决方案,可以满足用户对于数据存储和管理的需求。

产品介绍链接地址:腾讯云数据库 MySQL

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Qt Designer基本控件介绍——Item Views(表项视图)Item Widgets(部件)

QListWidget是继承QListView,QListView是基于model,需要自己来建模(例如建立QStringListModel、QSqlTableModel等),保存数据,这样就大大降低了数据冗余...即可添加项目(ICON,文字) 详细介绍可以看博客 “Qt入门-列表框QListWidget类” “Qt5.9中控件listWidget用法(QListWidget基本用法)” “QListWidget ...详细介绍可以看博客 “实战PyQt5: 075-树状视图QTreeView” “PyQt5高级界面控件之QTreeWidget(五)” ---- Table View : Table Widgets :具有默认模型基于项目的视图...QSqlTableModel能与QTableView绑定,但不能于QTableWidget绑定。...详细介绍可以看博客: “QTableWidget与QTableView区别” “QTableWidget / QTableView应用” ---- Column View :以模型/视图数据为基础

6.1K00
  • 使用tp框架SQL语句查询数据某字段包含某值

    有时我们需要查询某个字段是否包含某值时,通常用like进行模糊查询,但对于一些要求比较准确查询时(例如:微信公众号关键字回复匹配查询)就需要用到MySQL find_in_set()函数; 以下是用...find_in_set()函数写sq查询l语句示例: $keyword = '你好'; $sql = "select * from table_name where find_in_set('"....$keyword"',msg_keyword) and msg_active = 1"; 以下是在tp框架中使用find_in_set()函数查询示例: $keyword = '你好'; $where...数据库中存关键字要以英文“,”分隔; 2.存储数据要对分隔符进行处理,保证以英文“,”分隔关键字。...以上这篇使用tp框架SQL语句查询数据某字段包含某值就是小编分享给大家全部内容了,希望能给大家一个参考。

    7.4K31

    Python学习系列:使用pyqt5搭建简单图书管理系统(2)

    具体到每个: 1:BuyBook 这个主要内容是我们作为管理方所购买一些数据信息,其中包含书籍ID,购买时间,借出还是没有借出,以及数量....,密码应该对管理员是不可....3:用户界面操作层 用于将数据库操作数据链接到PyQt相应数据小部件,将数据操作展示在Qt界面中。这些类包括:QSqlQueryModel、QSqlTableModel等。...:封装数据库记录 QSqlRelationalTableModel:具有外键支持单个数据库编辑数据模型 QSqlResult:用于从特定SQL数据库访问数据抽象接口 QSqlTableModel...:单个数据库编辑数据模型 在实际PyQt编程中,我们很少使用驱动层类,多通过API层来建立数据库连接、进行数据库查询等,然后通过用户界面操作层类将数据结果显示在图形界面中。

    1.9K30

    C++ Qt开发:SqlTableModel映射组件应用

    在多数情况下我们需要使用SQL方法来维护数据库,但此方式相对较为繁琐对于表格等数据编辑非常不友好,在Qt中提供了QSqlTableModel模型类,它为开发者提供了一种直观方式来与数据库表格进行交互...在接下来章节中,我们将学习如何配置 QSqlTableModel、与数据库进行交互、实现数据动态显示编辑,首先读者应绘制好UI界面,本次案例界面稍显复杂,读者可自行完成如下案例绘制; 以下是 QSqlTableModel...setTable(const QString &tableName) 设置要操作数据库名。 select() 执行查询操作,从数据库中获取数据。...接着通过新建一个QSqlTableModel类,并调用setTable来打开一个数据,设置编辑策略为 OnManualSubmit,即手动提交修改。...,用户可以通过表格展示方式查看编辑 "Student" 表格中数据。

    21910

    C++ Qt开发:SqlTableModel映射组件应用

    在多数情况下我们需要使用SQL方法来维护数据库,但此方式相对较为繁琐对于表格等数据编辑非常不友好,在Qt中提供了QSqlTableModel模型类,它为开发者提供了一种直观方式来与数据库表格进行交互...在接下来章节中,我们将学习如何配置 QSqlTableModel、与数据库进行交互、实现数据动态显示编辑,首先读者应绘制好UI界面,本次案例界面稍显复杂,读者可自行完成如下案例绘制;以下是 QSqlTableModel...setEditStrategy(QSqlTableModel::EditStrategy strategy) 设置编辑策略,决定何时将修改提交到数据库。...接着通过新建一个QSqlTableModel类,并调用setTable来打开一个数据,设置编辑策略为 OnManualSubmit,即手动提交修改。...,用户可以通过表格展示方式查看编辑 "Student" 表格中数据。

    24900

    QTableView基本用法讲解,Qt表格控件使用方法

    QTableView是Qt中用来把数据集以表格形式提供给用户一个控件,它与C++Builder中DBGrid作用类似。坦白说,DBGrid使用要比QTableView更容易一些。...但QTableView在使用麻烦同时,也提供了更多灵活性。   ...:   检索处方项目成功后,把该项目显示到QTableView里,把需要编辑数量字段提供给用户输入,用户输入确认后,该项目留在列表中,然后开始下一项目检索录入。   ...实现过程如下:   录入项目保留在临时tmp中,界面上QTableView取名为tbList,与tbList关联Model取名为tb1。...检索成功后,把检索结果插入到临时中,把需要编辑字段提供给用户。

    15.1K20

    QTableView + QStandardItemModel模式显示表格冻结列(模板)

    点击上方"蓝字"关注我们01、QTableViewQTableView 是 Qt 框架中一个用于显示编辑表格数据控件。它提供了一个灵活界面,允许用户通过行列来浏览修改数据。...它是 QStandardItemModel 基本构建块,每个 QStandardItem 可以包含一个值一些附加属性,如文本、图标、状态等。...在 QTableView 中,QStandardItem 作为数据模型中基本元素,负责展示编辑表格中数据。通过操作 QStandardItem,你可以实现对表格数据增删改查等操作。...因此,在使用 QModelIndex 时,需要确保它指向是一个有效节点。3. QModelIndex 是不可,即不能直接修改它属性。...setModel(model); frozenTableView = new QTableView(this); init(); // 将两个视图标题滚动条连接在一起

    11810

    Qt ModelView教程——设置表头与可编辑Table

    如果对你有帮助,可以点个在看,让它可以帮助到更多老铁~ 这篇文章是在高铁上写。 这次继续大家分享Qt Model/View一些使用方法。Qt帮助文档整体目录如下: ?...一、设置Table列表头 只需在只读基础上加上 QVariant headerData(int section, Qt::Orientation orientation, int role)...二、可编辑Table实现 为了让之前只读具备可编辑功能,需要重新实现两个虚方法setData() and flags()。...使用一个QString类型二维数组来存储数据,并且当编辑完单元格内容时,向window title 发送文本信息,使得window title 随着单元格内容改变而改变。...signals: void editCompleted(const QString &); }; 每次编辑单元格时候setData()就会被调用。

    3.7K10

    CC++ Qt 数据库与SqlTableModel组件应用

    SqlTableModel 组件可以将数据库中特定字段动态显示在TableView表格组件中,通常设置QSqlTableModel变量作为数据模型后就可以显示数据内容,界面组件中则通过QDataWidgetMapper...DB.open()) { return; } // 打开数据 tabModel=new QSqlTableModel(this,DB);...// 数据 tabModel->setTable("Student"); // 设置数据 tabModel->setEditStrategy...执行获取name/mobile字段,并放入映射数据集中 lineEdit编辑框中 void MainWindow::on_currentRowChanged(const QModelIndex ¤t...,并在选中行直接编辑即可实现向数据库中插入数据,而有时我们不希望通过在原上操作,而是通过新建窗体并在窗体中完成增删改,此时就需要使用Dialog窗体并配合原生SQL语句来实现对记录操作了。

    91810

    CC++ Qt 数据库与SqlTableModel组件应用

    SqlTableModel 组件可以将数据库中特定字段动态显示在TableView表格组件中,通常设置QSqlTableModel变量作为数据模型后就可以显示数据内容,界面组件中则通过QDataWidgetMapper...DB.open()) { return; } // 打开数据 tabModel=new QSqlTableModel(this,DB);...// 数据 tabModel->setTable("Student"); // 设置数据 tabModel->setEditStrategy...执行获取name/mobile字段,并放入映射数据集中 lineEdit编辑框中void MainWindow::on_currentRowChanged(const QModelIndex ¤t...,并在选中行直接编辑即可实现向数据库中插入数据,而有时我们不希望通过在原上操作,而是通过新建窗体并在窗体中完成增删改,此时就需要使用Dialog窗体并配合原生SQL语句来实现对记录操作了。

    86530

    真正干货!100多条Qt开发经验,解决你开发各种问题!

    比如qssANSI编码、嵌套窗口中主窗口无法接收鼠标移动事件等,又比如我用qss设置窗口样式,但是项目每次重新构建以后,样式就会不生效等问题,也花了自己不少时间去解决,所以在这里转发大神经验,留作以后参考逐条研究...QSqlTableModelrowCount方法,默认最大返回256,如果超过256,可以将表格拉到底部,会自动加载剩余,每次最大加载256条数据,如果需要打印或者导出数据,记得最好采用sql语句去查询...,而不是使用QSqlTableModelrowCount方法。...非常不建议tr中包含中文,尽管现在新版Qt支持中文到其他语言翻译,但是很不规范,也不知道TMD是谁教,tr本意是包含英文,然后翻译到其他语言比如中文,现在大量初学者滥用tr,如果没有翻译需求...原文在书212页,这样描述:Qt对所有的容器许多其他类都使用隐含共享,隐含共享是Qt对不希望修改数据决不进行复制保证,为了使隐含共享作用发挥得最好,可以采用两个新编程习惯。

    4K11

    用Qt写软件系列三:一个简单系统工具之界面美化

    窗口内容布局       由上面的规划图可以看出,内容布局由三个部分组成上方(top layout)编辑框、两个按钮,中间及下面的两个QTableView。...那么就先看看上方top layout怎么个实现。这倒简单,一个行编辑框(QLineEdit)、两个下推按钮(QPushButton),用水平布局管理器一拉就完成了。那么如何进行美化了? ...而中间部分两个QTableView是重点。 ? ? QTableView美化       QTableView分成表头(Header)体(body)两部分。...QTableView上下文菜单,则需要重写contextMenuEvent()实现。上下文菜单项背景色仍然可以用QSS进行控制。另外,QTableView还有一个单元格对齐问题。...总之,QSS2D绘图用好了,界面的效果也会慢慢炫起来。如果自己能够做出精美的界面素材,那么更加是锦上添花了。 遇到问题       wchar_t问题。

    5.8K70

    25.QT-模型视图

    模型视图设计模式核心思想 使模型(数据)与视图(显示)相分离 模型只需要对外提供标准接口存取数据,无需数据如何显示 视图只需要自定义数据显示方式,无需数据如何组织存储 当数据发生改变时,会通过信号通知视图...value, int role = Qt::EditRole ); //通过索引值设置模型数据 其中data ()setData...DecorationRole       1         将数据作为图标来装饰(QIcon,QPixmap) Qt::EditRole                   2          可编辑数据信息显示...设置模型数据背景色(QBrush) Qt::ForegroundRole      9         设置模型数据前景色,比如字体(QBrush) 以QTableView为例 QWidget...QTableView详细使用请参考:24.QTableView函数使用,右击菜单实现 未完待续,接下来开始学习模型视图中委托

    1.5K20
    领券