文章 "图形界面 X: 在多行文本框中选择文本 (集成构建 13)" - 页 5 123456789101112...16 新评论 Anatoli Kazharski 2017.04.22 10:59 #41 Pavel Kolchin:@Pavel Kolchin,要防止交易箭头悬挂在面板上,请使用CWndEvents::ResetWindow() 方法。 Pavel Kolchin 2017.04.23 09:06 #42 Anatoli Kazharski:是的,但有一个问题,长时间使用时会无缘无故出现错误,删除 EA 子窗口会导致 EA 被删除图像 Anatoli Kazharski 2017.04.23 09:38 #43 Pavel Kolchin:是的,但有一个问题,当长时间使用时,会无缘无故出现错误,删除 EA 子窗口会导致删除 EA在Defines.mqh 文件中,将EXPERT_IN_SUBWINDOW 参数设置为false://+------------------------------------------------------------------+ //|定义。mqh ///2015年,MetaQuotes Software Corp.版权所有。 //|http://www.mql5.com | | //+------------------------------------------------------------------+ //--- 窗口模式下的专家 #define EXPERT_IN_SUBWINDOW false//---对于图形界面 位于图表主窗口的智能顾问,该参数值应为false。 Pavel Kolchin 2017.04.23 10:02 #44 Anatoli Kazharski:在Defines.mqh 文件中,将EXPERT_IN_SUBWINDOW 参数设置为false: 很明显,有一个函数可以工作,可以工作,可以工作(几天),然后又失败。//+------------------------------------------------------------------+ //| 检查并更新 "智能交易系统 "窗口的编号 //+------------------------------------------------------------------+ void CWndEvents::CheckExpertSubwindowNumber(void) { //--- 如果不是专家,则退出 if(PROGRAM_TYPE!=PROGRAM_EXPERT) return; //--- 获取图形上子窗口的数量 int subwindows_total=(int)::ChartGetInteger(m_chart_id,CHART_WINDOWS_TOTAL); //--- 如果子窗口数量和指标数量没有变化,则退出 if(subwindows_total==m_subwindows_total) return; //-- 保存当前子窗口的数量 m_subwindows_total=subwindows_total; //--- 检查是否存在专家子窗口 bool is_subwindow=false; //--- 查找专家的子窗口。 for(int sw=0; sw<subwindows_total; sw++) { //--- 如果存在专家子窗口,则停止循环 if(is_subwindow) break; //--- 该窗口/子窗口中有多少个指标 int indicators_total=::ChartIndicatorsTotal(m_chart_id,sw); //--- 让我们查看窗口中的所有指标 for(int i=0; i<indicators_total; i++) { //--- 获取指标的简称 string indicator_name=::ChartIndicatorName(m_chart_id,sw,i); //--- 如果这不是专家子窗口,则转到下一个子窗口 if(indicator_name!=m_subwindow_shortname) continue; //--- 注意,EA 子窗口是 is_subwindow=true; //--- 如果子窗口编号发生变化,则 // 我们需要在主表单的所有元素中保存新数字 if(sw!=m_subwin) { //--- 保存子窗口编号 m_subwin=sw; //--- 让我们把它也保存在界面主窗体的所有元素中 int elements_total=CWndContainer::ElementsTotal(0); for(int e=0; e<elements_total; e++) m_wnd[0].m_elements[e].SubwindowNumber(m_subwin); } //--- break; } } //--- 如果未找到专家顾问子窗口,则删除专家顾问 if(!is_subwindow) { ::Print(__FUNCTION__," > 删除 EA 子窗口会导致 EA 被删除!"); //--- 从图表中移除智能交易系统 ::ExpertRemove(); } } Anatoli Kazharski 2017.04.23 10:12 #45 Pavel Kolchin: 很明显,有一个功能可以工作几天,然后就失效了。您使用的不是最新版本的库,或者对其进行了修改。这个方法的开头应该有这样一个条件://--- 如果 (1) 不是 EA 或 (2) EA 图形用户界面在主窗口中,则退出 if(PROGRAM_TYPE!=PROGRAM_EXPERT || !EXPERT_IN_SUBWINDOW) return;//---而你有//--- 如果不是专家,则退出 if(PROGRAM_TYPE!=PROGRAM_EXPERT) return; Pavel Kolchin 2017.04.23 10:21 #46 Anatoli Kazharski:您使用的不是最新版本的程序库,或者对其进行了编辑。在这个方法的开头应该有这样的条件:是的,我认为这样更好)。您使用的是 10.2 版,因此它拥有我需要的所有菜单项,并且支持 mt4。从那时起是否有其他可能影响工作的重要更改? Anatoli Kazharski 2017.04.23 10:28 #47 Pavel Kolchin:...此后是否有其他可能影响性能的重要修改? 现在还很难说。有些东西会不断添加和修正。 Konstantin 2017.04.26 09:01 #48 最好能在表单中添加一种机制,用于根据 Qt 中的 "工厂 "原则或类似原则添加对象,而且最好能相互定位:- 右- 左- 上- 下 Anatoli Kazharski 2017.04.26 09:13 #49 Konstantin:最好能在表单中添加一种机制,用于按照 Qt 中的 "工厂 "原则或类似原则添加对象,而且最好能相互定位:- 右- 左- 上- 下请详细说明。我不知道 Qt 是如何实现的。现在,元素可以相对于表单进行定位:右、左、上、下。只有窗体可以作为父元素。在下一个版本中,可以将任何其他元素设置为父元素。这将使元素管理和定位变得更加简单。 Konstantin 2017.04.26 09:25 #50 Anatoli Kazharski:请更详细地描述一下。我不知道 Qt 是如何实现的。现在,元素可以相对于表单进行定位:右、左、上、下。只有表单可以作为父元素。在下一个版本中,可以将任何其他元素设置为父元素。这将使元素管理和定位变得更加容易。 在 Qt 中是一个工厂函数:QWidgetAction *createWidget();这就是创建 widget 的测试方法:QWidget * widget() { static QWidget * inst = new QWidget; return inst; }这里是 关于 QWidget 的所有信息。现在,元素可以相对于窗体 进行定位:右、左、上、下。我不太明白,这个相对于边框的元素定位,是否既可以放在表单后面,也可以放在表单里面?例如,有一个表单,我们是否可以将元素相对于表单的左边界向左定位? 123456789101112...16 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
是的,但有一个问题,长时间使用时会无缘无故出现错误,删除 EA 子窗口会导致 EA 被删除
图像
是的,但有一个问题,当长时间使用时,会无缘无故出现错误,删除 EA 子窗口会导致删除 EA
在Defines.mqh 文件中,将EXPERT_IN_SUBWINDOW 参数设置为false:
//---
对于图形界面 位于图表主窗口的智能顾问,该参数值应为false。
在Defines.mqh 文件中,将EXPERT_IN_SUBWINDOW 参数设置为false:
很明显,有一个函数可以工作,可以工作,可以工作(几天),然后又失败。
很明显,有一个功能可以工作几天,然后就失效了。
您使用的不是最新版本的库,或者对其进行了修改。这个方法的开头应该有这样一个条件:
//---
而你有
您使用的不是最新版本的程序库,或者对其进行了编辑。在这个方法的开头应该有这样的条件:
是的,我认为这样更好)。
您使用的是 10.2 版,因此它拥有我需要的所有菜单项,并且支持 mt4。
从那时起是否有其他可能影响工作的重要更改?
...
此后是否有其他可能影响性能的重要修改?
最好能在表单中添加一种机制,用于根据 Qt 中的 "工厂 "原则或类似原则添加对象,而且最好能相互定位:
- 右
- 左
- 上
- 下
最好能在表单中添加一种机制,用于按照 Qt 中的 "工厂 "原则或类似原则添加对象,而且最好能相互定位:
- 右
- 左
- 上
- 下
请详细说明。我不知道 Qt 是如何实现的。
现在,元素可以相对于表单进行定位:右、左、上、下。只有窗体可以作为父元素。在下一个版本中,可以将任何其他元素设置为父元素。这将使元素管理和定位变得更加简单。
请更详细地描述一下。我不知道 Qt 是如何实现的。
现在,元素可以相对于表单进行定位:右、左、上、下。只有表单可以作为父元素。在下一个版本中,可以将任何其他元素设置为父元素。这将使元素管理和定位变得更加容易。
在 Qt 中是一个工厂函数:
这就是创建 widget 的测试方法:
QWidget * widget() { static QWidget * inst = new QWidget; return inst; }这里是 关于 QWidget 的所有信息。
我不太明白,这个相对于边框的元素定位,是否既可以放在表单后面,也可以放在表单里面?
例如,有一个表单,我们是否可以将元素相对于表单的左边界向左定位?