Итак, у меня есть две формы в моем проекте: MainWindow и Options Form (OptForm; QWidget
);
Теперь я создаю (просто перетаскивая на форму) QPushButton
в MainWindow, чтобы открыть OptForm, и передавая переменные, которые OptForm может изменить.
void MainWindow::openOpt() //Slot; QPushButton calls(?) it
{
OptForm w (this->variable1,this->variable2, this);
w.show();
}
Конструктор OptForm:
OptForm::OptForm(bool & variable1, bool & variable2, QWidget *parent)
: QWidget (parent)
{
variable1Pointer = &variable1;
variable2Pointer = &variable2;
ui.setupUi(this);
}
options.h имеет:
class OptForm : public QWidget
{
Q_OBJECT
public:
OptForm(bool & variable1, bool & variable2, QWidget *parent)
//Pointers for encrypt and verbose
bool * variable1Pointer;
bool * variable2Pointer;
public slots:
void change_variable1();
void change_variable2();
private:
Ui::OptForm ui;
};
Теперь void change_variable1();
и void change_variable2();
изменяют логические значения на true
или false
.
Теперь в этих функциях у меня есть строка
this->*variable1Pointer = true;
И я получаю ошибку компилятора:
'((OptForm*)this)->OptForm::variable1Pointer' cannot be used as a member pointer, since it is of type 'bool*'
Как мне все сделать правильно? (Исправлено, СПАСИБО)
Другое, что мне нужно, это сообщить MainWindow, когда OptForm закрылся, чтобы проверить, изменились ли параметры. Итак, где я должен разместить этот код? В openOpt
или создайте слот, который будет выполняться (?), Когда OptForm закрывается? Как я могу отправить сигнал в MainWindow?
Заранее спасибо. ( Полагаю, я все испортил )
Хорошо, ошибка компилятора исправлена, но теперь, когда я нажимаю эту кнопку, окно открывается и сразу закрывается: /