PyQt встроил PuTTY / KiTTY в приложение - не может удалить границу - PullRequest
0 голосов
/ 30 октября 2018

Я хочу создать небольшое приложение под Windows, используя python и QT (PyQt), и хочу внедрить его в консоль ssh этого приложения. Я пытаюсь использовать PuTTY и KiTTY, но я не могу удалить границы (WS_BORDER, WS_CAPTION).

exePath = "putty.exe sample_login@sample_host"
subprocess.Popen(exePath) # Run SSH Putty session
time.sleep(1)

hwnd = win32gui.FindWindowEx(0, 0, None, "sample_host - PuTTY") # Get hwnd of started putty 
style = win32gui.GetWindowLong(hwnd, win32con.GWL_STYLE)

print("hwnd ",hwnd)
print("style ", style)
style = style - int(win32con.WS_CAPTION) - int(win32con.WS_THICKFRAME)
print("style after ", style)
win32gui.SetWindowLong(hwnd, win32con.GWL_STYLE, style) # Apply modified style to Putty windidow

# Here my Putty windows looks exacly what I want - it show only SSH console and scroolbar, without titlebar, close button, frame, border etc.


self.window = QWindow.fromWinId(hwnd)
self.widget = QWidget.createWindowContainer(self.window, self)
self.widget.resize(600, 600)
self.widget.move(50, 50)

self.setGeometry(100, 100, 900, 900)
self.setWindowTitle('Putty test')
self.show()

# Here my Putty windows was already appended to PyQt app, but border / frame  was appear.

Я пытаюсь смешать несколько стилей Windows, но не могу этого достичь. Я также пробую эту хитрость с другим приложением, таким как блокнот или Windows calc, и в этом случае все работает нормально (приложение было встроено без рамки / рамки)

Ниже приведен экран ситуации, которая была у меня до внедрения Putty и после. Я пытаюсь добиться ситуации как слева после встраивания окна (отображать только консоль). enter image description here

...