我想在我的wxWidgets GUI中添加一个元素,其行为类似于终端模拟器.不是在执行命令的shell方面,而是在终端中运行的应用程序的输入输出设置方面.
基本上,要求是:
流输入/输出:当您输入一个字符时,它会被添加到输入流中,当某些内容通过管道输送到终端时,它会立即打印出来.
无编辑:输入一个字符后,它永久存在,因为它可能已被终端中运行的应用程序使用.
某种滚动(即使它只是显示几行或其他东西).
如果有一些东西已经做到这一点会很好,但是对于如何用已经存在的控件(如wxTextCtrl)实现它的建议也会受到欢迎.
我有一个(单行)TextCtrl.用户将数据输入到此中.当他们按回车键时,需要提取该框的内容以便对其进行处理.我无法弄清楚如何抓住进入被按下.
根据该文档,与风格wx.TE_PROCESS_ENTER我TextCtrl设置,它应该在的盒子,我会再搭上被按下时输入生成wx.EVT_COMMAND_TEXT_ENTER事件.然而,wx.EVT_COMMAND_TEXT_ENTER似乎不存在(我得到"模块没有属性EVT_COMMAND_TEXT_ENTER),所以我有点卡住.谷歌搜索只是得到几个人抱怨wx.EVT_COMMAND_TEXT_ENTER不起作用,所以我想我需要另一种方式.
我有一个wx.Dialog子类,当用户单击OK按钮时需要执行几个清理操作.该的wx.Dialog文件称,点击确定或取消应该发射EVT_CLOSE事件:
EVT_CLOSE:用户或以编程方式关闭对话框(请参阅Window.Close).用户可以生成此事件,单击关闭按钮(通常是标题栏右上角的"X")(如果存在)(请参阅CLOSE_BOX样式)或单击带有ID_CANCEL或ID_OK ID的按钮.
但是,我正在使用WX 2.9.5.0(通过wxPython),当我在此测试应用程序中单击"确定"或"取消"时,不会调用OnClose方法.单击系统的关闭按钮(我正在使用OS X)时调用OnClose.我是否实现了此事件处理错误或者wx.Dialog是否真的不符合其文档?在后一种情况下,拦截单击"确定"按钮的最佳方法是什么?
from __future__ import print_function
import wx
class TestDialog(wx.Dialog):
def __init__(self, parent):
wx.Dialog.__init__(self, parent, title='Test Dialog')
sizer = wx.BoxSizer(wx.VERTICAL)
message = wx.StaticText(self, wx.NewId(), 'This is some dummy text')
sizer.Add(message)
ok_button = wx.Button(self, wx.ID_OK, 'OK')
cancel_button = wx.Button(self, wx.ID_CANCEL, 'Cancel')
btn_sizer = self.CreateStdDialogButtonSizer(wx.OK | wx.CANCEL)
btn_sizer.Add(cancel_button)
btn_sizer.Add(ok_button)
sizer.Add(btn_sizer)
self.SetSizer(sizer)
self.Bind(wx.EVT_CLOSE, self.OnClose)
def OnClose(self, event):
print('In OnClose')
event.Skip()
if __name__ == '__main__':
app = wx.App(False)
dialog = TestDialog(None)
result = dialog.ShowModal()
print('Result: {}'.format(result))
Run Code Online (Sandbox Code Playgroud) 我刚开始用C++学习wxWidgets 3.0版.我已经注意到,wxWidgets中的事件处理是由Event表完成的.但是一个教程也提到了Connect() - 实际上它只是说:"本教程将使用事件表,而不是Connect()".
我想知道,事件表和Connect()背后的哲学是什么?有什么区别,什么时候比另一个更合适......谢谢.
我需要做一个
slider = wx.Slider(self, 100, 25, 1, 100, (30, 60), (250, -1), wx.SL_HORIZONTAL)
Run Code Online (Sandbox Code Playgroud)

具有透明背景(因为它出现在具有不均匀背景的面板上).
更一般地说,如何才能将其外观改为这样的?

(.png如果需要,我可以使用小部件元素的文件.)
如果在我的应用程序运行时关闭计算机,我的应用程序会抛出一些奇怪的错误.
有时消息是(地址)内存不能"读",有时不能"写".
以正常方式关闭应用程序不会生成此类消息.
如何模拟"windows shutdown"以便我可以调试我的应用程序?如何才能找出应用程序尝试执行的操作?
我是一名新手,在BASIC,Python以及所有东西,汇编程序(作为视频游戏ROM黑客的一部分)中写作方面有一点经验.我想创建一个小工具,用于修改特定文件中具有GUI界面的特定点的十六进制值.
我正在寻找的是创建小型GUI程序的能力,我可以将其作为EXE(或者至少是一个独立的目录)进行分发.我并不热衷于.NET语言的想法,因为我不想强迫人们下载庞大的.NET框架包.我目前使用IDLE和Boa Constructor设置Python,应用程序在那里运行.我试过在编译Python应用程序,它依赖于wxWidgets的查找信息,但我发现在搜索结果和信息一直扑朔迷离,或只是完全不知所云.
我的问题是:
感谢您的时间,
JBMK
我使用wxwidget库,我有以下问题:
#if defined(HAVE_TYPE_TRAITS)
#include <type_traits>
#elif defined(HAVE_TR1_TYPE_TRAITS)
#ifdef __VISUALC__
#include <type_traits>
#else
#include <tr1/type_traits>
#endif
#endif
Run Code Online (Sandbox Code Playgroud)
这里找不到#include.我使用Apple LLVM编译器4.1.(使用c ++ 11方言).如果我切换到LLVM GCC 4.2编译器,我没有错误,但主要问题是所有c ++ 11包含都不起作用.
我如何使用GCC编译器,但使用c ++ 11标准或使LLVM可以找到?
任何帮助将非常感激.
我正在用wxPython和VTK创建一个应用程序.屏幕左侧有一个配置面板(wx.Panel),右侧有一个VTK窗口,也基于wx.Panel.将面板放置在wxFrame的boxsizer中,并使用wxFormBuilder应用程序中定义的比例大小调整大小,然后使用该大小来生成XRC文件.

我有一个非常具体的问题,一些Windows 7机器一直没有正确调整窗口的VTK部分 - 请参阅上面屏幕截图中VTK窗口周围的白色边框.我试图让这个VTK窗口固定为1280x720 - 它是 - 但是有一个尺寸问题,一些元素正在切断窗口的底部和右边.在Ubuntu 10.04,XP或Windows 7的某些版本上运行时,此错误不存在(我不确定那些有效的和那些尚未有效的内容是什么).
当遇到这个错误时,我可以与屏幕的白色部分进行交互 - 通过VTK交互器正确处理点击,因此它仍然是我的VTK场景的一部分.
应用程序设置如下,右侧VTK窗格是graphics_panel.面板设置为wxEXPAND没有其他标志,我的应用程序中的所有元素都自动设置为大小(没有设置最小,最大或默认大小).唯一的例外是bSizer1(主要的wxFrame sizer),它具有最小宽度和高度设置(我不确定这是否是正确的方法,但它似乎工作正常).

我从wxFormBuilder生成XRC,然后在我的应用程序中使用它,我的VTK场景设置如下:
class MyScene(wx.Panel):
def __init__(self, parent):
wx.Panel.__init__(self, parent, style=wx.NO_BORDER)
#'parent' is main_frame (wx.Frame instance)
self._parent = parent
self.renderer = vtk.vtkRenderer()
# I create and add my VTK actors here (SNIPPED)
self._set_lighting()
self.widget = VTKWidget(self,-1) #VTKWidget is a wxVTKRenderWindowInteractor
self.widget.GetRenderWindow().AddRenderer(self.renderer)
self.widget.Enable(1)
self.widget.SetDoubleBuffered(True)
self.Bind(wx.EVT_SIZE, self.on_size)
Run Code Online (Sandbox Code Playgroud)
我一直在尝试解决使用该on_size函数的元素大小的MyScene问题,但下面没有任何内容可以解决我的问题.报告的数值都正常的和错误的系统是符合市场预期.
def on_size(self, evt):
print "---- MyScene on_size ----"
print "Widget …Run Code Online (Sandbox Code Playgroud) 任何人都可以推荐 CLion 和 wxWdgets 的教程或入门指南吗?我四处寻找,但找不到任何东西。