I've done it ![Wink](images/smilies/wink.png)
void MainWindow::lineEditAutoCompletion()
{
QList<QMenu *> menus = ui->menuBar->findChildren<QMenu *>();
QList<QMenu *>::const_iterator it = menus.begin();
for(; it != menus.end(); it++)
{
if((*it)->title().size() > 0)
buildActionMap(*it);
}
completer->setCaseSensitivity(Qt::CaseInsensitive);
ui->lineEdit->setCompleter(completer);
}
void MainWindow
::buildActionMap(QMenu * menu
) {
QList<QAction *> actions = menu->actions();
QList<QAction *>::const_iterator it = actions.begin();
for(; it != actions.end(); it++)
{
if((*it)->text().size() > 0 && !(*it)->menu())
actionMap.insert((*it)->text(), *it);
}
}
void MainWindow
::on_lineEdit_textChanged(QString ) {
if(actionMap.contains(ui->lineEdit->text()))
{
pal.
setColor(QPalette::Text, Qt
::darkGreen);
}
else
{
}
ui->lineEdit->setPalette(pal);
}
void MainWindow::on_lineEdit_returnPressed()
{
if(actionMap.contains(ui->lineEdit->text()))
{
actionMap
[ui
->lineEdit
->text
()]->activate
(QAction::Trigger);
}
}
void MainWindow::lineEditAutoCompletion()
{
QList<QMenu *> menus = ui->menuBar->findChildren<QMenu *>();
QList<QMenu *>::const_iterator it = menus.begin();
for(; it != menus.end(); it++)
{
if((*it)->title().size() > 0)
buildActionMap(*it);
}
QCompleter * completer = new QCompleter(actionMap.keys(), this);
completer->setCaseSensitivity(Qt::CaseInsensitive);
ui->lineEdit->setCompleter(completer);
}
void MainWindow::buildActionMap(QMenu * menu)
{
QList<QAction *> actions = menu->actions();
QList<QAction *>::const_iterator it = actions.begin();
for(; it != actions.end(); it++)
{
if((*it)->text().size() > 0 && !(*it)->menu())
actionMap.insert((*it)->text(), *it);
}
}
void MainWindow::on_lineEdit_textChanged(QString )
{
QPalette pal;
if(actionMap.contains(ui->lineEdit->text()))
{
pal.setColor(QPalette::Text, Qt::darkGreen);
}
else
{
pal.setColor(QPalette::Text, Qt::red);
}
ui->lineEdit->setPalette(pal);
}
void MainWindow::on_lineEdit_returnPressed()
{
if(actionMap.contains(ui->lineEdit->text()))
{
actionMap[ui->lineEdit->text()]->activate(QAction::Trigger);
}
}
To copy to clipboard, switch view to plain text mode
Bookmarks