小弟刚接触QT开发,有个事件处理问题请教各位前辈,多谢
一、目标:捕获鼠标点击QTreeWidget下的QTreeWidgetItem的事件,然后进入事件处理函数,对点击不同item的事件做不同的动作
二、问题:点击界面上的item后,没有执行事件处理函数
三、代码:
1、头文件
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QTabWidget>
#include <QGroupBox>
#include <QTreeView>
#include <QTreeWidget>
#include <QVBoxLayout>
#include <QStandardItemModel>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private:
QGroupBox *box;
QVBoxLayout *vbox;
QTabWidget *tabWidget1;
QTabWidget *tabWidget2;
QTreeWidget *treeWidget;
Ui::MainWindow *ui;
private slots:
void action_main1(QTreeWidgetItem*,int);
};
2、cpp文件
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QLabel>
#include <QWidget>
#include <QPushButton>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
treeWidget = new QTreeWidget(this);
treeWidget->setColumnCount(1);
treeWidget->setGeometry(30,30,200,400);
QTreeWidgetItem *tree_item1 = new QTreeWidgetItem(treeWidget,QStringList(QString("111111")));
connect(treeWidget,SIGNAL(itemClicked(QTreeWidgetItem*,int)),this,SLOT(action_main1(QTreeWidgetItem*,int)));
......
}
void MainWindow::action_main1(QTreeWidgetItem*,int)
{
tabWidget1->hide();
tabWidget2->show();
}