Seite 1 von 1
wx.TextCtrl: Position des Cursors setzen.
Verfasst: Sonntag 21. Januar 2007, 22:02
von name
Hallo, ich bins schon wieder und wuerde gerne wissen wie ich die Position des Cursors(dem blinkendem Ding nach dem die Zeichen erscheinen

) in einem TextCtrl auf eine bestimmte Position setze, bzw die Position des Cursors rausbekomme, beides wuerde ich eigentlich brauchen.
Danke fuers Lesen und im vorraus fuer alle Antworten!
PS. Falls einer weiss wie ich den markierten Text in einem TextCtrl bekomme waere ich auch dankbar

Zweiteres habe ich schon rausgefunden:
GetStringSelection()
Verfasst: Sonntag 21. Januar 2007, 22:40
von gerold
Hallo name!
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: iso-8859-1 -*-
import wx
import wx.lib.fancytext as fancytext
wx.SetDefaultPyEncoding("iso-8859-1")
class MyFrame(wx.Frame):
def __init__(
self, parent = None, id = -1, title = "Example", size = wx.Size(550, 420)
):
wx.Frame.__init__(self, parent, id, title, size = size)
self.lastfocus = None
panel = wx.Panel(self)
vbox_main = wx.BoxSizer(wx.VERTICAL)
panel.SetSizer(vbox_main)
self.txt1 = wx.TextCtrl(panel, size = wx.Size(600, 200), style = wx.TE_MULTILINE)
vbox_main.Add(self.txt1, 1, wx.EXPAND | wx.ALL, 5)
self.txt2 = wx.TextCtrl(panel, size = wx.Size(-1, 100), style = wx.TE_MULTILINE)
vbox_main.Add(self.txt2, 0, wx.ALL | wx.EXPAND, 5)
panel.Fit()
self.Fit()
self.SetSizeHints(*self.GetSize())
self.timer = wx.Timer()
self.timer.Bind(wx.EVT_TIMER, self.on_timer)
self.timer.Start(1500)
def on_timer(self, event):
txt1 = self.txt1
txt2 = self.txt2
txt2.AppendText("\nCursor Pos: %03i; " % txt1.GetInsertionPoint())
txt2.AppendText("Last Pos: %03i; " % txt1.GetLastPosition())
txt2.AppendText("Lines %03i; " % txt1.GetNumberOfLines())
sel = txt1.GetSelection()
txt2.AppendText(
"Selection: (%i, %i) '%s'='%s'" % (
sel[0], sel[1], txt1.GetRange(*sel), txt1.GetStringSelection()
)
)
def main():
"""Testing"""
app = wx.PySimpleApp()
f = MyFrame()
f.Center()
f.Show()
app.MainLoop()
if __name__ == "__main__":
main()
mfg
Gerold

Verfasst: Sonntag 21. Januar 2007, 22:57
von name
Hm. Ich muesste die Pos des Cursors bestimmen wenn das Objekt abgewaehlt wird, gibts dazu auch eine Moeglichkeit, und gerold, danke danke danke fuer deine Hilfe!
Verfasst: Montag 22. Januar 2007, 07:22
von gerold
name hat geschrieben:Ich muesste die Pos des Cursors bestimmen wenn das Objekt abgewaehlt wird
Hi name!
Ich würde, wenn das TextCtrl den Fokus verliert, die Position zwischenspeichern. Diese kannst du dann jederzeit weiterverwenden.
http://paste.pocoo.org/show/731/
mfg
Gerold
