danke erstmal für die vorschläge.das mit dem namen hatte ich auch schon überlegt und so werde ich es jetzt auch machen.
aber mir dem slider handle komme ich nicht weiter.
wenn ich in den stylesheet folgendes schreibe wir er mir nicht angezeigt:
handle:horizontal {
image: url(:/images/sliderbutton (2).png);}
die resource ist eingtragen und vorhanden.
HAB ES HINBEKOMMEN:
::handle:horizontal {
image: url(:/images/sliderbutton (2).png);}
Sliderwert und QLineEdit in Datenbank schreiben
So. Hab das ganze jetzt über ein QStackedWidget("umschalt") gelöst.
In QWidget1("page") lese ich den Namen ein und versuche ihn als Tabellennamen zu verwenden.
Da klappt aber leider was nicht.Er legt zwar wieder die Datenbank an,aber leider ist diese 0Kb groß und kann nicht geöffnet werden.
Das zweite Problem was glaube ich dann besteht ist, wie ich aus dem ersten Widget("page") den Namen(Name= ui.Nameline->text()) in das zweite Widget("page_2") bekomme um ihn dort in der INSER-Anweisung zu verwenden.
In QWidget1("page") lese ich den Namen ein und versuche ihn als Tabellennamen zu verwenden.
Da klappt aber leider was nicht.Er legt zwar wieder die Datenbank an,aber leider ist diese 0Kb groß und kann nicht geöffnet werden.
Code: Alles auswählen
Eingabe::Eingabe(QWidget *parent) :
QWidget(parent)
{
ui.setupUi(this);
//connect(ui.NameButton, SIGNAL(clicked()), Umschalt, SLOT(setCurrentWidget(int)));
connect(ui.NameButton, SIGNAL(clicked()), this, SLOT(Namen()));
connect(ui.AttributeButton, SIGNAL(clicked()), this, SLOT(Attribute()));
connect(ui.VideoButton, SIGNAL(clicked()), this, SLOT(Video()));
connect(ui.EndeButton, SIGNAL(clicked()), this, SLOT(Ende()));
}
void Eingabe::Namen()
{
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("Eingabedatenbank.sqlite");
//if (!db.open()) {
// QMessageBox::critical(0, qApp->tr("Cannot open database"),
// qApp->tr("Unable to establish a database connection.\n"
// "This example needs SQLite support. Please read "
// "the Qt SQL driver documentation for information how "
// "to build it.\n\n"
// "Click Cancel to exit."), QMessageBox::Cancel);
// return false;
db.open();
if(db.isOpen()){
Name = ui.Nameline->text();
QSqlQuery query;
query.prepare("CREATE TABLE :Name (id int primary key, "
"Attribut_1 varchar(50), Attribut_2 varchar(50), Attribut_3 varchar(50), Attribut_4 varchar(50), "
"Attribut_5 varchar(50), Attribut_6 varchar(50), Attribut_7 varchar(50), Attribut_8 varchar(50), "
"Attribut_9 varchar(50), Attribut_10 varchar(50), Attribut_11 varchar(50), Attribut_12 varchar(50), "
"Attribut_13 varchar(50), Attribut_14 varchar(50), Attribut_15 varchar(50))");
query.bindValue(":Name",Name);
query.exec();
}
else {
QMessageBox::information( this, "Achtung", "Speichern fehlgeschlagen!" );
}
ui.Umschalt->setCurrentIndex(1);
db.close();
}Das zweite Problem was glaube ich dann besteht ist, wie ich aus dem ersten Widget("page") den Namen(Name= ui.Nameline->text()) in das zweite Widget("page_2") bekomme um ihn dort in der INSER-Anweisung zu verwenden.
OK.Habs durch Probieren rausbekommen.
Hier der Code:
Der Rest funkltioniert auch super, in dem man einfach wieder
aufruft.
Hier der Code:
Code: Alles auswählen
NAME = ui.Nameline->text();
QSqlQuery query;
query.exec("CREATE TABLE " + NAME + " (id int primary key, "
"Attribut_1 varchar(50), Attribut_2 varchar(50), Attribut_3 varchar(50), Attribut_4 varchar(50), "
"Attribut_5 varchar(50), Attribut_6 varchar(50), Attribut_7 varchar(50), Attribut_8 varchar(50), "
"Attribut_9 varchar(50), Attribut_10 varchar(50), Attribut_11 varchar(50), Attribut_12 varchar(50), "
"Attribut_13 varchar(50), Attribut_14 varchar(50), Attribut_15 varchar(50))");Code: Alles auswählen
NAME = ui.Nameline->text();