标签: qtableview

Qt:点击一下即开始编辑单元格

默认情况下,QTableView双击后开始编辑单元格.如何改变这种行为.我需要它在一次点击后开始编辑.

我已将组合框委托设置为单元格.单击单元格时,它只选择它.双击单元格时,QComboBox编辑器已激活但未展开.我希望它只需点击一下就可以扩展,就像我添加QComboBoxsetCellWidget功能一样QTableWidget.我使用model-view-delegate需要相同的效果.

c++ qt delegates qtableview model-view

17
推荐指数
2
解决办法
1万
查看次数

PySide + QTableView示例

有人能指出我在PySide中的一个简单的QTableView示例吗?

我找到了QTableView文档,但不幸的是他们没有给出一个例子,我对PySide很新,所以我甚至不知道如何开始.(我对Java Swing中的JTable非常熟悉,所以我知道如何使用表模型.)

python qtableview pyside

17
推荐指数
2
解决办法
2万
查看次数

QTableView - 用户通过点击选择行时发送的信号是什么?

当用户QTableView通过鼠标选择行(单选模型)时是否有信号发出?

qt qtableview

16
推荐指数
1
解决办法
1万
查看次数

Qt QTableView如何只有一个复选框列

我们正在使用QTableViewQt 4.6.3,并且需要一个在每个单元格中只有一个复选框的列.我们使用自定义子类QAbstractTableModel作为模型QTableView.现在,我们通过设置Qt::ItemIsUserCheckable标志有一个复选框.但我们无法弄清楚如何摆脱复选框旁边的空白文本框!

我们怎样才能使列只有一个复选框,没有别的?

qt qt4 qtableview qabstracttablemodel

16
推荐指数
2
解决办法
2万
查看次数

Qt/C++:在QTableView中的某个单元格中获取数据

我正试图将文本放在某个单元格中QTableView.例如:

QString codestring = "*" + ui->tblInventory->indexAt(QPoint(0,2)).data().toString() + "*";
Run Code Online (Sandbox Code Playgroud)

这应该在我的第0列第2行的单元格中获取文本QTableView.问题是,这不是它在做什么!不管争论我通入QPoint()indexAt(),我会在小区0,0中的文本.我不知道为什么这是......任何帮助?谢谢!

[编辑]
我也试过这个:

QString codestring = "*" + ui->tblInventory->model()->data(ui->tblInventory->indexAt(QPoint(0,2))).toString() + "*";
Run Code Online (Sandbox Code Playgroud)

[编辑2]试图找出发生了什么,我把这行代码:

qDebug()<< ui->tblInventory->indexAt(QPoint(2,2)).row() << " and " <<  ui->tblInventory->indexAt(QPoint(2,2)).column();
Run Code Online (Sandbox Code Playgroud)

它应该得到QModelIndexat单元格2,2并输出它的行和它的列,当然应该是2和2.但是,我得到0和0!所以看起来这可能是一个问题QTableView::indexAt(),无论是我的用法还是某种bug.任何人都能解释一下吗?

c++ qt qtableview

16
推荐指数
2
解决办法
3万
查看次数

在QTableView中选择行,复制到QClipboard

我有一个SQLite-Database,我把它做成了一个QSqlTableModel.为了显示数据库,我将该模型放入了QTableView.

现在我想创建一个方法,将选定的行(或整行)复制到QClipboard.之后我想将它插入我的OpenOffice.Calc-Document.

但我不知道如何处理SelectedSIGNAL QModelIndex以及如何将其放入剪贴板.

c++ clipboard qt qt4 qtableview

15
推荐指数
3
解决办法
3万
查看次数

如何按列对QTableView进行排序?

我正在使用它QTableView来显示QAbstractTableModel:

#include <QtGui/QApplication>
#include <QAbstractTableModel>
#include <QTableView>

class TestModel : public QAbstractTableModel
{
public:
    int rowCount(const QModelIndex &parent = QModelIndex()) const
    {
        return 2;
    }
    int columnCount(const QModelIndex &parent = QModelIndex()) const
    {
        return 2;
    }
    QVariant data(const QModelIndex &index, int role) const
    {
        switch (role)
        {
        case Qt::DisplayRole:
        {
            return 4 - index.row() + index.column();
        }
        }
        return QVariant();
    }
};

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    QTableView table;
    TestModel model;
    table.setModel(&model);
    table.setSortingEnabled(true);
    table.sortByColumn(0, …
Run Code Online (Sandbox Code Playgroud)

c++ qt qtableview

14
推荐指数
2
解决办法
3万
查看次数

Qt hide column in QTableView

I want to hide the ID column in the QtableView and i can't do that on my implementation. Can anyone help me?

void MainWindow::on_actionClear_Search_triggered()
{
model = new QStandardItemModel(cars.size(),6,this);
//create header
createHeader(model);
//set data to the table view
populate(cars);

ui->tableView->setColumnHidden(6,true);
ui->tableView->setModel(model);


}

void MainWindow::createHeader(QStandardItemModel *model){


model->setHorizontalHeaderItem(0,new QStandardItem("Car"));
model->setHorizontalHeaderItem(1, new QStandardItem("Type"));
model->setHorizontalHeaderItem(2, new QStandardItem("Mileage"));
model->setHorizontalHeaderItem(3, new QStandardItem("Year"));
model->setHorizontalHeaderItem(4, new QStandardItem("Is registered"));
model->setHorizontalHeaderItem(5, new QStandardItem("ID"));
}

void MainWindow::populate(const QList<Vehicle> &vehicles)
{
int j = 0;
QList<Vehicle>::ConstIterator iter;
for( iter= vehicles.begin(); iter != …
Run Code Online (Sandbox Code Playgroud)

c++ qt qtableview

14
推荐指数
1
解决办法
2万
查看次数

如何在QAbstractTableModel中设置数据

我需要用Qt实现一个表.

我相信我会使用这个模型使用QTableView来起诉QAbstractTableModel.

我知道我必须编辑模型的rowCount(),columnCount()和data()函数.

但是,我不明白如何在模型中精确设置数据,以便data()函数可以检索它.

为此目的提供了setData()函数吗?我已经看到它需要EditRole作为其参数,我不想要,因为我不希望我的表可编辑.

那么,如何使用data()函数在模型中"设置"数据,或者让模型获得数据?

另外,如何调用data()函数,即谁调用它以及需要调用它的位置?

请帮我解决一下这个.

谢谢.

qt qtableview qabstracttablemodel

13
推荐指数
2
解决办法
2万
查看次数

Qt为QTableView使用自定义QItemDelegate

我按照Qt提供的Spin Box Delegate教程,尝试实现自己的QItemDelegate.它将用于指定a QComboBox来表示QTableView单元格中的数据,但它不起作用.

在此输入图像描述

我最大的问题是我不知道什么时候QItemDelegate会被利用.

  • 何时itemModel->setData()使用或何时使用itemModel->setItem().我怀疑setItem()是因为我重新实现了QItemDelegate(强调"项目"),但教程使用setData()并且它工作正常.

  • 我知道,如果指定QItemDelegate不起作用,它使用默认值,但我现在怎么说我指定的那个不起作用?

  • 什么时候我应该怀疑QTableView使用我的代表.我想指定每个单元格使用哪些代理.这是可能的还是QTableView唯一使用一个代表?

  • 如何将我指定的项目来填充QComboBox一旦获得通过所显示的QTableView

QItemDelegate在这里实现:

  • 我尝试添加要假设使用的单元格的部分QComboBox位于mainwindow.cpp中的注释"Enabled"下面.

qcomboboxitemdelegate.h

#ifndef QCOMBOBOXITEMDELEGATE_H
#define QCOMBOBOXITEMDELEGATE_H

#include <QItemDelegate>
#include <QComboBox>

class QComboBoxItemDelegate : public QItemDelegate
{
    Q_OBJECT

public: 

    explicit QComboBoxItemDelegate(QObject *parent = 0);

    QWidget* createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index);
    void setEditorData(QWidget *editor, const QModelIndex &index);
    void …
Run Code Online (Sandbox Code Playgroud)

c++ qt qtableview qitemdelegate qcombobox

13
推荐指数
1
解决办法
3万
查看次数