如何与复选框操作交互? (QTableView 与 QStandardItemModel)
我正在使用 QTableView 和 QStandardItemModel 来显示一些数据。
对于每一行,有一列有一个复选框,这个复选框是通过setItem插入的,代码如下:
int rowNum;
QStandardItemModel *tableModel;
QStandardItem* __tmpItem = new QStandardItem();
__tmpItem->setCheckable(true);
__tmpItem->setCheckState(Qt::Unchecked);
tableModel->setItem(rowNum,0,__tmpItem);
现在我想与该复选框进行交互。如果用户更改复选框的状态(从选中变为未选中,反之亦然),我想对相应的数据行执行某些操作。
我知道我可以使用信号槽来捕获复选框的变化,但是由于数据行很多,我不想将每一行一一连接。
有没有办法更有效地与检查操作交互?谢谢 :)
I'm using QTableView and QStandardItemModel to show some data.
For each row, there is a column which has a check Box, this check box is inserted by setItem, the code is as follows:
int rowNum;
QStandardItemModel *tableModel;
QStandardItem* __tmpItem = new QStandardItem();
__tmpItem->setCheckable(true);
__tmpItem->setCheckState(Qt::Unchecked);
tableModel->setItem(rowNum,0,__tmpItem);
Now I want to interact with the check box. If a check box changes its state by user (from checked to unchecked or vice versa), I want to do something on the corresponding data row.
I know I can use signal-slot to catch the change of checkbox, but since there are lots of data row, I don't want to connect each row one by one.
Is there anyway to interact with the check action more effectively? Thanks :)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
我不处理 QTableView+QStandardItemModel,但下面的示例可能会对您有所帮助:
1)。表.h 文件:
2). main.cpp 文件:
祝你好运。
PS:这是原始的文本。
I don't deal with QTableView+QStandardItemModel, but may be example below will help you:
1). table.h file:
2). main.cpp file:
Good luck.
PS: here is the original text.
处理点击事件,在那里你将获得模型索引,获取数据并修改相同的
如果你要插入多个文本或图标,那么你需要为你的列表视图设置委托
handle the click event, there you will get the modelindex, get the data and modify the same
if you are going to insert more than one text or icon, then you need to set the delegate for your listview
这是 mosg 建议使用 QStyleItemDelegate 代替的示例的另一个类似想法。 http://developer.qt.nokia.com/faq/answer/how_can_i_align_the_checkboxes_in_a_view
Here is another similar idea of the example suggested by mosg using a QStyleItemDelegate instead. http://developer.qt.nokia.com/faq/answer/how_can_i_align_the_checkboxes_in_a_view
在单击的插槽和
index.data(Qt::CheckStateRole)
上使用:Use on clicked slot and
index.data(Qt::CheckStateRole)
: