jjzjj

QTableview

全部标签

c++ - 在 Qt 中为 QTableView 创建弹出菜单

我的程序的主UI中有一个QTableView。我想在用户右键单击表格的单元格时显示弹出菜单,并在从菜单中选择选项时采取适当的操作。我正在使用QtCreator1(Qt4.5版)。我该怎么做? 最佳答案 查看customContextMenuRequested信号获取事件,并使用QMenu对于菜单本身。使用QTableView::indexAt根据提供给信号的坐标找出单击了哪些单元格(如果有),并在单击菜单项时采取适当的操作。 关于c++-在Qt中为QTableView创建弹出菜单,我们在

c++ - 高速有效地更新 QTableView

我使用带有QItemDelegate子类的QTableView来控制表格View单元格的外观。每个单元格显示一个外部连接设备的名称和状态,一次最多可以连接100个设备。每个设备的名称和类型基本上是静态的,很少更新(可能每小时一次),但每个单元格都需要显示设备输入的实时值,我目前每50毫秒轮询一次。此值显示为由TableView提供给Delegate::paint()方法的画家绘制的基本条形图。每秒更新我的模型20次的问题是每次都重新绘制整个表格,这是非常低效的。将paint方法限制为仅绘制条形图表明大部分CPU时间专门用于在每个单元格上绘制名称、状态和关联图像,而不是图形。我需要找到一

c++ - 如何在 QTableView 中打开一个 URL

在QTableView(或QTreeView、QListView可点击URL的最佳方式是什么等...)给定一个QStandardItemModel,其中一些列包含带有URL的文本,我希望它们变得可点击,然后使用QDesktopServices::openURL()处理点击我希望有一些简单的方法来利用QLabel的textInteraction标志并将它们塞进表中。我不敢相信没有更简单的方法来处理这个问题。我真的希望我遗漏了什么。 最佳答案 您需要创建一个委托(delegate)来进行绘画。代码应如下所示:voidRenderLink

c++ - QTableView 中标题单元格中的复选框

我想要一个简单的列标题,其中带有一个复选框,用于选择/取消选择QTableView中的所有行。单击标题中的复选框会导致选择或取消选择所有行。当我想在表格单元格中添加一个复选框时,我必须只返回数据(..)中Qt::CheckStateRole的检查状态以获得所需的模型索引,如下所示。这按预期工作。QVariantMyModel::data(constQModelIndex&rIndex,intiRole)const{...if(iRole==Qt::Qt::CheckStateRole){returncheckstate;}}但是当我想在标题单元格中添加一个复选框时,上述方法不起作用。听

c++ - 如何以编程方式选择 QTableView 中的下一行

我有QTableView子类,我用它来标记和保存它的状态:connect(this,SIGNAL(clicked(constQModelIndex&)),this,SLOT(clickedRowHandler(constQModelIndex&)));voidPlayListPlayerView::clickedRowHandler(constQModelIndex&index){intiSelectedRow=index.row();QStringlink=index.model()->index(index.row(),0,index.parent()).data(Qt::User

c++ - QTableView 列宽

我正在努力在QTableView中手动设置列宽。为什么这段代码不起作用?tabb=newQTableView;tabb->resizeColumnsToContents();for(intcol=0;colsetColumnWidth(col,80);}如果我省略tabb->resizeColumnsToContents();它仍然不起作用。 最佳答案 您应该先设置模型,然后您就可以更改ColumnWidth:tabb=newQTableView;tabb->setModel(someModel);for(intcol=0;cols

c++ - 在 QTableView 中显示动画图标的最佳方式是什么?

我已经为此苦苦挣扎了一段时间,但我似乎找不到正确的方法来做到这一点。我想要的是能够使用动画图标作为我的某些项目的装饰(通常是为了表明正在对该特定项目进行某些处理)。我有一个自定义表格模型,我将其显示在QTableView中。我的第一个想法是创建一个自定义委托(delegate)来负责显示动画。当为装饰角色传递QMovie时,委托(delegate)将连接到QMovie以便在每次有新帧可用时更新显示(请参见下面的代码)。然而,在调用委托(delegate)的paint方法后,painter似乎并没有保持有效(我在调用painter的save方法时出错,可能是因为指针不再指向有效内存)。另

c++ - Qt C++ 从 QTableView 的选定行的每个单元格中获取数据

有什么方法可以从TableView中的选定行中获取数据吗?我用过QModelIndexListids=ui->tableView->selectionModel()->selectedRows();返回所选行的索引列表。我不需要索引。我需要所选行的每个单元格中的数据。 最佳答案 你可以试试这个introwidx=ui->tblView->selectionModel()->currentIndex().row();ui->txt1->setText(model->index(rowidx,0).data().toString());

c++ - 如何使用 HTML 格式和可点击的单元格制作快速的 QTableView?

我正在制作一个字典程序,它在3列中显示单词定义QTableView子类,当用户键入它们时,从QAbstractTableModel中获取数据子类。类似的东西:我想为文本添加各种格式,我正在使用QAbstractItemView::setIndexWidget添加QLabel数据进入每个单元格:WordView.h#includeclassQLabel;classWordView:publicQTableView{Q_OBJECTpublic:explicitWordView(QWidget*parent=0);voidrowsInserted(constQModelIndex&pare

c++ - QTableView - 不允许用户编辑单元格

我用QSqlTableModel创建了一个QTableView。按照标准,双击单元格将标记它们,用户可以编辑它们。我想,不允许用户这样做。他可以通过单击单个单元格来标记整行,但不能编辑该单元格。我该怎么做? 最佳答案 根据您是对所有内容进行编码还是在设计器中进行操作,设置editTriggers到QAbstractItemView::NoEditTriggersselectionBehavior到QAbstractItemView::SelectRows如果您希望用户只选择一行,可选择将selectionMode设置为QAbstra