首页 > 其他 > 详细

Qt Gui 第十章

时间:2020-02-24 17:27:31      阅读:69      评论:0      收藏:0      [点我收藏+]

一、QListWidget、QTableWidget和QTreeWidget

QTableWidget的item默认是可以编辑,其他两个的item默认是不可编辑。如果要将QTableWidget设置成不可编辑,可以使用

tableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers);

则tablewidget的所有item都是不可编辑的;

QListWidget和QTreeWidget默认是不可编辑的,如果想要将item变成可以编辑的,可以简单地将item设置成可以编辑的,如下所示

        item = new QTreeWidgetItem(parent);
        item->setFlags(Qt::ItemIsEditable|item->flags());

则整个的该item是可以编辑的。如果只是想某一列可以编辑,其中一种方法是使用信号和槽。双击可编辑的方式;

    treeWidget = new QTreeWidget;
    treeWidget->setColumnCount(2);
        。
        。
        。
    connect(treeWidget, SIGNAL(itemDoubleClicked(QTreeWidgetItem*,int)), this, SLOT(editFileFilter(QTreeWidgetItem*,int)));


// slot
void SettingsViewer::editFileFilter(QTreeWidgetItem *item, int column)
{
    if (column == 0)
        item->setFlags(Qt::ItemIsEditable | item->flags());
    else
        item->setFlags(item->flags() & ~(Qt::ItemIsEditable) );
}

如上所示自己编写一个slot,当双击的时候触发设置标记

 

 

 

 

 

 

 

 

 

 

 

问题及解决:

在重写QDialog的done函数的时候,忘记在函数的最后调用父类的done函数,导致窗口无法关闭;只能通过杀死进程的方式;QDialog::done(result);

 

 

 

Qt Gui 第十章

原文:https://www.cnblogs.com/czwlinux/p/12357363.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!