Qt

2010-12-03 39 views
22

'daki uygulama genelinde "kısayol tuşu" yanıtı veriliyor Basit bir Qt uygulamasına sahibim ve hangi pencere öğesinin odaklandığından bağımsız olarak, yalnızca F12 anahtarına yanıt vermek istiyorum.Qt

Bazı kolay sinyaller var mı?

Ana pencerenin tam ekranını açmak/kapatmak için F12 tuşunu kullanmak istiyorum.

+0

Kullanıcının bunu yapılandırmasına izin verdiğinizden emin olun. Aynı özelliğe sahip başka birçok program var. – Falmarri

+0

Falmarri: Ne demek istediğinden emin değilim. Kullanıcının tam ekran modunu değiştirmek için hangi kısayol tuşunu kullanacağına karar vermesini mi istiyorsunuz? Teşekkürler. – sidewinderguy

cevap

26

burada çalıştı, ancak henüz ne yapardım geçerli:

Qt::ApplicationShortcut bir QShortcut oluşturun ve onun context (setContext() ile) emin olun.

shortcut = new QShortcut(QKeySequence(Qt::Key_F12), parent); 
shortcut->setContext(Qt::ApplicationShortcut); 

Sonra sadece QShortcut::activated() sinyale bir yuva bağlamak gerekir.

+0

Mükemmel! Tam olarak ihtiyacım olan buydu. Hızlı cevap için teşekkürler! : -D – sidewinderguy

+0

Bu, nasıl yapılacağını bir kez gördüğünüzde, belli görünüyor. Ama bana göstermeden önce hiçbir fikrim yoktu. ;-) – sidewinderguy

+0

Ayrıca QKeyEvents – Max13

1

Diğer tüm parçacıkların çocuk olduğu bir "merkezi pencere öğesi" varsa, bunu QShortcut için pencere öğesi bağımsız değişkeni olarak ayarlayabilirsiniz.

(Python, qt5)

self.centralwidget = QtWidgets.QWidget(MainWindow) 

QtWidgets.QShortcut(QtGui.QKeySequence("F12"), self.centralwidget, self.goFullScreen) 

Ben kısayol bağlam bayrağı çünkü cevap olarak bu ekledi: Qt.ApplicationShortcut benim için çalışmadı.