При реализации метода 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)