"""
summary: create a dockable container, and populate it with Qt widgets
description:
Using `ida_kernwin.PluginForm.FormToPyQtWidget`, this script
converts IDA's own dockable widget into a type that is
recognized by PyQt5, which then enables populating it with
regular Qt widgets.
level: beginner
"""
from PyQt5 import QtCore, QtGui, QtWidgets
class MyPluginFormClass(ida_kernwin.PluginForm):
def OnCreate(self, form):
"""
Called when the widget is created
"""
# Get parent widget
self.parent = self.FormToPyQtWidget(form)
self.PopulateForm()
def PopulateForm(self):
# Create layout
layout = QtWidgets.QVBoxLayout()
layout.addWidget(
QtWidgets.QLabel("Hello from PyQt"))
layout.addWidget(
QtWidgets.QLabel("Hello from IDAPython"))
self.parent.setLayout(layout)
def OnClose(self, form):
"""
Called when the widget is closed
"""
pass
plg = MyPluginFormClass()
plg.Show("PyQt hello world")