Hey,

 

You could use actions:

https://gist.github.com/tibold/7451adb89c41c3718148168cee191ac3

 

Tibold Kandrai

Software Architect & Engineer

 

From: PySide [mailto:[email protected]] On 
Behalf Of Frank Rueter | OHUfx
Sent: Monday, 11 July, 2016 09:17
To: Alexey Vihorev <[email protected]>
Cc: [email protected]
Subject: Re: [PySide] QShortcut suppressed by parent widget?

 

Thanks, but it doesn't seem to make a difference.

On 07/11/2016 07:13 PM, Alexey Vihorev wrote:

self.shortcut = QtGui.QShortcut(self, context=QtCore.Qt.WidgetShortcut)

The context. In your case IMO it should be QtCore.Qt.WindowShortcut. More here 
<http://doc.qt.io/qt-4.8/qt.html#ShortcutContext-enum> 

 

2016-07-11 9:30 GMT+03:00 Frank Rueter | OHUfx <[email protected] 
<mailto:[email protected]> >:

Hi all,

below is some test code that shows the problem I'm having, where a shortcut 
assigned to a child widget will not be triggered once it's part of the main 
widget.
It works if the widget is called by itself but not when it's part of a parent 
widget.

I have been searching the internet for an solution but haven't had any luck.

Does anybody know what I'm doing wrong?

Cheers,
frank

import sys
from PySide import QtGui, QtCore


class MainWidget(QtGui.QWidget):
    
    def __init__(self, parent=None):
        super(MainWidget, self).__init__(parent)
        self.makeUI()
       
    def makeUI(self):
        self.layout = QtGui.QHBoxLayout()
        self.setLayout(self.layout)
        sw1 = SubWidget('test1')
        sw2 = SubWidget('test2')
        sw3 = SubWidget('test3')
        self.layout.addWidget(sw1)
        self.layout.addWidget(sw2)
        self.layout.addWidget(sw3)

class SubWidget(QtGui.QLabel):
    def __init__(self, text, parent=None):
        super(SubWidget, self).__init__(parent)
        self.setText(text)  
        self.shortcut = QtGui.QShortcut(self, context=QtCore.Qt.WidgetShortcut)
        self.shortcut.setKey('i')
        self.shortcut.activated.connect(self.showInfoWidget)

    def showInfoWidget(self, text):
        print 'showing info for', self.text()


if __name__ == '__main__':
    app = QtGui.QApplication([])
    w = MainWidget()
    w.show()
    sys.exit(app.exec_())




-- 


 <http://www.ohufx.com> 

vfx compositing <http://ohufx.com/index.php/vfx-compositing>  | workflow 
customisation and consulting <http://ohufx.com/index.php/vfx-customising>  


_______________________________________________
PySide mailing list
[email protected] <mailto:[email protected]> 
http://lists.qt-project.org/mailman/listinfo/pyside




-- 

Алексей Вихорев

 

_______________________________________________
PySide mailing list
[email protected]
http://lists.qt-project.org/mailman/listinfo/pyside

Reply via email to