Решил написать программку на Qt.
Но вот за чтением доков и книг по Qt, некоторые вещи не понимаю.
Например чтение/запись настроек:
Запись:
Код: Выделить всё
void sqlconnectionDialog::writeSettings()
{
QSettings settings("elpos.conf",QSettings::NativeFormat);
settings.beginGroup("Connection");
settings.setValue("Connection/diverName",driverName());
settings.setValue("Connection/hostname",hostname());
settings.setValue("Connection/databaseName",databaseName());
settings.setValue("Connection/userName",userName());
settings.setValue("Connection/password",password());
settings.setValue("Connection/port",portnum());
settings.endGroup();
settings.sync();
}
Код: Выделить всё
void sqlconnectionDialog::readSettings()
{
QSettings settings("elpos.conf",QSettings::NativeFormat);
settings.beginGroup("Connection");
settings.value("Connection/diverName",driverName());
settings.value("Connection/hostname",hostname());
settings.value("Connection/databaseName",databaseName());
settings.value("Connection/userName",userName());
settings.value("Connection/password",password());
settings.value("Connection/port",portnum());
settings.endGroup();
}
Код: Выделить всё
sqlconnectionDialog::sqlconnectionDialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::sqlconnectionDialog)
{
ui->setupUi(this);
readSettings();
okSettings();
applySettings();
cancelSettings();
}
Код: Выделить всё
QString sqlconnectionDialog::driverName()
{
QString driver;
if(ui->comboBox->currentText() == "PostgreSQL")
{
driver = "QPSQL";
} else if(ui->comboBox->currentText() == "MySQL")
{
driver = "QMYSQL";
} else if (ui->comboBox->currentText() == "SQLite")
{
driver = "QSQLITE";
} else {
QMessageBox msgErr;
msgErr.setText("Error select SQL-driver!");
}
return driver;
}
QString sqlconnectionDialog::hostname()
{
return ui->lineEdit->text();
}
QString sqlconnectionDialog::databaseName()
{
return ui->lineEdit_2->text();
}
QString sqlconnectionDialog::userName()
{
return ui->lineEdit_3->text();
}
QString sqlconnectionDialog::password()
{
return ui->lineEdit_4->text();
}
QString sqlconnectionDialog::portnum()
{
return ui->lineEdit_5->text();
}
void sqlconnectionDialog::on_okButton_click()
{
if(ui->lineEdit->text().isEmpty())
{
QMessageBox::information(this,tr("No input hostname"), tr("Please input hostname"));
} else if(ui->lineEdit_2->text().isEmpty())
{
QMessageBox::information(this,tr("No database selected"), tr("Please selected database"));
} else if(ui->lineEdit_3->text().isEmpty())
{
QMessageBox::information(this,tr("No input username"), tr("Please input username"));
} else if(ui->lineEdit_4->text().isEmpty())
{
QMessageBox::information(this,tr("No input paswword"), tr("Please input password"));
} else if(ui->lineEdit_5->text().isEmpty())
{
QMessageBox::information(this,tr("No input port"), tr("Please input port"));
} else{
writeSettings();
accept();
}
}
void sqlconnectionDialog::on_cancelButtom_click()
{
close();
}
void sqlconnectionDialog::on_applyButton_click()
{
writeSettings();
}
void sqlconnectionDialog::okSettings()
{
connect(ui->pushButton,SIGNAL(clicked()),this,SLOT(on_okButton_click()));
}
void sqlconnectionDialog::applySettings()
{
connect(ui->pushButton_3,SIGNAL(clicked()),this,SLOT(on_applyButton_click()));
}
void sqlconnectionDialog::cancelSettings()
{
connect(ui->pushButton_2,SIGNAL(clicked()),this,SLOT(on_cancelButtom_click()));
}
Проблема в том что при закрытии диалога, и повторном открытии в форму не подставляются настройки.
P.S.:Это моя первая программа, документацию на Qt4 читаю, книги параллельно тоже. Прошу сильно не пинать.