我有一个简单的Qt应用程序,它具有一个继承QTreeWidget的mainwindow和一个类(TreeView)。子窗口小部件鼠标事件
我似乎无法为treewidget启用鼠标事件。带有工具栏和菜单栏的主窗口可以正常工作,但我无法点击treeWidget中的任何项目。
我已将QMouseEvent包含在我的课程中并实施了虚拟功能。这里举一个例子:
void TreeView::itemDoubleClicked(QTreeWidgetItem *item, int column)
{
QMessageBox::information(this, "Message", item->text(column));
}
我在这里丢失了一些明显的东西吗?
编辑: 我TreeView.h:
#include <vector>
#include <algorithm>
#include <QTreeWidget>
#include <QMouseEvent>
//ObjectCube includes
#include <Hub.h>
#include <TagSet/TagSet.h>
#include <Tag/Tag.h>
#include "tagsettree.h"
#include "tagtree.h"
using namespace ObjectCube;
class TreeView: public QTreeWidget
{
Q_OBJECT
public:
TreeView(QWidget *parent);
void buildTree(Hub *hub);
void buildEachTagSetTree(TagSetTree *parent);
void addHierarchiesToTree(QTreeWidgetItem *parent, TagSet *tagSet);
void itemDoubleClicked (QTreeWidgetItem *item, int column);
};
构造函数:
TreeView::TreeView(QWidget *parent): QTreeWidget(parent)
{
this->setHeaderLabel("Images");
this->setEnabled(true);
}
编辑:
我有固定什么@webclectic指出,但目前还没有固定的问题。
是否有可能阻止了treeWidget中的所有mouseEvent? 我可以通过键盘遍历它们,但鼠标不起作用。
编辑:
我有一个主窗口。该主窗口有一个指向控制器类的指针。控制器类拥有主窗口中使用的所有小部件的实例,包括TreeWidget。主窗口是控制器的父窗口以及其内部的所有窗口小部件。代码:
//Constructor
MainController::MainController(QWidget *parent, Hub *hub): QWidget(parent)
{
this->hub = hub;
initializeController(parent);
}
void MainController::initializeController(QWidget *main)
{
treeView = new TreeView(main);
glWidget = new GLWidget(main);
listWidget = new ListWidget(main);
rightSide = new QVBoxLayout(main);
treeView->buildTree(hub);
treeView->move(0, 55);
treeView->resize(main->frameGeometry().width() * 0.2, main->frameGeometry().height() *0.91);
glWidget->move(main->frameGeometry().width() * 0.32 ,55);
glWidget->resize(main->frameGeometry().width() * 0.67, main->frameGeometry().height() *0.91);
rightSide->addWidget(listWidget);
rightSide->setGeometry(QRect(QPoint(main->geometry().width() -20 , 55), QPoint(main->geometry().width(),main->geometry().height())));
}
吉斯利
可以提供一些更多的细节.... – shofee 2012-03-07 13:12:34
@shobi增加了我的.h文件和构造函数 – Gisli 2012-03-07 13:16:30
你看到了webclectic的答案,试试吧...... – shofee 2012-03-07 13:19:39