Книга: Основы программирования в Linux

main.cpp

main.cpp

Единственный оставшийся программный код — функция main, которую вы помещаете в отдельный файл main.cpp.

1. В файле main.cpp вы открываете окно LogonDialog и получаете успешную регистрацию из функции database_start. Если регистрация оказалась неудачной, вы выводите окно QMessageBox или при попытке закрыть LogonDialog просите у пользователя подтверждения его выхода.

#include "MainWindow.h"
#include "app_mysql.h"
#include "LogonDialog.h"
#include <kde/kapp.h>
#include <qmessagebox.h>
int main(int argc, char **argv) {
 char username[100];
 char password[100];
 KApplication a(argc, argv, "cdapp");
 LogonDialog *dialog = new LogonDialog();
 while (1) {
  if (dialog->exec() == QDialog::Accepted) {
   strcpy(username, dialog->getUsername());
   strcpy(password, dialog->getPassword());
   if (database_start(username, password)) break;
   QMessageBox::information(0, "Title",
    "Could not Logon: Check username and/or password",
    QMessageBox::Ok);
   continue;
  } else {
   if (QMessageBox:information(0, "Title",
    "Are you sure you want to quit?", QMessageBox::Yes,
    QMessageBox::No) == QMessageBox::Yes) {
    return 0;
   }
  }
 }
 delete dialog;
 MainWindow *window = new MainWindow("Cd App");
 window->resize(600, 400);
 a.setMainWidget(window);
 window->show();
 return a.exec();
}

2. Осталось только написать pro-файл для утилиты qmake. Назовите его cdapp.pro:

TARGET = app
MOC_DIR = moc
OBJECTS_DIR = obj
INCLUDEPATH = /usr/include/kde /usr/include/mysql
QMAKE_LIBDIR_X11 += -/usr/lib
QMAKE_LIBDIR_X11 += /usr/lib/mysql
QMAKE_LIBS_X11 += -lkdeui -lkdecore -lmysqlclient
SOURCES = MainWindow.cpp main.cpp app_mysql.cpp AddCdDialog.cpp LogonDialog.cpp
HEADERS = MainWindow.h app_mysql.h AddCdDialog.h LogonDialog.h

Примечание

Обратите внимание на то, что приведенный программный код позволяет вам немного схитрить, просто переименовав файл app_mysql.c в файл app_mysql.cpp; таким образом, вы сможете использовать его как обычный исходный файл на языке С++. Это устраняет небольшое усложнение, необходимость редактирования связей или компоновки объектного файла на языке С и объектного файла на языке С++,

$ qmake cdapp.pro -о Makefile
$ make
$ ./арр

Если все нормально, вы должны получить работающую базу данных компакт-дисков!

Для того чтобы глубже понять KDE/Qt, можно попробовать реализовать другие функции в интерфейсе MySQL, такие как добавление дорожек в компакт-диски или удаление компакт-дисков. Вам понадобятся диалоговые окна, новые элементы меню и панели инструментов, придется также запрограммировать внутреннюю логику. Сделайте такую попытку!

Оглавление книги

Оглавление статьи/книги

Генерация: 1.254. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз