Слот setShowGride не работает в моем приложении

Вот программа, а вот скриншот.

Вот также код для showGridAction (в котором я вижу проблемы) внутри: функции void MainWindow::createActions()MainWindow.cpp):

showGridAction = new QAction(tr("&Show Grid"), this);
    showGridAction -> setCheckable(true);
    showGridAction -> setChecked(spreadsheet -> showGrid());
    showGridAction -> setStatusTip(tr("Show or hide the spreadsheet's"
                                       " grid"));
    connect(showGridAction, SIGNAL(toggled(bool)),
            spreadsheet, SLOT(setShowGride(bool)));

#if QT_VERSION < 0x040102
    // workaround for a QTableWidget bug in Qt 4.1.1
    connect(showGridAction, SIGNAL(toggled(bool)),
            spreadsheet->viewport(), SLOT(update()));
#endif

Мои вопросы:

1- Сначала я думаю, что часть #if QT_VERSION < 0x040102 до #endif больше не нужна, потому что я использую Qt 5.9. Вы тоже так думаете?

2- Этот код не работает. Как вы можете видеть на снимке экрана выше, установка и снятие отметки с опции Show Grid ничего не меняет! Подскажите, пожалуйста, как заставить работать приложение?

3- В коде есть слот под названием setShowGride(bool). Откуда это? Он не будет выделен, когда я нажму на него, а также никуда не приведет меня, когда я нажму на нем F2! Вероятно, причина проблемы в том, что указанный выше параметр не работает.
Как это исправить, пожалуйста?


person Franky    schedule 10.08.2017    source источник


Ответы (1)


В коде опечатка. Если это исправлено, приложение работает правильно. Используйте setShowGrid, а не setShowGride.

А насчет этой части кода, да, она не нужна, потому что вы используете Qt 5.9.

person Franky    schedule 11.08.2017