在继承QAbstractTableModel时,获取给定行和列的QModelIndex的正确方法是什么(例如,提供方便的方法数据(int row,int column))?
有index()和createIndex() - 他们似乎都这样做?
例:
TableModel::data(int row, int column, int role) const
{
return data(index(row, column), role);
}
Run Code Online (Sandbox Code Playgroud) 由于缺少任何其他 Qt 演示,我正在使用 Qt 小部件的SimpleTreeModel
演示为我的 QML TreeView 实现 C++ 模型。我已经定义了角色,所以 QML 可以使用它,但我无法将它们与实际模型数据连接起来。
我还发现有趣的是小部件(C++)演示工作正常,但我发现了这一点,每个 TreeItem 都存储其所有子项,而 TreeModel 只有一个TreeModel
似乎没有将数据存储为其成员变量..让我摸不着头脑。rootItem
将所有数据存储为其子项。
TreeItem 类
class TreeItem
{
public:
explicit TreeItem(const QList<QVariant> &data, TreeItem *parentItem = 0);
~TreeItem();
void appendChild(TreeItem *child);
TreeItem *child(int row);
int childCount() const;
int columnCount() const;
QVariant data(int column) const;
int row() const;
TreeItem *parentItem();
private:
QList<TreeItem*> m_childItems;
QList<QVariant> m_itemData;
TreeItem *m_parentItem;
};
Run Code Online (Sandbox Code Playgroud)
TreeModel 类
class TreeModel : public QAbstractItemModel
{
Q_OBJECT
public:
enum DisplayRoles …
Run Code Online (Sandbox Code Playgroud) 我有一个QTableView
记录很少,一行包含四列.我需要获取这4个索引值(名称,姓氏,年龄,用户名)以便将其删除SQLite
,因此我需要将这四个值放入删除查询中.我希望点击的各项指标THAT行,并取回所有4个值.我该怎么做?谢谢
如何读取和写入文本文件日期进入QTableView?
这就是我所拥有的,但我希望在将数据添加到表中时保存数据,当然可以在重新打开应用程序时将其读回.有没有我可以参考的教程?
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
model = new QStandardItemModel();
model->setRowCount(0);
ui->tableView->setModel(model);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_pushButton_clicked()
{
QStandardItem *userName = new QStandardItem(ui->lineEdit_Name->text());
QStandardItem *userNumber = new QStandardItem(ui->lineEdit_Number->text());
QList<QStandardItem*> row;
row <<userName << userNumber;
model->appendRow(row);
}
Run Code Online (Sandbox Code Playgroud)
非常感谢
编辑--------------------------------
这对我有用:
添加功能:
void MainWindow::on_pushButto_Add_clicked() {
QStandardItem *userInput = new QStandardItem(ui->lineEdit->text());
QStandardItem *userInput2= new QStandardItem(ui->lineEdit_2->text());
QList<QStandardItem*> row;
row <<userInput << userInput2;
model->appendRow(row);
}
Run Code Online (Sandbox Code Playgroud)
保存功能:
void MainWindow::on_pushButton_Save_clicked()
{
QFile file("C:/Users/UserName/Practicing/Resources_Files/someFile.bin");
if (file.open(QIODevice::WriteOnly))
{
QDataStream stream(&file);
qint32 n …
Run Code Online (Sandbox Code Playgroud) 我有128个项目的结构向量.我应该将前64个项目放在第一个QTableWidget中,剩余的64个项目放到第二个QTableWidget中.必须在我的结构向量中显示"索引"数字.那些是Id号码.我使用UI设计器设计了我的ui,我尝试在那里更改QTableWidget第一行号,但它没有用.如何初始化索引以0开头的第一个tablewidget以及索引从64开始的第二个tablewidget.请帮助guyz ...在此先感谢.
我将使用快照图像清楚地解释它.!这里我有2个QTableWidgets.每个表窗口小部件的行ID都为1.第二个小部件的行ID 不应该与1.相反,它必须是65.(因为我有128个项目,前64个项目进入第一个表格,其余64个项目应放在第二个表格中).希望大家都明白我的要求.请帮我.
qmodelindex ×5
qt ×4
qtableview ×2
c++ ×1
qml ×1
qt4 ×1
qt4.7 ×1
qt4.8 ×1
qtablewidget ×1
sqlite ×1