From 20ab03b22f7ca11fbbaefe39ff494080de80bae1 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 1 Sep 2025 11:08:46 +0800 Subject: [PATCH] add setText AlignCenter --- QMainwindow/QMainwindow.cpp | 13 ++++++-- QTradeProgram.VC.db | Bin 109981696 -> 109981696 bytes Sqbase/ordertypedelegate.cpp | 54 ++++++++++++++++++++----------- Sqbase/qbigorderviewer.cpp | 60 +++++++++++++++++++++++------------ config/replyCodeList.csv | 2 +- 5 files changed, 87 insertions(+), 42 deletions(-) diff --git a/QMainwindow/QMainwindow.cpp b/QMainwindow/QMainwindow.cpp index 6eb1dff..b6313e5 100644 --- a/QMainwindow/QMainwindow.cpp +++ b/QMainwindow/QMainwindow.cpp @@ -361,8 +361,17 @@ void QMainwindow::updateCodeTable() m_model->removeRows(0, m_model->rowCount()); for (const auto& order : m_replyCodes) { QList rowItems; - rowItems << new QStandardItem(order->stockCode); - rowItems << new QStandardItem(QString::number(order->stockQuantityTh/1000, 'f', 1) + "K"); + + QStandardItem* codeItem = new QStandardItem(order->stockCode); + codeItem->setTextAlignment(Qt::AlignCenter); + rowItems << codeItem; + + //rowItems << new QStandardItem(order->stockCode); + + QStandardItem* quanityItem = new QStandardItem(QString::number(order->stockQuantityTh / 1000, 'f', 1) + "K"); + quanityItem->setTextAlignment(Qt::AlignCenter); + rowItems << quanityItem; + m_model->appendRow(rowItems); } } diff --git a/QTradeProgram.VC.db b/QTradeProgram.VC.db index 629998ec83caafad07943f0a603c2597ba652879..db1da017b36c8945051b3e2531192ff09d61981a 100644 GIT binary patch delta 17974 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 delta 15948 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 + QStyleOptionViewItem opt = option; + initStyleOption(&opt, index); - // 获取单元格文本 + + opt.displayAlignment = Qt::AlignCenter; // 设置文字居中 + + // 获取订单类型 QString type = index.data(Qt::DisplayRole).toString(); - // 设置背景色 if (type == "买入") { painter->fillRect(option.rect, m_buyColor); @@ -24,20 +30,20 @@ void OrderTypeDelegate::paint(QPainter *painter, const QStyleOptionViewItem &opt else if (type == "卖出") { painter->fillRect(option.rect, m_sellColor); } + + // // 添加悬停效果 + // if (option.state & QStyle::State_MouseOver) { + // QColor hoverColor = (type == "买入") + // ? m_buyColor.lighter(120) + // : m_sellColor.lighter(120); + // painter->fillRect(option.rect, hoverColor); + // } - // 恢复原始渲染状态 + painter->save(); + painter->setFont(opt.font); + painter->setPen(opt.palette.color(QPalette::Text)); + painter->drawText(opt.rect, Qt::AlignCenter, opt.text); painter->restore(); - - // 添加悬停效果 - if (option.state & QStyle::State_MouseOver) { - QColor hoverColor = (type == "买入") - ? m_buyColor.lighter(120) - : m_sellColor.lighter(120); - painter->fillRect(option.rect, hoverColor); - } - - - QStyledItemDelegate::paint(painter, option, index); } @@ -83,6 +89,9 @@ void HighlightDelegate::paint(QPainter *painter, const QStyleOptionViewItem &opt QStyleOptionViewItem opt = option; initStyleOption(&opt, index); + // 设置文字居中 + opt.displayAlignment = Qt::AlignCenter; + // 检查是否需要高亮 - 通过映射到源模型获取高亮状态 QAbstractItemModel *model = const_cast(index.model()); QSortFilterProxyModel *proxyModel = qobject_cast(model); @@ -111,5 +120,12 @@ void HighlightDelegate::paint(QPainter *painter, const QStyleOptionViewItem &opt else { // 正常绘制 QStyledItemDelegate::paint(painter, opt, index); + + // 正常绘制(居中) + painter->save(); + painter->setFont(opt.font); + painter->setPen(opt.palette.color(QPalette::Text)); + painter->drawText(opt.rect, Qt::AlignCenter, opt.text); + painter->restore(); } } \ No newline at end of file diff --git a/Sqbase/qbigorderviewer.cpp b/Sqbase/qbigorderviewer.cpp index 02f5696..2f7f36e 100644 --- a/Sqbase/qbigorderviewer.cpp +++ b/Sqbase/qbigorderviewer.cpp @@ -95,6 +95,11 @@ void QBigOrderViewer::initUI() << "时间" ); + // 设置表头文字居中 + for (int col = 0; col < m_model->columnCount(); ++col) { + m_model->setHeaderData(col, Qt::Horizontal, Qt::AlignCenter, Qt::TextAlignmentRole); + } + // 表格属性 m_tableView->setItemDelegateForColumn(2, m_typeDelegate); m_tableView->setSelectionBehavior(QAbstractItemView::SelectRows); @@ -169,28 +174,48 @@ void QBigOrderViewer::initConnections() void QBigOrderViewer::updateView() { - m_model->removeRows(0, m_model->rowCount()); - for (const auto& order : m_currentOrders) { - QList rowItems; - rowItems << new QStandardItem(order->code); - rowItems << new QStandardItem(order->name); + m_model->removeRows(0, m_model->rowCount()); + for (const auto& order : m_currentOrders) { + QList rowItems; + + // 创建项并设置文本居中 + QStandardItem* codeItem = new QStandardItem(order->code); + codeItem->setTextAlignment(Qt::AlignCenter); + rowItems << codeItem; + + QStandardItem* nameItem = new QStandardItem(order->name); + nameItem->setTextAlignment(Qt::AlignCenter); + rowItems << nameItem; + int nType = order->nBigOrderType; - if(nType) - rowItems << new QStandardItem("多单"); - else - rowItems << new QStandardItem("空单"); - rowItems << new QStandardItem(QString::number(std::fabs(order->volume/1000)) + "K"); - rowItems << new QStandardItem(QString::number(order->price, 'f', 2)); - rowItems << new QStandardItem(QString::number(order->level)); + QStandardItem* typeItem = new QStandardItem(nType ? "多单" : "空单"); + typeItem->setTextAlignment(Qt::AlignCenter); + rowItems << typeItem; + + QStandardItem* volumeItem = new QStandardItem(QString::number(std::fabs(order->volume / 1000)) + "K"); + volumeItem->setTextAlignment(Qt::AlignCenter); + rowItems << volumeItem; + + QStandardItem* priceItem = new QStandardItem(QString::number(order->price, 'f', 2)); + priceItem->setTextAlignment(Qt::AlignCenter); + rowItems << priceItem; + + QStandardItem* levelItem = new QStandardItem(QString::number(order->level)); + levelItem->setTextAlignment(Qt::AlignCenter); + rowItems << levelItem; + QString str = order->svrRecvTime.mid(11); if (str == nullptr) { QDateTime dateTime = QDateTime::currentDateTime(); str = dateTime.toString("hh:mm:ss"); } - rowItems << new QStandardItem(str); - m_model->appendRow(rowItems); - } + QStandardItem* timeItem = new QStandardItem(str); + timeItem->setTextAlignment(Qt::AlignCenter); + rowItems << timeItem; + + m_model->appendRow(rowItems); + } } void QBigOrderViewer::applyFilters() @@ -279,11 +304,6 @@ void QBigOrderViewer::onBigOrderAdded(const BigOrderInfo &order) break; // 找到后退出循环 } } - - //// 通知视图更新 - //QModelIndex topLeft = m_model->index(row, 0); - //QModelIndex bottomRight = m_model->index(row, m_model->columnCount() - 1); - //emit m_model->dataChanged(topLeft, bottomRight); }); // 确保代理模型按时间降序排序,新数据在顶部 diff --git a/config/replyCodeList.csv b/config/replyCodeList.csv index fe5967c..7652ef9 100644 --- a/config/replyCodeList.csv +++ b/config/replyCodeList.csv @@ -3,7 +3,7 @@ 00581,1.02e+06 03383,800000 02666,500000 -00839,500000 +00839,450000 06098,600000 06865,50000 00700,8000