当前位置: 首页 > news >正文

layui做的网站it教育培训机构排名

layui做的网站,it教育培训机构排名,wordpress中的网易云,执法局网站建设目的在 Qt 中,QTableView 和 QTableWidget 都可以用来实现数据的搜索和显示,但它们的适用场景和实现方式有所不同: QTableView 适用场景:QTableView 适用于更复杂的场景,尤其是当需要处理大量数据或需要高度定制化的表格时…

在 Qt 中,QTableViewQTableWidget 都可以用来实现数据的搜索和显示,但它们的适用场景和实现方式有所不同:

QTableView

  1. 适用场景QTableView 适用于更复杂的场景,尤其是当需要处理大量数据或需要高度定制化的表格时。它是基于模型/视图(Model/View)架构的,这意味着你可以将任何实现了 QAbstractItemModel 接口的模型作为数据源。

  2. 实现搜索显示

    • 你可以通过设置一个过滤器模型(例如,QSortFilterProxyModel)来实现搜索功能。
    • 过滤器模型可以放置在实际数据模型和 QTableView 之间。
    • 当用户在搜索框中输入文本时,你可以设置过滤器模型的过滤条件,这样 QTableView 就只显示匹配的行。

QTableWidget

  1. 适用场景QTableWidgetQTableView 的一个子类,提供了一个基于项目的接口,适用于更简单的用例,如处理不大的数据集或不需要自定义模型的场景。

  2. 实现搜索显示

    • QTableWidget 没有内置的过滤支持,但可以手动实现搜索功能。
    • 实现搜索时,需要遍历所有的行和列,检查每个项目(QTableWidgetItem)是否符合搜索条件。
    • 符合条件的行可以保持可见,不符合条件的行可以通过隐藏来实现过滤效果。

总结

  • 如果需要处理的数据量较大,或者需要高度定制化的表格(例如,不同类型的数据,复杂的渲染逻辑等),QTableView 配合自定义模型和过滤器模型是更合适的选择。
  • 如果你的需求相对简单,数据量不大,QTableWidget 通过手动过滤可能就足够了。

在任何情况下,实现搜索功能通常涉及到监听搜索框的输入变化(例如使用 QLineEdit),然后根据输入的内容更新表格的显示。在 QTableView 的情况下,这通常意味着设置过滤器模型的过滤规则;而在 QTableWidget 的情况下,则可能需要遍历表格项并手动隐藏或显示行。

实现

以下是分别使用 QTableViewQTableWidget 实现简单搜索功能的示例代码。

1. QTableView 示例

首先,使用 QTableView 配合 QSortFilterProxyModel 实现搜索功能。假设我们有一个简单的模型,例如一个字符串列表。

#include <QtWidgets>
#include <QSortFilterProxyModel>int main(int argc, char *argv[]) {QApplication app(argc, argv);// 创建数据模型QStringListModel model;model.setStringList(QStringList() << "Apple" << "Banana" << "Cherry" << "Date");// 创建过滤器模型并设置数据模型QSortFilterProxyModel proxyModel;proxyModel.setSourceModel(&model);// 创建视图和搜索框QLineEdit searchBox;QTableView tableView;// 设置模型tableView.setModel(&proxyModel);// 搜索框过滤逻辑QObject::connect(&searchBox, &QLineEdit::textChanged, [&](const QString &text){proxyModel.setFilterRegExp(QRegExp(text, Qt::CaseInsensitive, QRegExp::FixedString));});// 窗口布局QVBoxLayout *layout = new QVBoxLayout;layout->addWidget(&searchBox);layout->addWidget(&tableView);// 显示窗口QWidget window;window.setLayout(layout);window.show();return app.exec();
}

在这个示例中,我们使用 QStringListModel 作为基础数据模型,并通过 QSortFilterProxyModel 对数据进行过滤。用户在 QLineEdit 中输入文本时,会触发过滤逻辑,更新 QTableView 中显示的数据。

2. QTableWidget 示例

对于 QTableWidget,我们需要手动实现搜索功能,通常是遍历所有行,根据搜索条件显示或隐藏行。

#include <QtWidgets>int main(int argc, char *argv[]) {QApplication app(argc, argv);QLineEdit searchBox;QTableWidget tableWidget(4, 1); // 4行1列QStringList list = QStringList() << "Apple" << "Banana" << "Cherry" << "Date";for (int i = 0; i < list.size(); ++i) {QTableWidgetItem *item = new QTableWidgetItem(list.at(i));tableWidget.setItem(i, 0, item);}QObject::connect(&searchBox, &QLineEdit::textChanged, [&](const QString &text){for (int i = 0; i < tableWidget.rowCount(); ++i) {bool match = tableWidget.item(i, 0)->text().contains(text, Qt::CaseInsensitive);tableWidget.setRowHidden(i, !match);}});QVBoxLayout *layout = new QVBoxLayout;layout->addWidget(&searchBox);layout->addWidget(&tableWidget);QWidget window;window.setLayout(layout);window.show();return app.exec();
}

在这个例子中,使用 QTableWidget 创建了一个简单的表格,并使用 QLineEdit 作为搜索框。当用户在搜索框中输入时,我们遍历表格的每一行,根据用户的输入来决定是否隐藏该行。

这两个例子都展示了如何结合 Qt 控件实现搜索功能,但请注意,这些代码只是简单的示例,可能需要根据具体需求进行调整和优化。

http://www.jinmujx.cn/news/113579.html

相关文章:

  • 国内flex做的网站国内真正的永久免费砖石
  • 黄冈建设信息网站广告投放公司
  • 高端网站开发制作企业网站建设方案书
  • 前端做项目的网站鞍山seo优化
  • 南昌专业做网站百度统计网站
  • 郑州做网站好seo网络优化公司
  • 福州全网网站建设公司网站开发费用
  • html怎么做网站后台成都高薪seo
  • 域名自动更新中seo任务
  • 我想给别人做网站谷歌优化排名哪家强
  • 延安网站建设哪家专业站长工具友链查询
  • 卖产品怎么做网站网站推广seo是什么
  • 公司网站后台维护百度广告费用
  • 电子商务网站建设与实践考试答案性价比高seo排名优化的
  • 徐州手机网站开发公司最好的推广平台排名
  • 网站页面策划模板下载卖友情链接赚钱
  • 美工网站做兼职9 1短视频安装
  • 做一家直播卖货的网站seo网络推广课程
  • 假网站怎么做呢百度账号申诉中心
  • 电脑版网站建设专门用来查找网址的网站
  • 郑州市做网站的公司免费网页制作网站
  • 加强和改进网站建设建设方案今日头条重大消息
  • 西宁网站策划公司广告代运营
  • 一级a做爰片免费网站国产附子seo教程
  • 做响应式网站对设计图的要求网络营销推广系统
  • 2016做网站还赚钱吗营销方式
  • 网站开发的设计与实现国际最新十大新闻事件
  • 网站seo优化分析报告北京十大最靠谱it培训机构
  • 淘宝上做网站权重网络推广产品要给多少钱
  • wordpress ico图标像素百度seo课程