qt调试过程中list怎么手动赋值

qt调试过程中list怎么手动赋值,第1张

在Qt调试过程中,如果需要手动给一个list赋值,可以按照以下步骤进行 *** 作:

1. 在代码中定义一个list,例如:QList<int>myList

2. 在需要赋值的地方,使用append()函数向list中添加元素,例如:myList.append(1)myList.append(2)myList.append(3)

3. 如果需要在list的指定位置插入元素,可以使用insert()函数,例如:myList.insert(1, 4)// 在第二个位置插入元素4

4. 如果需要修改list中某个元素的值,可以使用下标 *** 作符[],例如:myList[0] = 0// 将第一个元素的值修改为0

5. 如果需要删除list中某个元素,可以使用removeAt()函数,例如:myList.removeAt(1)// 删除第二个元素

6. 如果需要清空list中所有元素,可以使用clear()函数,例如:myList.clear()

需要注意的是,如果在调试过程中手动赋值,可能会影响程序的运行结果,因此建议在调试完成后将手动赋值的代码删除或注释掉。

往QListView中添加条目需借助QAbstractListModel:

如:

MainWindow::MainWindow(QWidget *parent) :

QMainWindow(parent),

ui(new Ui::MainWindow)

{

ui->setupUi(this)

QStringListModel* slm = new QStringListModel(this)

QStringList* sl = new QStringList()

sl->append("asdfsadfsa")

sl->append("asdfsadfsa")

sl->append("asdfsadfsa")

slm->setStringList(*sl)

ui->listView->setModel(slm)

delete sl

}

而在QListWidget中添加条目可以直接additem

如:

QListWidget list

list.setViewMode(QListWidget::IconMode )

list.setResizeMode(QListWidget::Adjust)

list.setMovement(QListWidget::Static)

for(int i =0i <100 i ++){

QListWidgetItem *item = new QListWidgetItem(&list)

QStyle::StandardPixmap sp = (QStyle::StandardPixmap)(i % 57)

item->setData(Qt::DecorationRole, qApp->style()->standardPixmap(sp).scaled(QSize(16,16), Qt::KeepAspectRatio, Qt::SmoothTransformation) )

item->setData(Qt::DisplayRole,QObject::tr("Item %1").arg(i))

}

我们可以通过信号和槽的方式对列表控件的选项进行响应,例如

connect(list, SIGNAL(currentTextChanged(QString)), this, SLOT(setText(QString)))

总之,QListWidget是继承QListView,QListView是基于model的,需要自己来建模(例如建立QStringListModel、QSqlTableModel等),保存数据,这样就大大降低了数据冗余,提高了程序的效率,但是需要我们对数据建模有一定了解,初学者就先不要考虑了,而QListWidget是一个升级版本的QListView,它已经自己为我们建立了一个数据存储模型(QListWidgetItem), *** 作方便,直接调用addItem即可添加项目(ICON,文字)。

使用QDataStream需要重载一下<<和>> *** 作符,例如:

inline QDataStream& operator<<(QDataStream& out, const Player& player)

{

    out << player.number

    out << player.firstName

    out << player.lastName

    return out

}

inline QDataStream& operator>>(QDataStream& in, Player& player)

{

    in >> player.number

    in >> player.firstName

    in >> player.lastName

    return in

}

参考资料:请百度“如何在Qt中使用自定义数据类型”


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/7980336.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-12
下一篇 2023-04-12

发表评论

登录后才能评论

评论列表(0条)

保存