Я новичок в C++/Qt, и у меня есть только небольшой опыт веб-разработки.
Я тестирую несколько вещей с Qt в учебных целях, и я терплю неудачу в этом. Я почти уверен, что это потому, что вся эта штука со слотом / сигналом еще не устоялась, поэтому я надеялся, что кто-то сможет прояснить ее для меня.
Итак, у меня есть основной пользовательский интерфейс программы, в который я поместил виджет QTextEdit. Теперь я пытаюсь воспроизвести одно из этих предупреждений «в документе есть изменения, лучше сохраните его!», и оно отображается каждый раз, когда кто-то пытается создать новый документ.
Я пытаюсь проверить изменения в виджете textEdit, когда срабатывает опция «Новый документ». Я продолжаю получать эти ошибки компиляции, и я даже не знаю, что они означают! Каким будет правильное условие теста? Как я могу ссылаться на textEdit, если он вызывается где-то еще?
Я пытаюсь что-то вроде этого:
void Notepad::on_actionNew_triggered() { //not getting the test condition right! if(................................) { QMessageBox msgBox; msgBox.setText("Warning!"); msgBox.setInformativeText("Changes were applied to this document."); msgBox.setStandardButtons(QMessageBox::Discard | QMessageBox::Cancel); msgBox.setDefaultButton(QMessageBox::Cancel); int ret = msgBox.exec(); switch (ret) { case QMessageBox::Discard: // Don't Save was clicked ui->textEdit->clear(); break; case QMessageBox::Cancel: msgBox.close(); break; default: // should never be reached break; } }else{ui->textEdit->clear();} }
Я попытался найти некоторую информацию об этом, и держу пари, что большинство из вас может на самом деле подумать, что это довольно очевидно, но у меня серьезные проблемы с пониманием того, как это обойти.