Что приводит к смещению формы из сохраненного положения экрана при перезагрузке? - PullRequest
0 голосов
/ 31 октября 2019

При реализации метода frm_obj.setGeometry(x_pos, y_pos, h_dim, v_dim) для восстановления сохраненной позиции и размера форма иногда смещается на 31 пиксель вверх и на 8 пикселов влево от сохраненной позиции. 31px - высота строки заголовка;Я понятия не имею, откуда происходит разница в 8px. Я могу добавить функцию move() с теми же значениями для x и y после setGeometry(), чтобы исправить ее;однако тогда он может (или не может) перемещаться вниз и вправо 31 и 8 пикселей соответственно.

Что может вызвать это и как я могу проверить это условие?

Код, который извлекает и задает геометрию формы, выглядит примерно следующим образом:

def get_geom(frm):
        config = configparser.RawConfigParser()
        config.read('settings.cfg')
        x_pos = int(config.get('dialogPos', 'xpos'))
        y_pos = int(config.get('dialogPos', 'ypos'))
        h_dim = int(config.get('dialogPos', 'hdim'))
        v_dim = int(config.get('dialogPos', 'vdim'))
        frm.setGeometry(x_pos, y_pos, h_dim, v_dim)
        # The move() function seems to "randomly" cause the form to crawl down/right 31x8 px
        # Without it, it "randomly" crawls up/left the same dimentions.
        frm.move(x_pos, y_pos)

...