У меня есть класс основного окна MainWindow. С него я запускаю (допустим, при авторизации) модальное окно авторизации с полями "Логин", "Пароль" (lineLogin
, linePass
соответственно).
Я знаю, что можно создать сигнал в классе модального окна
signals:
void sendData(QString login, QString password);
и создать слот в классе главного окна и там мы производим действия с данными
private slots:
void getData(QString login, QString password);
далее всё это дело соединить в классе главного окна
connect(&modal, SIGNAL(sendData(QString, QString)), SLOT(getData(QString, QString));
А само окно мы вызываем, допустим в слоте on_actionC_triggered()
modal.exec();
Но меня напрягает:
Создание лишнего слота с принятием данных с модального окна.
Какая-то громоздкость в обычном принятии значений полей.
Как можно получить данные прямо с modal.exec()
, если это возможно, чтобы обработать значения полей lineLogin
и linePass
прямо в on_actionC_triggered()
?
Если без вышеописанных методов не получится, то как можно уменьшить код?
Класс диалога авторизации:
class Dialog : public QDialog
{
Q_OBJECT
public:
explicit Dialog(QWidget *parent = 0);
~Dialog();
QString getLogin() const;
QString getPassword() const;
private:
Ui::Dialog *ui;
};
Вызов диалога:
void MainWindow::on_toolButton_clicked()
{
Dialog dialog(this);
if(dialog.exec() == QDialog::Accepted)
{
QString login = dialog.getLogin();
QString password = dialog.getPassword();
//..что-то делаем дальше
}
}
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Всем добрый деньСтандартный конструктор копирования в классе выглядит так: SomeClass(const SomeClass &obj) Как я понимаю, const отвечают за то, что в процессе...
Есть простая хеш-функция key%m; Массив из m=20 элементов Есть 100 объектов, с рандомными ключамиМассив представляет собой массив стеков