/**
 * Class MyWidget, derived from QWidget.
 */
function MyWidget(parentWidget) {
    QWidget.call(this, parentWidget);

    // make sure we can receive key events:
    this.focusPolicy = Qt.StrongFocus;

    // load ui file into widget:
    var loader = new QUiLoader();
    loader.setWorkingDirectory(new QDir(MyWidget.includeBasePath));
    var file = new QFile(MyWidget.includeBasePath + "/MyWidget.ui");
    file.open(makeQIODeviceOpenMode(QIODevice.ReadOnly, QIODevice.Text));
    var form = loader.load(file, parentWidget);
    file.close();
    destr(loader);

    // add layout to ensure content scales with widget:
    var layout = new QVBoxLayout();
    layout.addWidget(form, 0, Qt.AlignTop | Qt.AlignLeft);
    this.setLayout(layout);
}

MyWidget.prototype = new QWidget();
MyWidget.includeBasePath = includeBasePath;

/**
 * Reimplement keyPressEvent from QWidget to react to key press events:
 */
MyWidget.prototype.keyPressEvent = function(e) {
    if (e.key()==Qt.Key_A) {
        EAction.handleUserMessage("'A' key pressed");
    }
    QWidget.prototype.keyPressEvent.call(this, e);
};
