Autor podstrony: Krzysztof Zajączkowski

Stronę tą wyświetlono już: 2350 razy

Każdy poważny program powinien korzystać z skrótów klawiaturowych, toteż i ja z najdzikszą rozkoszą pędzę z świetną wiadomością, że i w Qt można ustawić skróty z wykorzystaniem klasy QShortcut. Oczywiście będę wciąż tutaj bazował na rozpoczętym na stronie Programowanie → Qt Creator GUI → Qt - kontrolka QTextEdit projekcie, do którego niezwłocznie w pliku mainwindow.h dodać należy plik nagłówkowy QShortcut a do klasy MainWindow dodać następujące pola:

QShortcut *shOpen; QShortcut *shSave; QShortcut *shBold; QShortcut *shItalic; QShortcut *shUnderline;

W pliku mainwindow.cpp w konstruktorze klasy MainWindow niezwłocznie należy zainicjalizować powyższe pola klasy:

shOpen = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_O), this, SLOT(on_actionOpen_triggered())); shSave = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_S), this, SLOT(on_actionSave_triggered())); shBold = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_B), this, SLOT(on_actionBold_triggered())); shItalic = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_I), this, SLOT(on_actionItalic_triggered())); shUnderline = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_U), this, SLOT(on_actionUnderline_triggered()));

W powyższym kodzie tworzę obiekt klasy QShortcut przypisując odpowiedni skrót klawiaturowy, wskaźnik do okna otrzymującego sygnał oraz slot tego okna, pod który skrót zostanie podpięty.

W programie konieczne było jeszcze wprowadzenie zmian w poniżej wypisanych metodach klasy MainWindow:

void MainWindow::on_actionBold_triggered() { if(ui->edit->fontWeight() == QFont::Bold){ ui->edit->setFontWeight(QFont::Normal); ui->actionBold->setChecked(false); }else{ ui->edit->setFontWeight(QFont::Bold); ui->actionBold->setChecked(true); } } void MainWindow::on_actionItalic_triggered() { ui->edit->setFontItalic(!ui->edit->fontItalic()); ui->actionItalic->setChecked(ui->edit->fontItalic()); } void MainWindow::on_actionUnderline_triggered() { ui->edit->setFontUnderline(!ui->edit->fontUnderline()); ui->actionUnderline->setChecked(ui->edit->fontUnderline()); }
Strony powiązane
strony powiązane
  1. doc.qt.io/qt-4.8/qshortcut.html - opis klasy QShortcut na stronie dokumentacji Qt
Layout wykonany przez autora strony, wszelkie prawa zastrzeżone. Jakiekolwiek użycie części lub całości grafik znajdujących się na tej stronie bez pisemnej zgody jej autora surowo zabronione.