techartorg / bqt

A Blender add-on to support & manage Qt Widgets in Blender (PySide2)

Home Page:https://github.com/techartorg/bqt/wiki

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

first time qt window size is too small

hannesdelbeke opened this issue · comments

when blender is wrapped in qt for the first time
the window is too small

we can get the size from blender window before we wrap it, and the set the wrapped window to this size.

see private note "Blender window size"

import ctypes
from bqt.blender_applications.win32_blender_application import get_process_hwnds
from ctypes import wintypes  
user32 = ctypes.windll.user32

process_windows = get_process_hwnds()
for win in process_windows:  
	# get height and width  
	rect = wintypes.RECT()  
	user32.GetWindowRect(win.hwnd, ctypes.byref(rect))  
	height = rect.bottom - rect.top  
	width = rect.right - rect.left  
	print(height, width)
  
import bpy  
print("height bpy", bpy.context.window_manager.windows[0].height, "width", bpy.context.window_manager.windows[0].width)
type height width
main window user32 2065 2124
main window bpy 2009 2102
main window diff 56 22

when qt wrapped window is 0 height. bpy returns 0
but qt returns 56 height. likely the title bar height
measure with powertoys returns 28 pixels height
windows, 150% scale on 3840 x 2160px

  • also window moves position

turns out we didnt need the fancy ctypes stuff. we can just get size and pos from the blender window with bpy
works on all OS with no extra effort for us