2个面板之间的通信
Communicating between 2 panels
在阅读wxWiidgets教程时,我看到了这个教程,作者创建了两个子类wxPanel, LeftPanel和RightPanel。
左边有2个按钮,点击它右边的文本更新。现在有另一个类 communication ,它有一个成员wxPanel,其中左面板和右面板是子面板。
Left Panel有一个方法->
void LeftPanel::OnPlus(wxCommandEvent & WXUNUSED(event))
{
count++;
Communicate *comm = (Communicate *) m_parent->GetParent();
comm->m_rp->m_text->SetLabel(wxString::Format(wxT("%d"), count));
}
其中m_text是右面板的public成员。
我怀疑这是否是一种好的沟通方式。我的问题-这是正确的沟通方式吗?什么是更好的方法?
我也看了你说的教程。我认为这是一种很好的通信方式,因为它使用了wxwidgets的connect事件方法(请阅读事件以了解更多细节)。我不是wxwidgets的专家,但我总是使用这种方式来编写我的应用程序,将类widgets的事件关联到类的函数,然后该函数定位它必须更改属性的对象。
无论如何,如果你认为这个事件(按加号按钮)会经常发生,特别是,如果你有太多的函数/按钮,比如教程中的加号和减号,你可以在构造函数中定义m_text:
在标题:
wxStaticText *m_textlp;
在construtor: m_textlp = ( (Communicate *) m_parent->GetParent() )->m_rp->m_text;
使得函数只有:
void LeftPanel::OnPlus(wxCommandEvent & WXUNUSED(event))
{
count++;
m_textlp->SetLabel(wxString::Format(wxT("%d"), count));
}
相关文章:
- VSOMEIP-2个设备之间的通信(TCP/UDP)不工作
- 通过插槽和信号在不同线程中的两个qt对象之间进行通信
- C++ 两台不同机器之间通过wifi进行套接字通信
- 线程之间的通信不起作用 - C++
- 通过USB在PC和Arduino之间进行串行通信
- 管理器类和对象类之间的通信
- 使用命名管道在 C# 和C++应用程序之间进行持续通信
- Python 3 套接字和 QTcpsocket (c++) 之间的通信失败
- 如何在嵌入式浏览器和Webside之间进行双向通信
- C++程序和未识别程序之间的双向通信
- 使用C++在同一系统上运行的 2 个服务之间进行通信
- C# 和C++应用程序之间的通信
- 如何在Qt WebChannel中以独立于平台的方式在HTML/Javascript和C++之间进行通信?
- 如何在 gtk+ c 中的回调之间进行通信
- Electron应用程序和Win32本机桌面应用程序之间的进程间通信
- 如何在线程之间进行通信和等效的waitforsingleobject()
- C++ 和 Simulink 之间通过 UDP 进行通信
- 在两个Windows QT5之间进行通信
- 覆盆子Pi(QT C )和Arduino(Arduino IDE)之间的通信
- Shell扩展窗口:最好的通信之间的ContextMenu和IconOverlay