test06.h
#ifndef TEST06_H
#define TEST06_H
#include <QtWidgets/QMainWindow>
#include "ui_test06.h"
class test06 : public QMainWindow
{
Q_OBJECT
public:
test06(QWidget *parent = 0);
~test06();
private:
Ui::test06Class ui;
private:
void test06::iniTableView();
public slots:
void test06::slotRowDoubleClicked(const QModelIndex &);
};
#endif // TEST06_H
test06.cpp
#include "test06.h"
#include <QtGui/QStandardItemModel>
test06::test06(QWidget *parent)
: QMainWindow(parent)
{
ui.setupUi(this);
//初期化tableView
iniTableView();
//请问slotRowDoubleClicked为什么不能被执行
connect(ui.tableView, SIGNAL(doubleClicked(QModelIndex)), this, SLOT(slotRowDoubleClicked()));
connect(ui.pushButton, SIGNAL(clicked(bool)), this, SLOT(slotRowDoubleClicked()));
//下面这行代码可以执行,执行结果关闭当前窗口
//connect(ui.tableView, SIGNAL(doubleClicked(QModelIndex)), this, SLOT(close()));
}
void test06::slotRowDoubleClicked(const QModelIndex &)
{
qDebug("test");
}
void test06::iniTableView()
{
QStandardItemModel *model = new QStandardItemModel();
ui.tableView->setEditTriggers(QAbstractItemView::NoEditTriggers);
ui.tableView->setSelectionBehavior(QAbstractItemView::SelectRows);
ui.tableView->setSelectionMode(QAbstractItemView::SingleSelection);
ui.tableView->setModel(model);
QStringList headerList;
headerList << u8" 客户 " << u8" 总资产 " << u8"盈亏比";
model->setHorizontalHeaderLabels(headerList);
ui.tableView->verticalHeader()->setVisible(true);
ui.tableView->horizontalHeader()->setStretchLastSection(true);
model->setRowCount(15);
for (int row = 0; row < 15; row++) {
for (int column = 0; column < 3; column++) {
QModelIndex index = model->index(row, column, QModelIndex());
if (column == 0) {
model->setData(index, QVariant(QString(u8"客户%1").arg(column + 1)));
}
else if (column == 1) {
model->setData(index, QVariant(1000000));
}
else {
model->setData(index, QVariant("10%"));
}
}
}
ui.tableView->resizeColumnsToContents();
ui.tableView->resizeRowsToContents();
}