не могу установить положение wx.frame на openbox - PullRequest
0 голосов
/ 01 декабря 2019

Я играю с wxPython и пытаюсь установить положение кадра:

import wx

app = wx.App()
p = wx.Point(200,  200)
frame = wx.Frame(None, title = 'test position', pos = p)
frame.Show(True)
print('frame position: ', frame.GetPosition())

app.MainLoop()

, хотя print('frame position: ', frame.GetPosition()) показывает правильное положение, рамка отображается в верхнем левом углу экрана. В качестве альтернативы я попытался

frame.SetPosition(p)
frame.Move(p)

безуспешно.

Моя среда: ArchLinux 5.3.13, python 3.8.0, wxpython 4.0.7, openbox 3.6.1

Вкл. cinnamom код работает как положено. Как решить эту проблему в openbox?

edit 07,12,2019: я могу установить положение диалога в конфигурации openbox ~/.config/openbox/rc.xml:

<application name="fahrplan.py"
            class="Fahrplan.py"
        groupname="fahrplan.py"
       groupclass="Fahrplan.py"
            title="Fahrplan *" 
             type="dialog"> 
  <position force="no"> 
    <x>760</x> 
    <y>415</y>
  </position>               
</application>

я получил имя, класс и т. Д. из obxprop. x и y рассчитываются для центрирования диалогового окна размером 400 x 250 пикселей на экране 1920 x 1080 пикселей.

Это статическое решение мне не подходит. Я хочу разместить динамически генерируемые всплывающие окна.

1 Ответ

0 голосов
/ 06 декабря 2019

Позиция предоставляется оконному менеджеру в виде «подсказки». Это полностью зависит от оконного менеджера, будет ли он на самом деле соблюдать подсказку или нет. Проверьте параметры или настройки openbox и посмотрите, есть ли что-то релевантное, что можно изменить.

...