I'm using PySide2 and creating a combobox, I'm trying to send the selected value when pressing the submit button, visual example:

when pressing submit test1 should be print on teminal, I tried using Slots but when pressing on the submit button nothing happens.
my code: main.py:
import sys
import os
from os.path import join, dirname, abspath
from PySide2.QtCore import QStringListModel, QObject, Slot
from PySide2.QtGui import QGuiApplication
from PySide2.QtQml import QQmlApplicationEngine
class Combo(QObject):
def __init__(self, parent=None):
super().__init__()
self.model = QStringListModel(['test1', 'test2'])
@Slot(str, result=None)
def submit(self, text_val):
print('test')
print(text_val, self.model.text)
if __name__ == '__main__':
app = QGuiApplication(sys.argv)
engine = QQmlApplicationEngine()
comobo_box = Combo()
context = engine.rootContext()
context.setContextProperty("comobo_box", comobo_box)
context.setContextProperty("stringModel", comobo_box.model)
qmlFile = join(dirname(__file__), r'main.qml')
engine.load(abspath(qmlFile))
if not engine.rootObjects():
sys.exit(-1)
app.exec_()
main.qml:
import QtQuick 2.15
import QtQuick.Window 2.15
import QtQuick.Layouts 1.15
import QtQuick.Controls 2.15
Window {
id: window
visible: true
height: 200
width: 400
property string textVal: ""
Rectangle {
color: '#041645'
id: mainArea
anchors.fill: parent
ColumnLayout {
anchors.fill: parent
ComboBox {
id: cBox
Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter
model: stringModel
textRole: "display"
Button {
id: submit
x: -50
y: 100
text: qsTr("Submit")
onClicked: {
comobo_box.submit(model.text)
}
}
Button {
id: cancel
x: 75
y: 100
text: qsTr("Cancel")
onClicked: {
window.close()
}
}
}
RowLayout{
Layout.alignment: Qt.AlignHCenter
}
}
}
}