标签: wxtextctrl

获取 wxTextCtrl 点击事件的简单方法?

当用户单击 wxTextCtrl 时是否有一种简单的方法来处理?阅读文档wxTextCtrl后,我发现没有单击或双击事件。我从问题wxWidgets:检测自定义控件上的单击事件中了解到 wxWidgets 中没有“单击”事件之类的东西,因此一个简单的鼠标按下事件就可以了。

示例答案:

来自:wx 维基

    textCtrl->Connect(wxEVT_LEFT_DOWN,
              wxMouseEventHandler(MyClass::OnClick), NULL, this );
Run Code Online (Sandbox Code Playgroud)

wxwidgets wxtextctrl

5
推荐指数
1
解决办法
4601
查看次数

在wxPython中查找文本大小的正确方法

我有一个我在wxPython中开发的应用程序.部分应用程序在网格中创建大量TextCtrls,以便为一个任意大的人员列表输入一周中每一天的四个字母代码.

我已经设法使它工作,但我必须做一些kludgy.具体来说,我还没有找到一个很好的方法来计算出一些文本的大小(以像素为单位),因此我必须猜测TextCtrls的大小以便恰好适合最大的(4个字母)代码.我担心的是,如果要更改文本的大小,或者将应用程序移植到MSW以外的其他内容,那么我的布局可能会中断.

我找到的解决方案是创建一个StaticText对象,用4个大字母填充它,得到它的大小,然后是.Destroy()它.这可行,但它看起来真的是一个笨重的解决方案.有没有人有更直接的方法来确定TextCtrl中任意文本字符串的大小?我查看了文档并且找不到任何内容,而且我没有看到任何正如我正在尝试做的那样的例子.

下面是一个小代码示例(显示测试方法):

    # This creates and then immediately destroys a static text control
    # in order to learn how big four characters are in the current font.
    testst = wx.StaticText(self, id = wx.ID_ANY, label = "XXXX")
    self.fourlettertextsize = testst.GetClientSize() + (4,4)
    testst.Destroy()
Run Code Online (Sandbox Code Playgroud)

(+(4,4)部分是在控件中添加一点空间以容纳光标和TextCtrl的客户区域中的一个小边框;这是我不想直接做的另一件事.)

python size wxpython wxtextctrl

4
推荐指数
2
解决办法
3917
查看次数

wxTextCtrl 换行问题

我正在与我的 wxTextCtrl 解决一个烦人的问题。无论我尝试什么,都无法添加新行。wxTextCtrl 显示一个方形字符而不是一个新行。
这是相关的代码:

wxTextCtrl  * detail = new wxTextCtrl (this,wxID_ANY);
detail->SetWindowStyle(wxTE_MULTILINE);
detail->SetEditable(false);

detail->AppendText("Some text");
detail->AppendText("\n New line");
detail->AppendText("\n An other new line\n");
detail->AppendText("Again a new line");  
Run Code Online (Sandbox Code Playgroud)

我得到:

一些文字◻◻换行◻◻换行◻◻换行◻◻再换行

首先我认为Multiline属性有问题但detail->IsMultiLine()返回true

任何帮助将不胜感激,

c++ wxwidgets wxtextctrl

2
推荐指数
1
解决办法
2064
查看次数

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

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

data.py

import wx

class MyFrame1 ( wx.Frame ):

    def __init__( self, parent ):
        wx.Frame.__init__ ( self, parent, id = wx.ID_ANY, title = wx.EmptyString, pos = wx.DefaultPosition, size = wx.Size( 250,300 ), style = wx.CAPTION|wx.CLOSE_BOX|wx.MINIMIZE_BOX|wx.SYSTEM_MENU|wx.TAB_TRAVERSAL )

        self.SetSizeHintsSz( wx.DefaultSize, wx.DefaultSize )

        DataBox = wx.BoxSizer( wx.HORIZONTAL )

        gSizer2 = wx.GridSizer( 0, 2, 0, 0 )

        self.Color_Label = wx.StaticText( self, wx.ID_ANY, u"Color:", wx.DefaultPosition, wx.DefaultSize, 0 )
        self.Color_Label.Wrap( -1 )
        self.Color_Label.SetFont( wx.Font( 13, 70, 90, 90, False, wx.EmptyString ) )

        gSizer2.Add( self.Color_Label, 0, wx.ALL, …
Run Code Online (Sandbox Code Playgroud)

python wxwidgets wxpython wxtextctrl python-2.7

0
推荐指数
1
解决办法
3032
查看次数

标签 统计

wxtextctrl ×4

wxwidgets ×3

python ×2

wxpython ×2

c++ ×1

python-2.7 ×1

size ×1