add tag
Chris Barry
#! /usr/bin/python3

import sys

import wx

class App(wx.App):
	def __init__(self, redirect=False, filename=None, useBestVisual=False, clearSigInt=True):
		super().__init__(redirect=redirect, filename=filename, useBestVisual=useBestVisual,
		self.SetTopWindow(wx.Frame(None, title='Initial top window'))
		szr = wx.GridBagSizer()
		self.lbl_a = wx.StaticText(self.GetTopWindow(), wx.ID_ANY, 'Label &a Padding')
		self.txt_a = wx.TextCtrl(self.GetTopWindow(), wx.ID_ANY)
		self.lbl_b = wx.StaticText(self.GetTopWindow(), wx.ID_ANY, 'Label &b')
		self.txt_b = wx.TextCtrl(self.GetTopWindow(), wx.ID_ANY)
		self.lbl_c = wx.StaticText(self.GetTopWindow(), wx.ID_ANY, 'Label c')
		self.txt_c = wx.TextCtrl(self.GetTopWindow(), wx.ID_ANY)
		szr.Add(self.lbl_a, wx.GBPosition(0, 0), span=wx.GBSpan(1, 2))
		szr.Add(self.txt_a, wx.GBPosition(0, 2))
		szr.Add(self.lbl_b, wx.GBPosition(1, 1), span=wx.GBSpan(1, 1))
		szr.Add(self.txt_b, wx.GBPosition(1, 2))
		szr.Add(self.lbl_c, wx.GBPosition(2, 0), span=wx.GBSpan(1, 1))
		szr.Add(self.txt_c, wx.GBPosition(2, 2))

app = App()

This code creates a top-level window with a gridbag sizer and puts three TextCtrl fields in it, each preceded by a StaticText label, two of which have accelerators.

When I run it on Linux it works as I expected - I can move between fields using the mouse, Tab and Shift-Tab keys, up and down arrows, and accelerator keys (Alt-a and Alt-b).

When I run it under Windows Tab and accelerator keys have no effect and up and down arrows have the same effect as left and right.

When I run under Windows the console displays the message: "Error: Unable to set default locale: Unsupported locale setting." I have not yet tried to follow this up as it did not seem to be relevant.

The Linux platform is a more-or-less standard Arch distribution. The Windows is 32-bit Windows 7 running under Qemu. As a test I ran Windows Media Player. Tab and accelerator keys worked.

What might I have overlooked?

This room is for discussion about this question.

Once logged in you can direct comments to any contributor here.

Enter question or answer id or url (and optionally further answer ids/urls from the same question) from

Separate each id/url with a space. No need to list your own answers; they will be imported automatically.