我即将编写一个小型桌面应用程序来记录同事的工作时间。它必须根据我们的需求进行定制,因此商业解决方案不是一种选择(+我们没有钱)。
我正在使用 Qt (5.11.2) 和 C++。我有一个 MainWindow(第一个窗口 UI),它使用自动完成功能从 sqlite3 数据库获取信息(ID、名称、组长等)并填充 QLineEdits。这部分工作得很好。
现在,我创建了第二个窗口 UI 来捕获员工的实际工作时间。我想在第二个窗口中向用户显示正在捕获其工作时间的员工的姓名和 ID。这些信息应该从第一个窗口类中检索。
我尝试在第一个窗口类中将 name 变量设为 public,但由于某种原因,我无法访问第二个窗口类中的变量,并且我也尝试使用 getter 和 setter,但无济于事。当我使用 getter 和 setter 时,我可以在 setter 中手动插入一个字符串,并且它可以工作。但我想从第一个窗口的 lineEdit 获取字符串的值(请参阅小代码片段)
QString tabname_temp = ui->lineEdit_Tabname->text(); // get name from lineEditf; from first window UI
我想使用这个 tabname_temp 变量,并使用它在第二个 UI 窗口类中显示带有此字符串值的标签。
第一个窗口类中的 getter 和 setter 如下所示:
public:
void setName(QString name);
QString getName() const {return name;}
private:
QString name;
setName 的实现如下所示:
void MainWindow::setName(QString name){
this->name = name;
}
长时间的谷歌搜索没有结果。我确信,我在这里错过了一些重要的东西。我希望我明确了我在寻找什么。请让我知道是否以及如何改进这个问题。
编辑:这就是我创建第二个窗口 UI (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();
}