Вход/Регистрация
Основы программирования в Linux
вернуться

Мэтью Нейл

Шрифт:

 вывод информации о компакт-диске и его дорожках;

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

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

MainWindow

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

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

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

#include <kde/kmainwindow.h>

#include <qlistview.h>

#include <qlineedit.h>

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 <qvbox.h>

#include <qlineedit.h>

#include <qpushbutton.h>

#include <qlabel.h>

#include <qlistview.h>

#include <kde/kapp.h>

#include <kde/kmenubar.h>

#include <kde/klocale.h>

#include <kde/kpopupmenu.h>

#include <kde/kstatusbar.h>

#include <kde/kaction.h>

#include <kde/kstdaccel.h>

#include <string.h>

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@email.com\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);

  • Читать дальше
  • 1
  • ...
  • 390
  • 391
  • 392
  • 393
  • 394
  • 395
  • 396
  • 397
  • 398
  • 399
  • 400
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: