How to activate Key Press Event, in Pyqt5?

Viewed 48

Here is my Code. I want to capture a pressed key and print it. But Nothing will Happen, How to resolve it? I Have two classes. One is Create_Instance and another one is Main_Window. In My code, I have Only Lable items to display. How to activate it?

Edited

import sys
from PyQt5.QtWidgets import *

class Create_Instance(QWidget):
    def __init__(self,dict_item):
        super().__init__()

        self.dict_items = dict_item
        self.lbl = QLabel("This is My Label")
        self.vbox = QVBoxLayout()
        self.vbox.addWidget(self.lbl)
        self.setLayout(self.vbox)

    def keyPressEvent(self, event):
        print(event)
        print(self.dict_items)

class Main_Window(QWidget):
    def __init__(self):
        super(). __init__()
        self.setWindowTitle("Main Window")
        self.layout_main = QHBoxLayout()

        self.firstmenu_container = Create_Instance(dict_item="1")
        self.secondmenu_container = Create_Instance(dict_item="2")
        self.layout_main.addWidget(self.firstmenu_container)
        self.layout_main.addWidget(self.secondmenu_container)

        self.setLayout(self.layout_main)

def main():
    app = QApplication(sys.argv)
    ex = Main_Window()
    ex.show()
    sys.exit(app.exec_())

if __name__ == '__main__':
    main()
1 Answers

You must add the widget to the layout:

def __init__(self):
    super().__init__()
    self.setWindowTitle("Main Window")
    self.layout_main = QHBoxLayout()

    self.firstmenu_container = Create_Instance(dict_item="1")
    self.layout_main.addWidget(self.firstmenu_container)
    self.secondmenu_container = Create_Instance(dict_item="2")
    self.layout_main.addWidget(self.secondmenu_container)

    self.setLayout(self.layout_main)
Related