1.json文件
{
"shortcutInfos":
[
{
"shortcut":"F1",
"applyTo":"全局",
"command":"帮助"
},
{
"shortcut":"F2",
"applyTo":"全局",
"command":"信息"
},
{
"shortcut":"F3",
"applyTo":"全局",
"command":"配置"
},
{
"shortcut":"F4",
"applyTo":"全局",
"command":"窗口"
},
{
"shortcut":"F5",
"applyTo":"全局",
"command":"事件"
}
]
}
2.头文件 HelpDialog.h
#ifndef HELPDIALOG_H
#define HELPDIALOG_H
#include <QDialog>
namespace Ui {
class HelpDialog;
}
typedef struct _ShortcutInfo
{
QString shortcut;
QString applyTo;
QString command;
}ShortcutInfo;
class QStandardItemModel;
class HelpDialog : public QDialog
{
Q_OBJECT
public:
explicit HelpDialog(QWidget *parent = 0);
~HelpDialog();
void setModelContent();
void initShortcutInfoList();
Q_SLOT void on_closeBtn_clicked();
private:
Ui::HelpDialog *ui;
QStandardItemModel* mModel;
QList<ShortcutInfo> mShortcutInfoList;
};
#endif // HELPDIALOG_H
3.源文件 HelpDialog.cpp
#include "HelpDialog.h"
#include "ui_HelpDialog.h"
#include <QStandardItemModel>
#include <QFile>
#include <QJsonArray>
#include <QJsonDocument>
#include <QJsonObject>
#include <QDebug>
#include <QTextCodec>
HelpDialog::HelpDialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::HelpDialog)
{
ui->setupUi(this);
setWindowFlags(Qt::FramelessWindowHint);
//setWindowModality(Qt::WindowModal);
ui->tableView->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
ui->tableView->horizontalHeader()->setHighlightSections(false);
ui->tableView->verticalHeader()->hide();
ui->tableView->setSelectionBehavior(QAbstractItemView::SelectRows);
//ui->tableView->setSelectionMode(QAbstractItemView::SingleSelection);
ui->tableView->setEditTriggers(QAbstractItemView::NoEditTriggers);
ui->tableView->setFocusPolicy(Qt::NoFocus);
mModel = new QStandardItemModel(this);
QStringList headList;
headList << tr("Shortcut") << tr("Applies to:") << tr("Command");
mModel->setHorizontalHeaderLabels(headList);
setModelContent();
ui->tableView->setModel(mModel);
QString style = "QDialog{background-color:#1A1E30;border:1px solid #3D4C76;}"//
"QLabel{"
"color:#D0DFE6;