问题标签 [wxtextctrl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
710 浏览

wxpython - 是否可以在 TextCtrl 上绘图?如果是这样,怎么办?

我正在尝试用一些线条图来详细说明 TextCtrl:我想在文本上、在文本旁边、在行之间等绘制简单的东西。我正在像以前在 WxPanels 上所做的那样在 Wx 中进行绘图: 带 DC: $dc->DrawLine(15, 15, 120, 120); 等等

到目前为止,我正在这样做:在派生自 TextCtrl 的类中,我捕获 EVT_PAINT 并实现我自己的 OnPaint 函数:

现在,问题是:当我让绘制事件向上传播或不传播时,控件中的线条或文本都被绘制了。对于任何 Wx 大师来说,这可能是显而易见的,但对我来说,并非如此。据我了解,TextCtrl 是 WxWindow 的集合体,是一种将文本绘制到其中的低级方式,带有 dc、DrawText() 和顶部的一些便利功能,用于设置插入符号等。

这种理解对我来说意味着:为了能够画画,我需要访问已经准备好的/绘制的 dc,这样我才能继续在上面画画。正确的?通常,在 WxPerl 中,这可能吗?在我上面的函数中,我在控件绘制文本之前进行绘制,这就是我认为当我取消注释 Skip() 时线条消失的原因 - 因为控件然后清除并重绘 dc。

在 TextCtrl 完成所有绘制之后,有没有办法进入循环?

附言

Plain TextCtrl 似乎是通过在大多数平台上调用本机文本条目来实现的,尽管文档没有提到这一点。

我在 Kephra 和 Padre 中进行了挖掘,它们都显示了一个“右边距指示器”,一条通常为灰色的细垂直线,绘制在文本区域上。他们是如何做到的呢?惊喜:它们是 Wx::Scintilla 或较旧的 Wx::StyledTextCtrl 的子类,它们都提供了 SetEdgeColumn() 方法来触发它。

问自己是否重新实现我自己的文本小部件是访问/挂钩到 DC 上的文本绘制的唯一方法。(难以置信地摇头)

修补 *EVT_ERASE_BACKGROUND* 和 RichtTextCtrl 的PaintBackground()没有成功(好吧,经过几分钟的黑客攻击)。

0 投票
1 回答
599 浏览

python - 如何动态创建textCtrl框?

有没有办法通过单击按钮动态创建 textCtrl 框?所以我计划构建一个 GUI,在其中我提供一个 TextCtrl 框供用户默认输入一个值。但是如果用户想要输入更多值,则应该有一个“+”或添加按钮,用户可以在其中创建这样程序就可以动态地再创建一个 textCtrl 框并将其显示在 GUI 中,以便用户可以在新创建的 TextCtrl 框中输入他们的输入!

提前致谢!

0 投票
0 回答
268 浏览

c++ - 使 wxStyledTextCtrl 使用与 wxTextCtrl 完全相同的字体

下图最好地描述了我的问题:

不同的字体

左边的两个文本编辑控件是 wxTextCtrl,最右边的一个是 wxStyledTextCtrl。我将 wxStyledTextCtrl 用于反汇编编辑器(右侧),因为我想为其启用语法突出显示。

我对所有这些控件使用完全相同的字体,但 Scintilla 编辑器的字体样式/行高似乎总是不同。

有什么办法可以确保所有这些控件都使用完全相同的字体?

0 投票
1 回答
4076 浏览

python - Python/wxPython:如何将 wx.Choice 重置为默认值

我正在使用 wxPython 中的多个 wx.Choice 控件,我需要一个重置按钮来恢复默认选项“-- Select --”。我无法做到这一点,我最接近的是重置为空选项,这不是我们想要的。我希望在按下重置按钮时出现默认选项“--选择--”。请参阅下面的代码。

数据.py

提前感谢您的时间。

0 投票
1 回答
777 浏览

python - wxPython textctrl 临时获取黑色矩形

因此,我正在尝试使用 wxPython 编写一个程序,该程序将有一个带有选项卡的笔记本,每个选项卡都让用户在文本框中输入一些数据。这是一个与物理相关的项目,所以我希望每个文本框在显示应该输入的单位之后都有一个“单位”标签。问题是:当程序运行时,我在左上角得到一个黑色矩形每个 textctrl 是单位所在标签的大小。黑框会在以下任何一项之后立即永远消失:

  • 将制表符按到 textctrl
  • 将光标移动到 textctrl
  • 在笔记本中切换标签
  • 调整窗口大小,直到 textctrl 必须随之缩小。

功能上一切正常,我只想在启动时摆脱黑色矩形。

这是我的代码:

这是我得到的截图:

在此处输入图像描述

以下是我能够让黑色矩形消失的方法(但没有一个能让我做我需要做的事情):

当我删除代码以放入单元时,它可以工作。当我从单位字段中删除文本时,它可以工作。当我只有一个标签时,它可以工作。

如果有人能告诉我为什么会这样,我将不胜感激。

提前致谢!

0 投票
1 回答
695 浏览

python - wxPython/TextCtrl 替换字符串前 x 行中的字符

我已经扫描了这里以及网络上的问题,但没有找到我的答案,这是我的第一个问题,我是 (wx)Python 的新手,所以请放轻松。


使用TextCtrl我试图删除字符串中的单个字符时,该字符串将始终以相同的字符集开头,但字符串的其余部分可由用户自由编辑。

例如

糟糕的例子,但我将如何找到并删除第 11 个(',')字符,以便句子的格式更高而不影响字符串的其余部分?

我已经尝试过标准的 python 索引,但我得到了一个错误,我可以成功地从开始到结束向内删除字符串的块,但我只需要删除一个字符。

再一次,抱歉术语不好,因为我说我对 python 还很陌生,所以我的一些术语可能有点不确定。

0 投票
3 回答
197 浏览

python - wxPython:重复显示数字

我是 Python 编程的初学者,现在我想知道为什么我的小部件不能重复显示数字。也就是说,我想让文本显示从 1 到 9 的数字,但在 while 循环中,它只显示 9.... 有什么建议吗?

这是我的代码(Python 版本:2.6):

0 投票
3 回答
1758 浏览

python - 如何使 wx.TextCtrl 内容默认不被选中?

这是我的问题:

在此处输入图像描述

如您所见,每次对话框开始时,wx.TextCtrl默认情况下始终选择内容,即使当我SetInsertionPoint到最后一个字符时也是如此。这真的很烦人,因为您输入的任何内容都会默认删除以前选择的内容,而且我找不到将光标设置到初始文本末尾的方法。那么如何解决这个问题呢?

PS:我正在使用 wxPython 2.8.12.1、python 2.7.3 的 win 7 64bit

0 投票
2 回答
509 浏览

python - 使用 wx 控件创建类似窗口的命令终端

我正在尝试创建一个像窗口这样的命令终端。我使用了以下代码。问题是它将命令提示符设置为“>>>”,这是可编辑的。

我想要带有固定“>>>”的窗口,光标等待命令……现在的问题是用户可以轻松删除“>>>”,因为它是一个简单的文本。

有什么方法可以在 we.textctrl 或任何其他控件中修复这段文本。

类 MyFrame(wx.Frame):

0 投票
1 回答
674 浏览

python - wxPython wx.TextCtrl 是不可编辑的

在我的 wxPython 应用程序中,我有一些用于表单的 wx.TextCtrl 输入字段。我的问题是,我的一些 wx.TextCtrl 输入字段是不可编辑的,这意味着我不能在字段中输入,也不能选择字段中的文本。我的 main.py 文件中的父 wx.Panel 有两个子登录 wx.Panel 和 wx.Notebook。我登录中的 wx.TextCtrls 很好用,但是我的 wx.Notebook 中的 wx.TextCtrls 不起作用。以下代码来自我创建 wx.Notebook 并添加页面的 main.py 文件:

主文件

登录面板.py

OneLblOneSingleTxt_HorzBoxSizer_Panel.py

登录BtnsPanel.py

用户视图.py

用户表.py

如何让 self.userTxt 和 self.passTxt 可编辑,我可以在其中输入文本并选择它?感谢您的任何帮助!


更新:


上面的代码是在 Python 2.7.8 上工作的