Создал GUI приложение Qt с названием login
Создал Класс формы Qt Desinger с названием in
В login есть переменные типа QString
Пытаюсь присвоить данные полученные в QString форме in Но QString у меня почемуто ничего не содержит
Debug показывает что QString данные получает а когда пытается передать он очищается.
Как решить эту проблемку?
покажи исходники, так тебе не кто не поможет.
Смотреть getUserData();
Тяжело понять. SQLite не поддерживает пароли и её содержимое не составит труда прочитать. Что нужно передать из одного класса в другой? Вы пытаетесь сделать окно логина?
Я проверяю наличие базы данных так:
if(!query.exec("SELECT * FROM sometable LIMIT 1")) {
// базы данных нет или нет такой таблицы
}
#include "login.h"
#include "mainwindow.h"
..
login loginWindow;
mainwindow main;
loginWindow.show();
QObject::connect(loginWindow, SIGNAL(GO(const QString &someString)), main, SLOT(GO(const QString &someString)));
// сигнал в логине и слот в main
// Сейчас бы сделал по-другому
Я раньше писал программы все одним полотном и несталкивался с подобной проблеммой так как мог получить все что понадобится. Но проблемма в том что когда настало время модернизировать ранне созданные проэкты это оказалось весьма непросто так как код имеет более чем 5000 строк я подумал что это неудобно.
Начал куралесить создавая каждое окно отдельными файлами и вот столкнулся с проблеммой что при попытке обращения к переменной вызовом ее в другом файле она оказывается пустой.
Пример создал файл Базы данных заполнил его именами загрузил список имен в combobox и при выборе имени у меня выполняется получение данных для текущего имени его пароль и т.п. нажимаю кнопочку Вход появляется другое окно и говорит введите пароль ввожу пароль и сравниваю его с полученным при выборе имя паролем но проверка не проходит так как переменная хранящяя пароль на этот момент пустая.
Ну откуда там взяться содержимому, если Вы туда ничего не передаете? Вот кусок Вашего кода с вызовом второго окна:
QMessageBox::warning(this, warningError, tr("Вы не выбрали учетную запись"));
}else{
PasswordWin* paq = new PasswordWin; // создаем второе окно
paq->show(); // показываем его
class PasswordWin : public ..........
{
Q_OBJECT
private:
// приватные переменные
public:
// публичные переменные
QString myVeryNeededString;
};
class PasswordWin : public ..........
{
Q_OBJECT
private:
// приватные переменные
QString myVeryNeededString;
public:
// публичные переменные
void setMyVeryNeededString(const &QString);
};
..
void PasswordWin::setMyVeryNeededString(const QString &str){
myVeryNeededString = str;
}
..
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)