• 10384阅读
  • 4回复

大家注意过setItemDelegateForColumn这个函数没有? [复制链接]

上一主题 下一主题
离线realequ
 

只看楼主 倒序阅读 楼主  发表于: 2007-05-25
— 本帖被 XChinux 执行加亮操作(2008-07-19) —
在4.1以前QTableView类中只有setItemDelegate这个函数
4.2以后,出现了setItemDelegateForColumn(setItemDelegateForRow)这两个函数。
但是,我在使用的时候,发现这两个函数是没有起作用。
有使用过这两个函数的没有?
给谈谈经验吧。
[ 此贴被XChinux在2008-07-19 19:45重新编辑 ]
离线realequ

只看该作者 1楼 发表于: 2007-05-25
这里也发现这个问题了。不知道是不是函数真的有问题。

http://trolltech.com/developer/task-tracker/index_html?id=132870+&method=entry

132870 - setItemDelegateForColumn does not work
DescriptionsetItemDelegateForColumn and tableView.setItemDelegateForRow does not work.

Reproducible with the qspinbboxdelegate example and replacing the main function with:
int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    QStandardItemModel model(4, 2);
    QTableView tableView;
    tableView.setModel(&model);
    SpinBoxDelegate delegate;

    //does not set a spin box delegate for colum or row
    tableView.setItemDelegateForColumn(2,&delegate);
    tableView.setItemDelegateForRow(2,&delegate);
    //this does work as expected
    //  tableView.setItemDelegate(&delegate);

    tableView.setWindowTitle(QObject::tr("Spin Box Delegate"));
    tableView.show();
    return app.exec();
}
离线jasmine007
只看该作者 2楼 发表于: 2010-07-26
用是用过这个
但是我用的很简单
实现的功能是在table中的某一列都是下拉后是 日期和时间的组合对话框
table->setItemDelegateForColumn(3,&dateDelegate);
table->setItemDelegateForColumn(4,&dateDelegate);
表示第三列和第四列为该对话框
离线jasmine007
只看该作者 3楼 发表于: 2010-07-26
但是不知道是不是我用的不好
它只能调节日期的数据  并没有时间的
离线hailler

只看该作者 4楼 发表于: 2017-10-29
因为我在tableview里面只用了一个delegate ,所有用了一个耍赖的办法,实现了在只读行里面,判断改行为只读,不可复制的效果。
  
QModelIndex index=tableview->currentIndex();
QAbstractItemDelegate *itemdelegate= tableview->itemDelegateForRow(index.row());
   if(itemdelegate)
       return;
快速回复
限100 字节
 
上一个 下一个