Читаем Основы программирования в Linux полностью

□ добавление компакт-диска в базу данных;

□ отображение окна About (О программе).

<p><emphasis>MainWindow</emphasis></p>

Начнем обсуждение с программного кода для главного окна приложения, которое содержит виджет поля поиска и список для отображения результатов поиска.

1. Начните с ввода программного кода в файл MainWindow.h (или загрузите его с Web-сайта книги). Поскольку окно содержит виджет QLineEdit для поиска компакт-дисков и виджет QListView для вывода результатов поиска, вы должны вставить в программный код заголовочные файлы qlistview.h и qlineedit.h:

#include

#include

#include

class MainWindow : public KMainWindow {

 Q_OBJECT

public:

 MainWindow(const char *name);

public slots:

 void doSearch();

 void Added();

private:

 QListView *list;

 QLineEdit *search_entry;

};

2. MainWindow.срр — самая сложная часть программы. В конструкторе вы создаете интерфейс главного окна и связываете необходимые сигналы с вашими слотами. Как обычно, начните программу с файлов в директивах #include:

#include "MainWindow.h"

#include "AddCdDialog.h"

#include "app_mysql.h"

#include

#include 

#include 

#include 

#include 

#include 

#include 

#include 

#include 

#include

#include 

#include

#include

MainWindow::MainWindow(const char * name) : KMainWindow(0L, name) {

 setCaption("CD Database");

3. Теперь создайте элементы меню и панели инструментов с помощью виджета KAction.

KAction *addcd_action = new KAction("&Add CD", "filenew",

 KStdAccel::shortcut(KStdAccel::New), this, SLOT(AddCd()), this);

 KAction *quit_action = KStdAction::quit(KApplication::kApplication(),

  SLOT(quit()), actionCollection());

 QPopupMenu* filemenu = new QPopupMenu;

 QString about = ("CD App\n\n"

  "(C) 2007 Wrox Press\n" "[email protected]\n");

 QPopupMenu* helpmenu = helpMenu(about);

 menuBar()->insertItem("&File", filemenu);

 menuBar()->insertltem(i18n("&Help"), helpmenu);

 addcd_action->plug(filemenu);

 filemenu->insertSeparator();

 quit_action->plug(filemenu);

 addcd_action->plug(toolBar());

 quit_action->plug(toolBar());

4. Для разнообразия примените виджеты QBoxLayout вместо обычных классов QLayout:

 QVBox *vbox = new QVBox(this);

 QHBox *hbox = new QHBox(vbox);

 QLabel* label = new QLabel(hbox);

 label->setText("Search Text: ");

 search_entry = new QLineEdit(hbox);

 QPushButton *button = new QPushButton("Search", hbox);

5. Далее следует виджет QListView, занимающий основную часть рабочей области окна. После этого для поиска компакт-диска в базе данных вы связываете необходимые сигналы с вашим слотом doSearch. Строка состояния KMainWindow становится видимой за счет вставки пустого сообщения:

 list = new QListView(vbox, "name", 0L);

 list->setRootIsDecorated(TRUE);

 list->addColumn("Title");

 list->addColumn("Artist");

 list->addColumn("Catalogue");

 connect(button, SIGNAL(clicked()), this, SLOT(doSearch()));

 connect(search_entry, SIGNAL(returnPressed()), this, SLOT(doSearch()));

 statusBar()->message("");

 setCentralWidget(vbox);

 resize(300, 400);

}

6. Слот doSearch — рабочее завершение приложения. В нем считывается строка поиска и выбираются все соответствующие ей компакт-диски и их дорожки. Логика слота такая же, как в функции doSearch GNOME/GTK+ в главе 16.

void MainWindow::doSearch() {

Перейти на страницу:

Похожие книги

1001 совет по обустройству компьютера
1001 совет по обустройству компьютера

В книге собраны и обобщены советы по решению различных проблем, которые рано или поздно возникают при эксплуатации как экономичных нетбуков, так и современных настольных моделей. Все приведенные рецепты опробованы на практике и разбиты по темам: аппаратные средства персональных компьютеров, компьютерные сети и подключение к Интернету, установка, настройка и ремонт ОС Windows, работа в Интернете, защита от вирусов. Рассмотрены не только готовые решения внезапно возникающих проблем, но и ответы на многие вопросы, которые возникают еще до покупки компьютера. Приведен необходимый минимум технических сведений, позволяющий принять осознанное решение.Компакт-диск прилагается только к печатному изданию книги.

Юрий Всеволодович Ревич

Программирование, программы, базы данных / Интернет / Компьютерное «железо» / ОС и Сети / Программное обеспечение / Книги по IT
Access 2002: Самоучитель
Access 2002: Самоучитель

В книге рассматривается широкий круг вопросов, связанных с использованием программной среды Access 2002, которая является составной частью пакета Office 2002 и предназначена для создания банка данных в самых различных предметных областях.Подробно описывается методика проектирования объектов базы данных (таблицы, формы, отчеты, страницы доступа к данным, запросы, модули).Детально обсуждаются вопросы создания интегрированной базы данных в единой среде Access 2002: формирование БД с нуля, конвертирование в программную среду баз данных, созданных в ином программном окружении – Clarion, FoxPro.Особое внимание уделяется формированию разнообразных запросов к интегрированной базе данных Access 2002 с использованием языков программирования SQL, VBA и макросов.Приводятся общие сведения о возможностях языка обмена данными между различными компьютерами и приложениями (XML). Описываются возможности использования гиперссылок, связывающих базу данных с другими программными продуктами. Объясняется, как можно работать с базой данных Access 2002 без установки ее на компьютер, используя технологию ODBC (Open Data Base Connectivity). В приложениях приводятся количественные параметры Access 2002 и связанная с этой СУБД терминология.Предлагаемая книга будет полезна специалистам, занимающимся практической разработкой банков данных и приложений на их основе, а также студентам вузов, изучающим информатику.

Павел Юрьевич Дубнов

Программирование, программы, базы данных / ОС и Сети / Книги по IT