Files
QTradeProgram/Sqbase/qbigorderviewer.h
2025-08-15 15:56:40 +08:00

63 lines
1.4 KiB
C++

#ifndef QBIGORDERVIEWER_H
#define QBIGORDERVIEWER_H
#include <QWidget>
#include <QStandardItemModel>
#include <QSortFilterProxyModel>
#include "ordertypedelegate.h"
class QTableView;
class QLineEdit;
class QComboBox;
class QPushButton;
class BigOrderInfo;
/* 大单交易数据查看器主界面 */
class QBigOrderViewer : public QWidget
{
Q_OBJECT
public:
explicit QBigOrderViewer(QWidget *parent = nullptr);
~QBigOrderViewer();
private:
void setRowData(int row, QSharedPointer<BigOrderInfo> order);
bool matchesFilter(QSharedPointer<BigOrderInfo> order);
private slots:
//void onBigOrderAdded(QSharedPointer<BigOrderItem> order); // 信号槽无法正确识别,暂时先这么用
//void onBigOrdersUpdated();
void onFilterChanged();
void onExportClicked();
void onBigOrderAdded(const BigOrderInfo &order); // 修改参数类型
private:
void initUI();
void initConnections();
void updateView();
void applyFilters();
// UI组件
QTableView *m_tableView;
QLineEdit *m_stockCodeFilter;
QComboBox *m_orderTypeFilter;
QPushButton *m_exportButton;
// 数据模型
QStandardItemModel *m_model;
QSortFilterProxyModel *m_proxyModel;
OrderTypeDelegate *m_typeDelegate;
// 数据存储
QList<QSharedPointer<BigOrderInfo>> m_allOrders;
QList<QSharedPointer<BigOrderInfo>> m_currentOrders;
signals:
void sendStockCodeToMainForm(QString code);
};
#endif // QBIGORDERVIEWER_H