Форум сайта python.su
oDoDoНу таки отлично. Понятно что надо. Решение - делаете окно, а в нем 4 панели, которые очевидно не делайте пересекающимися.
Допустим я хочу вывести несколько окон(4) чтобы они не пересекались
PEHDOM
ну почемуже, вполне нормальный кейс, когда ГУИ приложение при запуске опрашивает систему на предмет выставленого разрешения.
Отредактировано doza_and (Июнь 13, 2020 19:15:46)
Офлайн
doza_andну самый банальный случай: при закрытии программа запоминает размер окна, и его положение, а при следующем запуске, окно окрываеться ровно того же размера ровно в том же месте. А разрешение монитора мне нужно чтобы проверить не изменилось ли оно с тех пор. Потому что если изменилось в меньшую сторону то возможен ариант, что если окно откроеться того же размера ровно в том же месте, то оно или частично выйдет за пределы видимой пользователю области, или полностью.
Но мне трудно понять зачем вам разрешение всего монитора.
[code python][/code]
Отредактировано PEHDOM (Июнь 14, 2020 12:27:09)
Офлайн
PEHDOMНу вот как раз в этом банальном случае вопрос элементарно решается настройками оконного менеджера, как я собственно и писал выше.
при закрытии программа запоминает размер окна, и его положение
Офлайн
doza_andя чтото сомневаюсь что оконный менеджер это все “могет”. Или приведите пример, например на py(Side\Qt)/tkinter/wx из серии:ГУИ приложение с одной кнопкой “закрыть”, пользователь може перещасть или произвольно менять положение приложения. При первом запуске оно располагаеться ровно по центру экрана. При закрытии оно запоминает положение и размер, и при следующем запуске восстанавливает. если после восстановления окно частично или полностью не видно пользователю/не помещаеться на экране, оно должно сместиться или изменить размер чтобы полностью помещаться на рабочем столе.
Те вы пытаетесь решить в приложении совершенно не его задачи. Размещение окон на десктопе, задача оконного менеджера а не отдельных приложений.
[code python][/code]
Отредактировано PEHDOM (Июнь 15, 2020 13:44:17)
Офлайн
doza_and на сколько знаю линуксовы де умеют запаминать положение окна (ну хотя бы вспомните такую фишку как сохранить сессию) учитывая что они написаны на qt, gtk итд то …
Отредактировано AD0DE412 (Июнь 15, 2020 15:55:27)
Офлайн
PEHDOMВы совершенно правы. Конечно не все.
я чтото сомневаюсь что оконный менеджер это все “могет”
PEHDOMТехнически это сделать не сложно:
ГУИ приложение с одной кнопкой “закрыть”,
import wx import json import os app = wx.App() frame = wx.Frame(None, title='Simple application') nm = "a.json" if os.path.exists(nm): with open(nm,"r") as f: pos=json.load(f) frame.SetPosition(pos) else: frame.Centre() def F(evt): pos = frame.GetPosition() frame.Destroy() with open(nm,"w") as f: json.dump(list(pos),f) frame.Bind(wx.EVT_CLOSE,F) frame.Show() app.MainLoop()
siz = wx.DisplaySize()
Отредактировано doza_and (Июнь 16, 2020 10:47:37)
Офлайн
doza_andтехнически вы не выполнили ТЗ.
Технически это сделать не сложно:
doza_andчушь собачья, допустим пользоветель оставил окно в виде:
Окно само пододвигается если не влезло на экран в том виде как его оставил пользователь? НЕ ПОЙДЕТ!!! в таком виде код никогда не приму. Пользователь всегда прав. Если он так разместил значит так тому и быть!!
doza_andЭто, батенька, ваш прокол, предвидение вот таких кейсов и делает програмиста програмистом, а иначе это просто codemonkey, котороый делает работу формально в лоб.
Небольшая притча о стандартности (случай из жизни). Многооконное приложение. Пользователь пришел и говорит, я этим окном пользуюсь постоянно. Сделайте мне галочку в настройках окно всегда сверху других окон. Ок! Не проблема.
Через 3 дня он приходит и говорит, ваша галочка сломалась и не работает, криворукие программеры!!
Починили быстро. Он за три дня вообще для всех окон приложения поставил галочку всегда сверху!!
[code python][/code]
Отредактировано PEHDOM (Июнь 16, 2020 13:52:30)
Офлайн
import pyautogui x, y = pyautogui.size() print(str(x / 2) + ' ' + str(y / 2) # координаты центра экрана
Офлайн
y_menya_est_mama
на самом деле вы используете аутоит (вроде оно так называется) и это работает тока в виндовс … и этот топик уже стар …
Офлайн