Hallo zusammen,
möchte mal nachfragen, ob es möglich ist mit z.B. Q.CTRL + Q.Key_Up auf den ersten Toolbutton den Fokus zu setzen?
Grüße Nobuddy
QToolBar - Fokus setzen
Ist es nicht eher ueblich, Shortcuts fuer Toolbar-Elemente zu machen? So kenne ich das zumindest von Word & Co. Der eine klickt, der andere macht es per Keyboard. Aber wer eine GUI per keyboard navigieren will (mache ich oft) wuerde doch niemals da rein per Key den Focus legen, und sich dann muehselig mit Tabs und Arrow-Keys irgendwo hinhangeln.
Ja, das mit den Shortcuts, ist klar.
Ist eine spezielle Idee meinerseits. Ein QMainWindow mit eine Toolbar wird gestartet. Nach dem Start, würde ich gerne den Fokus auf den ersten Toolbutton der Toolbar setzen, um anschließend mit den Richtungstasten left/right den gewünschten Toolbutton auszuwählen und auszuführen.
Wäre das möglich?
Ist eine spezielle Idee meinerseits. Ein QMainWindow mit eine Toolbar wird gestartet. Nach dem Start, würde ich gerne den Fokus auf den ersten Toolbutton der Toolbar setzen, um anschließend mit den Richtungstasten left/right den gewünschten Toolbutton auszuwählen und auszuführen.
Wäre das möglich?
Du könntest beim Start den Fokus auf den ersten Button legen und dann mit den Richtungstasten left/right arbeiten.
Code: Alles auswählen
from PyQt5.QtWidgets import (QMainWindow, QApplication, QVBoxLayout, QHBoxLayout,
QWidget, QPushButton)
class MainWindow(QMainWindow):
def __init__(self, parent = None):
super(MainWindow, self).__init__(parent)
self.setupUI()
def setupUI(self):
self.setGeometry(0, 0, 800, 600)
self.setStyleSheet(mystylesheet(self))
central_widget = QWidget()
self.setCentralWidget(central_widget)
vbox = QVBoxLayout()
central_widget.setLayout(vbox)
self.tool_bar = self.addToolBar("File")
self.btn_new = QPushButton("New")
self.tool_bar.addWidget(self.btn_new)
self.btn_open = QPushButton("Open")
self.tool_bar.addWidget(self.btn_open)
self.btn_save = QPushButton("Save")
self.tool_bar.addWidget(self.btn_save)
self.btn_new.setFocus()
def mystylesheet(self):
return """
QPushButton::focus{
background-color: #99c1f1; }
"""
if __name__ == '__main__':
import sys
app = QApplication(sys.argv)
win = MainWindow()
win.setWindowTitle("Main Window")
win.show()
sys.exit(app.exec_())
OS: LMDE5 *** Homepage *** Github Seite
Hier noch mit Shortcut (ctrl+up)
Code: Alles auswählen
from PyQt5.QtWidgets import (QMainWindow, QApplication, QVBoxLayout, QHBoxLayout,
QWidget, QPushButton, QShortcut)
from PyQt5.QtGui import QKeySequence
class MainWindow(QMainWindow):
def __init__(self, parent = None):
super(MainWindow, self).__init__(parent)
self.setupUI()
def setupUI(self):
self.setGeometry(0, 0, 800, 600)
self.setStyleSheet(mystylesheet(self))
central_widget = QWidget()
self.setCentralWidget(central_widget)
self.short_cut = QShortcut(QKeySequence('Ctrl+Up'), self)
self.short_cut.activated.connect(self.set_focus)
vbox = QVBoxLayout()
central_widget.setLayout(vbox)
self.tool_bar = self.addToolBar("File")
self.btn_new = QPushButton("New")
self.tool_bar.addWidget(self.btn_new)
self.btn_open = QPushButton("Open")
self.tool_bar.addWidget(self.btn_open)
self.btn_save = QPushButton("Save")
self.tool_bar.addWidget(self.btn_save)
self.set_focus()
def set_focus(self):
print("focus on first button")
self.btn_new.setFocus()
def mystylesheet(self):
return """
QPushButton::focus{
background-color: #99c1f1; }
"""
if __name__ == '__main__':
import sys
app = QApplication(sys.argv)
win = MainWindow()
win.setWindowTitle("Main Window")
win.show()
sys.exit(app.exec_())
OS: LMDE5 *** Homepage *** Github Seite
Hallo Axel-WAK,
Danke für Deine Codebeispiele!
Habe meine Toolbar mit QAction, statt QPushButton erstellt.
Mit QAction lässt sich das wohl nicht so umsetzen, wie in Deinem Beispiel mit QPushButton.
Werde meine Toolbar entsprechend umschreiben, dann lässt sich damit mein Vorhaben verwirklichen!
Grüße Nobuddy
Danke für Deine Codebeispiele!
Habe meine Toolbar mit QAction, statt QPushButton erstellt.
Mit QAction lässt sich das wohl nicht so umsetzen, wie in Deinem Beispiel mit QPushButton.
Werde meine Toolbar entsprechend umschreiben, dann lässt sich damit mein Vorhaben verwirklichen!
Grüße Nobuddy
Habe noch eine Frage zu QFileDialog.getOpenFileName.
Hier würde ich auch gerne mit einem Shortkey, auf das Auswahlfenster für Ordner und Dateien kommen.
Wenn ich nur lange genug mit der TAB-Taste klicke, komme ich auch auf das Auswahlmenü, ist aber kontraproduktiv.
Hoffe, Ihr könnt mir da einen Tipp geben, wie ich das erreichen kann.
Grüße Nobuddy
Hier würde ich auch gerne mit einem Shortkey, auf das Auswahlfenster für Ordner und Dateien kommen.
Wenn ich nur lange genug mit der TAB-Taste klicke, komme ich auch auf das Auswahlmenü, ist aber kontraproduktiv.
Hoffe, Ihr könnt mir da einen Tipp geben, wie ich das erreichen kann.
Grüße Nobuddy
Hallo __deets__,
Danke für die Info!
Habe versucht über den eventFilter versucht das Objekt ausfindig zu machen. Aber da kommt nichts, da habe ich mir dies fast gedacht.
Das lässt sich verkraften, wenn sonst alles andere über Shortkey's funktioniert.
Grüße Nobuddy
Danke für die Info!
Habe versucht über den eventFilter versucht das Objekt ausfindig zu machen. Aber da kommt nichts, da habe ich mir dies fast gedacht.
Das lässt sich verkraften, wenn sonst alles andere über Shortkey's funktioniert.

Grüße Nobuddy
Was ist mit Auswahlfenster/Auswahlmenü gemeint?
Wenn ich (in Linux LMDE5) den Open Dialog öffne brauche ich nur die linke Pfeiltaste zu drücken und schon bin ich auf der linken Seite.
Wenn ich (in Linux LMDE5) den Open Dialog öffne brauche ich nur die linke Pfeiltaste zu drücken und schon bin ich auf der linken Seite.
OS: LMDE5 *** Homepage *** Github Seite
Unter Linux ist das im Zweifel ein Qt-Dialog, weil es ja kein festes System-Toolkit gibt. Aber es ist halt nicht standardisiert. Wenn ich hier in Chrome unter Ubuntu C-o druecke, bringt mich Pfeil-links nirgendwohin, weil der Cursor unten in der Texteingabe fuer den Dateinamen steht.
Bei mir ist es so das der Open Dialog in PyQt5 und python3 Gtk absolut identisch ist und sich auch identisch verhält. Eine Texteingabe für den Dateinamen gibt es beim Open Dialog nicht, nur beim Save Dialog.
OS: LMDE5 *** Homepage *** Github Seite
- __blackjack__
- User
- Beiträge: 14021
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@Axel-WAK: Sicher das es die Texteingabe nicht gibt? Ich kann einfach anfangen Text einzugeben. Entweder wird der Name direkt im aktuell angezeigten Ordner gesucht, oder bei Zeichen wie / oder .. verwandelt sich die ”graphische” Pfadangabe über der Liste in ein Texteingabefeld.
„A life is like a garden. Perfect moments can be had, but not preserved, except in memory. LLAP” — Leonard Nimoy's last tweet.
Texteingabe gibt es erst wenn man anfängt zu tippen.
OS: LMDE5 *** Homepage *** Github Seite