From 8ea6d363df77de2dca288397da8d4f9c3d3a5c4d Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期五, 18 十月 2024 18:41:57 +0800 Subject: [PATCH] '项目完善' --- CBTrade/ViewManager.cpp | 99 +++++++++++++++++++++---------------------------- 1 files changed, 42 insertions(+), 57 deletions(-) diff --git a/CBTrade/ViewManager.cpp b/CBTrade/ViewManager.cpp index de415c7..cc28f70 100644 --- a/CBTrade/ViewManager.cpp +++ b/CBTrade/ViewManager.cpp @@ -31,14 +31,14 @@ wxBoxSizer* sizer = new wxBoxSizer(wxVERTICAL); wxSize size = window->GetSize(); - cout << "size:"<< size.GetWidth() << endl; + cout << "size:" << size.GetWidth() << endl; wxPanel* topPanel = new wxPanel(window, wxID_ANY, wxDefaultPosition, wxSize(-1, PANNEL_TOP_HEIGHT)); - wxPanel* tickPanel = new wxPanel(window, wxID_ANY, wxDefaultPosition, wxSize(-1,size.GetWidth()<100? PANNEL_TICK_HEIGHT: size.GetWidth()*2/3)); + wxPanel* tickPanel = new wxPanel(window, wxID_ANY, wxDefaultPosition, wxSize(-1, size.GetWidth() < 100 ? PANNEL_TICK_HEIGHT : size.GetWidth() * 2 / 3)); wxPanel* moneyPanel = new wxPanel(window, wxID_ANY, wxDefaultPosition, wxSize(-1, PANNEL_MONEY_HEIGHT)); @@ -51,15 +51,15 @@ initMenu((wxFrame*)window); - sizer->Add(topPanel, 0, wxEXPAND|wxLEFT | wxRIGHT, 2); + sizer->Add(topPanel, 0, wxEXPAND | wxLEFT | wxRIGHT, 2); sizer->Add(createSplitLine(window), 0, wxEXPAND); - sizer->Add(tickPanel, 0, wxEXPAND|wxLEFT | wxRIGHT, 2); + sizer->Add(tickPanel, 0, wxEXPAND | wxLEFT | wxRIGHT, 2); sizer->Add(createSplitLine(window), 0, wxEXPAND); - sizer->Add(moneyPanel, 0, wxEXPAND|wxLEFT | wxRIGHT, 2); + sizer->Add(moneyPanel, 0, wxEXPAND | wxLEFT | wxRIGHT, 2); sizer->Add(createSplitLine(window), 0, wxEXPAND); - sizer->Add(positionPanel, 1, wxEXPAND |wxLEFT | wxRIGHT, 2); + sizer->Add(positionPanel, 1, wxEXPAND | wxLEFT | wxRIGHT, 2); sizer->Add(createSplitLine(window), 0, wxEXPAND); - sizer->Add(sellPanel, 0, wxEXPAND|wxLEFT | wxRIGHT, 2); + sizer->Add(sellPanel, 0, wxEXPAND | wxLEFT | wxRIGHT, 2); sizer->Add(createSplitLine(window), 0, wxEXPAND); window->SetSizer(sizer); this->initTopView(topPanel); @@ -72,7 +72,7 @@ void ViewManager::ShowJueJinSetting(wxCommandEvent& event) { - JueJInSettingFrame *jueJinFrame = new JueJInSettingFrame("掘金参数设置"); + JueJInSettingFrame* jueJinFrame = new JueJInSettingFrame("掘金参数设置"); jueJinFrame->ShowModal(); } @@ -107,7 +107,19 @@ this->topWidgets->backTestDate = new wxTextCtrl(pancel, wxID_ANY); this->topWidgets->btnBackTest = new wxButton(pancel, wxID_ANY, "开始回测"); + + topWidgets->codeInfoLabel = new wxRichTextCtrl(pancel, wxID_ANY, "", wxDefaultPosition, wxSize(-1, 90), wxTE_MULTILINE | wxTE_READONLY | wxBORDER_NONE); + wxFont font = topWidgets->codeInfoLabel->GetFont(); + font.SetPointSize(10); + topWidgets->codeInfoLabel->SetFont(font); + + + wxBoxSizer* infoSizer = new wxBoxSizer(wxHORIZONTAL); + infoSizer->Add(topWidgets->codeInfoLabel, 1, wxEXPAND); + + + // 绑定事件 this->topWidgets->refreshBtn->Bind(wxEVT_BUTTON, &ViewManager::OnRefresh, this); @@ -115,9 +127,12 @@ sizer->Add(this->topWidgets->btnAddZX, 0, wxALL, 2); sizer->Add(this->topWidgets->msgLabel, 1, wxALIGN_CENTER_VERTICAL); sizer->Add(topWidgets->backTestDate, 0, wxALIGN_CENTER_VERTICAL); - sizer->Add(topWidgets->btnBackTest, 0, wxLEFT| wxALIGN_CENTER_VERTICAL, 2); + sizer->Add(topWidgets->btnBackTest, 0, wxLEFT | wxALIGN_CENTER_VERTICAL, 2); sizer->Add(this->topWidgets->refreshBtn, 0, wxALL, 2); - pancel->SetSizer(sizer); + wxBoxSizer* rootSizer = new wxBoxSizer(wxVERTICAL); + rootSizer->Add(infoSizer, 0, wxEXPAND, 2); + rootSizer->Add(sizer, 0, wxEXPAND, 2); + pancel->SetSizer(rootSizer); } @@ -137,18 +152,8 @@ void ViewManager::initTickView(wxPanel* panel) { - wxString st = ""; - tickWidgets->tickChart = new TickChart(panel, wxID_ANY,60,TIME_SPACE_BAR,"09:25:00","15:00:00"); - tickWidgets->codeInfoLabel = new wxRichTextCtrl(panel, wxID_ANY, st, wxDefaultPosition,wxSize(-1,90), wxTE_MULTILINE| wxTE_READONLY| wxBORDER_NONE); - wxFont font = tickWidgets->codeInfoLabel->GetFont(); - font.SetPointSize(10); - tickWidgets->codeInfoLabel->SetFont(font); - + tickWidgets->tickChart = new TickChart(panel, wxID_ANY, 60, TIME_SPACE_BAR, "09:25:00", "15:00:00"); wxBoxSizer* panelSizer = new wxBoxSizer(wxVERTICAL); - wxBoxSizer *sizer = new wxBoxSizer(wxHORIZONTAL); - sizer->Add(tickWidgets->codeInfoLabel,1, wxEXPAND); - - panelSizer->Add(sizer, 0, wxEXPAND, 2); panelSizer->Add(tickWidgets->tickChart, 1, wxEXPAND); panel->SetSizer(panelSizer); } @@ -254,7 +259,7 @@ t.detach(); } catch (...) { - + } } return false; // 返回 true 表示已经处理了点击事件 @@ -287,7 +292,7 @@ ColorTextRenderer(const wxString& varianttype = wxS("wxObject")) : wxDataViewCustomRenderer(varianttype, wxDATAVIEW_CELL_ACTIVATABLE) { - + } virtual bool Render(wxRect cell, wxDC* dc, int state) @@ -329,61 +334,39 @@ void ViewManager::initPositionView(wxPanel* panel) { - wxDataViewListCtrl* listCtrl = new wxDataViewListCtrl( + MyDataViewListCtrl* listCtrl = new MyDataViewListCtrl( panel, wxID_ANY, wxDefaultPosition, wxSize(-1, -1), wxLC_REPORT | wxBORDER_NONE); // 设置整体的字体大小 - wxFont font = listCtrl->GetFont(); + wxFont font = listCtrl->GetFont(); font.SetPointSize(10); listCtrl->SetFont(font); const int COL_COUNT = 13; - std::string headers[COL_COUNT] = { "名称","涨幅","现价","现手","正股涨幅","正股买一","持仓金额","成本价","盈亏比","更多","持仓","盈亏","正股名称" }; - list<int> widths= MyConfigUtil::getPositionColumnWidth(); + std::string headers[COL_COUNT] = { "名称","涨幅","正股涨幅","正股买一","持仓金额","盈亏比","单笔卖额","现价","成本价","更多","持仓","盈亏","正股名称" }; + list<int> widths = MyConfigUtil::getPositionColumnWidth(); for (int i = 0; i < COL_COUNT; i++) { int width = -1; if (widths.size() > i) { - list<int>::iterator e = widths.begin(); - std::advance(e,i); + list<int>::iterator e = widths.begin(); + std::advance(e, i); width = *e; } cout << "持仓列宽度:" << i << "-" << width << endl; - + if (i != 9) { auto ctr = new ColorTextRenderer(); listCtrl->AppendColumn(new wxDataViewColumn(headers[i], ctr, i, width < 0 ? 50 : width, i == 0 ? wxALIGN_LEFT : wxALIGN_RIGHT, wxDATAVIEW_COL_RESIZABLE)); } else { auto bc = new ButtonRenderer(); - listCtrl->AppendColumn(new wxDataViewColumn(headers[i], bc,i, width < 0? 50:width, i == 0 ? wxALIGN_LEFT : wxALIGN_RIGHT, wxDATAVIEW_COL_RESIZABLE)); + listCtrl->AppendColumn(new wxDataViewColumn(headers[i], bc, i, width < 0 ? 50 : width, i == 0 ? wxALIGN_LEFT : wxALIGN_RIGHT, wxDATAVIEW_COL_RESIZABLE)); } } - - for (int i = 0; i < 1; i++) { - wxVector<wxVariant> data; - data.push_back(wxVariant("美的转债")); - data.push_back(wxVariant("10.20%")); - data.push_back(wxVariant("123.123")); - data.push_back(wxVariant("452")); - data.push_back(wxVariant("10.02%")); - data.push_back(wxVariant("12312万")); - - data.push_back(wxVariant("100000.00")); - data.push_back(wxVariant("123.123")); - - data.push_back(wxVariant("1.01%")); - data.push_back(wxVariant("美的集团")); - - data.push_back(""); - data.push_back(wxVariant("1000")); - data.push_back(wxVariant("+20000.10")); - listCtrl->AppendItem(data); - } - listCtrl->Refresh(); + listCtrl->HandleDataUpdate(); positionWidgets->listCtrlReport = listCtrl; - wxBoxSizer* sizer = new wxBoxSizer(wxVERTICAL); sizer->Add(positionWidgets->listCtrlReport, 1, wxEXPAND); @@ -392,7 +375,7 @@ void ViewManager::initSellView(wxPanel* panel) { - const int moneys[] = { 50000,40000,30000,20000,10000,5000,3000,2000,1000 }; + const int moneys[] = { 80000,60000,40000,20000,15000,10000,8000,5000,3000,2000 }; //-------按钮操作区域 const int COLUMN_SPACE = 8; @@ -481,7 +464,7 @@ sellWidgets->showAllPosition = new wxCheckBox(btnPannel, wxID_ANY, "显示无持仓"); sellWidgets->showAllPosition->SetValue(TRUE); - btnSizer->Add(sellWidgets->showAllPosition, 0, wxLEFT, COLUMN_SPACE); + btnSizer->Add(sellWidgets->showAllPosition, 0, wxLEFT, COLUMN_SPACE); @@ -502,8 +485,10 @@ auto sellNumsSizer = new wxBoxSizer(wxHORIZONTAL); for (std::list<wxButton*>::iterator e = sellWidgets->sellNums.begin(); e != sellWidgets->sellNums.end(); e++) { - sellNumsSizer->Add(*e, 1, wxEXPAND | wxLEFT | wxRIGHT, 2); + (*e)->SetMinSize(wxSize(40,50)); + sellNumsSizer->Add(*e, 1, wxEXPAND | wxALL, 2); } + auto rootSizer = new wxBoxSizer(wxVERTICAL); rootSizer->Add(btnPannel, 0, wxEXPAND | wxTOP, 5); rootSizer->Add(sellNumsSizer, 1, wxEXPAND | wxTOP, 5); -- Gitblit v1.8.0