J'ai utilisé Qt 4.8.4 pour mon projet graphique écrit en C++. Maintenant, j'ai fusionné à Qt Version 5.7. Après un long processus d'adaptation de mon code, j'ai finalement ouvert mon interface graphique. Mais quand je lance mon calcul code je reçois toujours cette erreur:Qt C++ Erreur aucune fonction correspondante pour l'appel à 'QString :: QString (KeySequence)'
pas de fonction concordante pour appel à 'QString :: QString (keySequence)'
dans ces lignes:
action = popup->addAction(EnhTableWidget::tr("&Copy") + QLatin1Char('\t') + QString(QKeySequence(QKeySequence::Copy)));
...
action = popup->addAction(EnhTableWidget::tr("Delete") + QLatin1Char('\t') + QString(QKeySequence(QKeySequence::Delete)));
...
action = popup->addAction(EnhTableWidget::tr("Select All") + QLatin1Char('\t') + QString(QKeySequence(QKeySequence::SelectAll)));
Il semble que l'utilisation de QKeySequence est incorrecte. Du site Qt je ne peux pas voir le problème.
Est-ce que quelqu'un sait ce qui ne va pas?
Merci!
Ceci est (en partie) mon code:
#include "EnhTableWidget.h"
#include <QKeyEvent>
#include <QApplication>
#include <QClipboard>
#include <QHeaderView>
#include <QKeySequence>
#include <QAction>
EnhTableWidget::EnhTableWidget(QWidget *parent) :
QTableWidget(parent)
{}
void EnhTableWidget::keyPressEvent(QKeyEvent *event)
{
if (event->matches(QKeySequence::Copy))
copy();
else if (event->matches(QKeySequence::Delete) || event->key() == Qt::Key_Backspace)
deleteSelected();
else if (event->matches(QKeySequence::SelectAll))
selectAll();
else
QTableWidget::keyPressEvent(event);
}
QMenu *EnhTableWidget::createStandardContextMenu()
{
QMenu *popup = new QMenu(this);
popup->setObjectName(QLatin1String("qt_edit_menu"));
QAction *action = 0;
#ifndef QT_NO_CLIPBOARD
action = popup->addAction(EnhTableWidget::tr("&Copy") + QLatin1Char('\t') + QString(QKeySequence(QKeySequence::Copy)));
action->setEnabled(!selectionModel()->selectedIndexes().isEmpty());
connect(action, SIGNAL(triggered()), SLOT(copy()));
#endif
action = popup->addAction(EnhTableWidget::tr("Delete") + QLatin1Char('\t') + QString(QKeySequence(QKeySequence::Delete)));
action->setEnabled(isEnabled() && !selectionModel()->selectedIndexes().isEmpty());
connect(action, SIGNAL(triggered()), this, SLOT(deleteSelected()));
if (!popup->isEmpty())
popup->addSeparator();
action = popup->addAction(EnhTableWidget::tr("Select All") + QLatin1Char('\t') + QString(QKeySequence(QKeySequence::SelectAll)));
action->setEnabled(isEnabled());
connect(action, SIGNAL(triggered()), SLOT(selectAll()));
return popup;
}
Merci cela wasit !! – user3443063