Извините, если этот вопрос повторяется, но я действительно изо всех сил пытаюсь найти какой-либо ответ.
Пожалуйста, имейте ввиду, что я новичок в программировании на С ++.
Моя проблема в этом. У меня есть графический интерфейс в QtCreator . Есть два слушателей привязка keyReleaseEvent
, один на основном классе (SuperFalcon
), один на QTextEdit (который является отдельным и измененным классом). У меня есть QFrame , который я хотел бы переключить скрыть / показать на "Ctrl + f" событие ключа. Так как этот QFrame (имя объекта findWidget
) принадлежит SuperFalcon-> ui , проблем нет, все работает нормально, проблема начинается, когда я пытаюсь сделать " Ctrl + f " in QTextEdit , потому что это отдельный прослушиватель событий. В основном я попробовал это.
имя основного класса "SuperFalcon", поэтому:
в superfalcon.h
я сделал публичный статический указатель следующим образом:
public:
static QFrame *fWidget;
затем superfalcon.cpp
, сначала я выполняю
ui->findWidget->hide();
, а затем
fWidget = ui->findWidget
; в надежде получить указатель на виджет.
Далее в моем классе QTextEdit в функции keyReleaseEvent
я пытался получить этот указатель, как SuperFalcon::fWidget->show()
, но я получил неопределенную ссылку на него.
Итак, чтобы упростить ситуацию, я не знаю, как, по возможности, получить ссылку на виджет QFrame, который является частью одного класса (SuperFalcon), из другого класса (класс QTextEdit) для выполнения некоторых команд на QFrame.
Если это не совсем понятно, я могу предоставить код.