J'ai une entrée de console dans mon application basée Qt
, c'est un QLineEdit
, tous Ui est conçu via QtDesigner
. Est-ce un moyen facile de gérer les flèches haut et bas afin de mettre en œuvre l'historique des entrées? Le « aller à la fente » ne montrer le signal returnProcessed
, aucun moyen que je peux voir pour gérer flèches haut et bas :(QLineEdit: comment gérer les flèches haut et bas?
Répondre
vous pouvez install event filter et regarder votre événement d'édition de ligne dans votre classe de fenêtre Voici un exemple:.
méthode de gestionnaire d'événementsannoncez votre classe de fenêtre:
class MainWindow : public QMainWindow {
Q_OBJECT
...
protected:
void changeEvent(QEvent *e);
...
};
constructeur de fenêtre
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
...
ui->lineEdit->installEventFilter(this);
}
mise en œuvre du gestionnaire d'événements
:
bool MainWindow::eventFilter(QObject* obj, QEvent *event)
{
if (obj == ui->lineEdit)
{
if (event->type() == QEvent::KeyPress)
{
QKeyEvent* keyEvent = static_cast<QKeyEvent*>(event);
if (keyEvent->key() == Qt::Key_Up)
{
qDebug() << "lineEdit -> Qt::Key_Up";
return true;
}
else if(keyEvent->key() == Qt::Key_Down)
{
qDebug() << "lineEdit -> Qt::Key_Down";
return true;
}
}
return false;
}
return QMainWindow::eventFilter(obj, event);
}
espérons que cette aide, ce qui est
Vous pouvez sous-classe QLineEdit et re-mettre en œuvre la méthode de keyPressEvent virtuelle pour gérer vos clés spéciales.
void MyLineEdit::keyPressEvent(QKeyEvent *event)
{
if(event->key() == Qt::Key_Up){
// move back in history
}
else if(event->key() == Qt::Key_Down){
// move forward in history
}
else{
// default handler for event
QLineEdit::keyPressEvent(event);
}
}
Il est une bonne idée. Mais comment combiner QLineEdit sous-classe avec Ui généré par QtDesigner? – grigoryvp
Voir: http://doc.trolltech.com/4.6/designer-creating-custom-widgets.html –
Donc, afin de se lever les flèches ad down fonctionnant, j'ai besoin de mettre en œuvre un plugin QtDesigner entier avec des tonnes de fonctions qui définit comment utiliser un "nouveau" widget? :( – grigoryvp
J'ai eu le même problème, mais je trouve dans d'autres forums que vous devez setFocus
, par exemple:
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
...
ui->lineEdit->installEventFilter(this);
this->setFocus();
}
Ca marche pour moi.
Référence: http://www.qtforum.org/article/28240/how-to-get-arrow-keys.html
- 1. Flèches du clavier vers le haut et vers le bas
- 2. Comment faire pour désactiver les flèches haut et bas pour une zone de liste Silverlight?
- 3. Variable DWORD avec mot bas/haut et octet bas/haut
- 4. Configuration des flèches haut et bas pour faire défiler l'historique dans le shell Python
- 5. Comment empêcher le comportement par défaut de flèches haut/bas dans un objet TextField?
- 6. Jquery glisser vers le haut et vers le haut avec des flèches
- 7. étendre un en-tête de colonne spécifique pour inclure des flèches haut/bas
- 8. Renverser les UIViews de haut en bas
- 9. haut et bas niveau graphiques dans J2ME
- 10. Double Image d'arrière-plan haut et bas
- 11. Sélectionnez les lignes du haut et du bas
- 12. Que sont les filtres passe-haut et passe-bas?
- 13. Flèches haut/bas dans la barre de navigation de la vue détaillée pour parcourir les objets dans la table parent
- 14. comment régler égale haut et bas de l'image dans Android?
- 15. Comment flouter le bas et le haut de la bordure?
- 16. Spécification d'images pour haut, bas, gauche et droite. Comment faire?
- 17. Comment désactiver les boutons haut/bas dans la QDoubleSpinBox
- 18. Comment définir les images pour les flèches, glisser et suivre dans la nouvelle version de jScrollPane?
- 19. Exemple de forage haut/bas?
- 20. Structure du groupe ACL: de haut en bas ou de bas en haut?
- 21. WPF Arbre logique - bas vers le haut par rapport haut vers le bas
- 22. avancé css: haut et en bas avec le centre souple
- 23. Comment échanger flèche haut/bas comportement clé et le comportement cN/Cp dans emacs * w3m * tampon
- 24. html div avec le texte en haut et en bas
- 25. Rembourrage le haut et le bas de l'élément en ligne
- 26. Exemple d'animation de bas en haut
- 27. Blackberry - Petit Haut Bas Bouton Flèche
- 28. dossier de promenade, bas vers le haut
- 29. Comment convertir le haut en bas et remplacer les espaces par des tirets?
- 30. Dans Visio, comment obtenir les flèches normales? (Les flèches de ligne ne sont pas les triangles)
Une façon de simplifier encore serait d'ajouter le filtre d'événement au QLineEdit lui-même, alors vous ne devriez pas vous soucier de l'argument obj, plus , vous pouvez l'appliquer à plusieurs QLineEdits (étant donné que vous utilisez obj en réagissant à l'événement) – e8johan
Merci, fonctionne comme un charme :) – grigoryvp