如何从主窗口访问另一个windows ui? >我在QT中使用C++,我希望能够在主窗口的对话框页面上批准用户名和密码。 这是我到目前为止所拥有的 //Login QString username1 = ui.employeelogindialog->Username->text(); QString password1 = ui.employeelogindialog->Password->text();
有一个错误的说法 mainwindow.cpp:37:27:错误:成员引用类型“Ui::EmployeeloginDialog*”是指针;你想用'->'吗如何从主窗口访问另一个windows ui? >我在QT中使用C++,我希望能够在主窗口的对话框页面上批准用户名和密码。 这是我到目前为止所拥有的 //Login QString username1 = ui.employeelogindialog->Username->text(); QString password1 = ui.employeelogindialog->Password->text();,c++,qt,C++,Qt,有一个错误的说法 mainwindow.cpp:37:27:错误:成员引用类型“Ui::EmployeeloginDialog*”是指针;你想用'->'吗 如何解决此问题?要从另一个小部件获取mainwindow的数据,您可以为此小部件创建信号并在mainwindow cpp内发出 您的ui指针应该是private,以保护它 例如,小部件的类别: #include "ui_widget.h" class Widget: public QWidget, private Ui::Widget {
如何解决此问题?要从另一个小部件获取mainwindow的数据,您可以为此小部件创建信号并在mainwindow cpp内发出 您的
ui
指针应该是private
,以保护它
例如,小部件的类别:
#include "ui_widget.h"
class Widget: public QWidget, private Ui::Widget
{
Q_OBJECT
public:
Widget(QWidget *parent = nullptr);
~Widget();
private:
QLineEdit *Username= nullptr;
QLineEdit *Password= nullptr;
signals:
void SendUsername(const QString &name);
void SendPassword(const QString &password);
private slots:
void ReturnPressedForLineEdit1();
void ReturnPressedForLineEdit2();
private:
QString username;
QString password;
private:
Ui::Widget *ui; //HERE <----------------
};
要从另一个小部件获取mainwindow的数据,您可以为此小部件创建信号,并在mainwindow cpp内发出信号 您的
ui
指针应该是private
,以保护它
例如,小部件的类别:
#include "ui_widget.h"
class Widget: public QWidget, private Ui::Widget
{
Q_OBJECT
public:
Widget(QWidget *parent = nullptr);
~Widget();
private:
QLineEdit *Username= nullptr;
QLineEdit *Password= nullptr;
signals:
void SendUsername(const QString &name);
void SendPassword(const QString &password);
private slots:
void ReturnPressedForLineEdit1();
void ReturnPressedForLineEdit2();
private:
QString username;
QString password;
private:
Ui::Widget *ui; //HERE <----------------
};
错误文本足够清晰。它表示“ui”是一个指针,因此,您必须使用“->”而不是“.”:
错误文本足够清晰。它表示“ui”是一个指针,因此,您必须使用“->”而不是“.”: 核对
//slots should be with (QString &string) args
QObject::connect(Mainwindow::objectOfYourOwnWidget, &Widget::SendUsername, this, &Mainwindow::GetUsername);
QObject::connect(Mainwindow::objectOfYourOwnWidget, &Widget::SendPassword, this, &Mainwindow::GetPassword);
QString username1 = ui->employeelogindialog->Username->text();
QString password1 = ui->employeelogindialog->Password->text();