Прежде всего, вы не создаете классы внутри других классов, это считается плохой практикой. С другой стороны, то, что возвращает слот, не используется, так как никто не получает его, поэтому то, что возвращает getValue, будет потеряно, что вы должны сделать, это то, что нажатый вызов принимает закрытие QDialog и после проверки того, что диалог был принят, у вас просто есть вызвать getValue:
class ValuePanel(QtGui.QDialog):
def __init__(self):
super(ValuePanel, self).__init__()
self.lineEdit = QtGui.QLineEdit()
getValueButton = QtGui.QPushButton('Get Value')
getValueButton.clicked.connect(self.accept)
layout = QtGui.QHBoxLayout(self)
layout.addWidget(self.lineEdit)
layout.addWidget(getValueButton)
def getValue(self):
value = str(self.lineEdit.text())
return value
class Example(QtGui.QWidget):
def __init__(self):
super(Example,self).__init__()
button = QtGui.QPushButton('Get Value')
button.clicked.connect(self.someFunction)
layout = QtGui.QVBoxLayout(self)
layout.addWidget(button)
@QtCore.Slot()
def someFunction(self):
value_panel = ValuePanel()
if value_panel.exec_() == QtGui.QDialog.Accepted:
print(value_panel.getValue())