#include <QApplication>
#include <QWidget>
#include <QLineEdit>
#include <QPushButton>
#include <QVBoxLayout>
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QMessageBox>
class TableCreator : public QWidget {
Q_OBJECT
public:
TableCreator(QWidget *parent = nullptr) : QWidget(parent) {
QVBoxLayout *layout = new QVBoxLayout(this);
tableNameInput = new QLineEdit(this);
tableNameInput->setPlaceholderText("Введите название таблицы");
layout->addWidget(tableNameInput);
createButton = new QPushButton("Создать таблицу", this);
layout->addWidget(createButton);
connect(createButton, &QPushButton::clicked, this, &TableCreator::createTable);
setLayout(layout);
}
private slots:
void createTable() {
QString tableName = tableNameInput->text();
if (tableName.isEmpty()) {
QMessageBox::warning(this, "Ошибка", "Название таблицы не может быть пустым.");
return;
}
// Подключение к базе данных (например, SQLite)
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("mydatabase.db");
if (!db.open()) {
QMessageBox::critical(this, "Ошибка", "Не удалось подключиться к базе данных.");
return;
}
// Формируем SQL-запрос для создания таблицы
QString sql = QString("CREATE TABLE %1 (id INTEGER PRIMARY KEY AUTOINCREMENT)").arg(tableName);
QSqlQuery query;
if (!query.exec(sql)) {
QMessageBox::critical(this, "Ошибка", "Не удалось создать таблицу: " + query.lastError().text());
} else {
QMessageBox::information(this, "Успех", "Таблица создана успешно!");
}
db.close();
}
private:
QLineEdit *tableNameInput;
QPushButton *createButton;
};
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
TableCreator window;
window.setWindowTitle("Создание таблицы");
window.resize(300, 150);
window.show();
return app.exec();
}
#include "main.moc"