当用户在键盘上按住键CTRL时,如何在TreeView中的Qt中实现多选?

时间:2017-07-15 17:22:11

标签: c++ qt treeview

class MainWindow : public QMainWindow
{
    Q_OBJECT
public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

private:
    Ui::MainWindow *ui;
    MyFileSystemModel model;
};

我的文件cpp

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    model.setRootPath(QDir::rootPath());

     ui->treeView->setModel(&model);
     ui->treeView->setSelectionMode(QAbstractItemView::MultiSelection);
     ui->treeView->setDragEnabled(true);
}

我使用了MultiSelection属性,但只有当我用鼠标点击树视图中的项目时它才有效,我不想在没有按下键盘上的CTRL的情况下选择几个项目。如何检查用户是否按下CTRL然后选择项目?

1 个答案:

答案 0 :(得分:1)

QTreeview具有设置选择模式的虚拟功能。

您可以将模式设置为多选,如下所示:

QTreeView treeView;
treeView.setSelectionMode(QAbstractItemView::MultiSelection);

对于使用ctrl键的Multiselection,请使用:

QTreeView treeView;
treeView.setSelectionMode(QAbstractItemView::ExtendedSelection);

有关QTreeview here的更多信息。