Я собираюсь запрограммировать небольшое настольное приложение для захвата рабочего времени моих коллег по работе.Он должен быть адаптирован к нашим потребностям, поэтому коммерческое решение не вариант (+ у нас нет денег).
Я использую Qt (5.11.2) и C ++.У меня есть MainWindow (первый интерфейс окна), который использует автозаполнение, чтобы получить информацию (ID, имена, групповые лидеры, ...) из базы данных sqlite3 и заполнить QLineEdits.Эта часть работает просто отлично.Теперь я создал интерфейс второго окна, чтобы зафиксировать фактическое рабочее время сотрудника.Я хотел бы представить пользователю во втором окне имя и идентификатор сотрудника, чье рабочее время в будущем.Эта информация должна быть получена из первого класса окна.
Я попытался сделать переменную имени общедоступной в своем первом классе окна, но по какой-то причине я не могу получить доступ к переменной во втором классе окна, и ятакже пытались использовать геттеры и сеттеры, но безрезультатно.Когда я использую геттеры и сеттеры, я могу вручную вставить строку в сеттер, и она работает.Но я хотел бы получить значение строки из lineEdit из первого окна (см. Небольшой фрагмент кода)
QString tabname_temp = ui->lineEdit_Tabname->text(); // get name from lineEditf; from first window UI
Я хотел бы работать с этой переменной tabname_temp и использовать ее для отображения в меткес этим строковым значением во втором классе окна пользовательского интерфейса.
Методы получения и установки в первом классе окна выглядели так:
public:
void setName(QString name);
QString getName() const {return name;}
private:
QString name;
Реализация setName выглядела так:
void MainWindow::setName(QString name){
this->name = name;
}
Долгие часы гугл-фу были напрасны.Я уверен, что я упускаю что-то важное здесь.Я надеюсь, что я ясно дал понять, что я ищу.Пожалуйста, дайте мне знать, если и как я могу улучшить этот вопрос.
РЕДАКТИРОВАТЬ: Вот как я создаю второй интерфейс окна (mainwindow.h):
private:
Ui::MainWindow *ui;
WindowActivity *activityWindow; // second window
Это мой код изmainwindow.cpp:
void MainWindow::on_Btn_Activity_clicked()
{
activityWindow = new WindowActivity(this);
activityWindow->resize(700,700);
activityWindow->show();
}