Ich benutze QtDesigner (4.8.7), um einen QDialog zu erstellen, der als Hauptinteraktionspunkt für ein QGIS-Plugin dient, das ich erstelle. Der größte Teil der Benutzereingabe wird über verschiedene QLineEdit-Felder eingegeben, von denen einige einen placeholderText
-Satz haben.QDialogfelder nicht automatisch fokussieren
Leider wird jedes Mal, wenn der QDialog geöffnet wird, sofort ein QLineEdit-Feld ausgewählt (d. H. Es wird fokussiert), wodurch der PlatzhalterText verschwindet, damit der Benutzer Text eingeben kann. Daher frage ich mich, ob es möglich ist, einen QDialog zu erstellen, der sich nicht automatisch auf ein Feld konzentriert. Dies würde es dem Endbenutzer meines Plugins ermöglichen, die Platzhaltertexte vor der Eingabe eines Wertes selbst zu überprüfen.
ich zur Zeit die QDialog Initialisierung wie folgt:
import PyQt4.QtGui as QTG
import PyQt4.QtCore as QTC
from dialog_ui import Ui_dialog
class UI (object):
def __init__(self, iface):
# iface is just a way to interact with QGIS
self.iface = iface
self.container = QTG.QDialog()
self.ui = Ui_dialog()
self.setup()
def setup(self):
self.ui.setupUi(self.container)
# Custom ui setup code follows after this...
# Called by an external function
def show(self):
self.container.exec_()
Dies funktioniert zunächst, aber das Problem tritt erneut auf, sobald der Benutzer ein Feld auswählt. – mathsaey
@mathsaey. Ja - deshalb habe ich die alternative Lösung 'setFocus()' genannt ;-) – ekhumoro