Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«ΠžΡΠ½ΠΎΠ²Ρ‹ программирования Π² LinuxΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 317

Автор ΠœΡΡ‚ΡŒΡŽ НСйл

Β Β res1, search_text);

Β statusBar()->message(statusBar_text);

Β i = 0;

Β list->clear();

8. Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ

id
ΠΈΠ·Π²Π»Π΅ΠΊΠΈΡ‚Π΅ свСдСния ΠΎ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚-дискС Π² Π²ΠΈΠ΄ΠΆΠ΅Ρ‚
QListView
ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ±ΠΎ всСх Π΄ΠΎΡ€ΠΎΠΆΠΊΠ°Ρ… Π΄Π°Π½Π½ΠΎΠ³ΠΎ CD:

Β while (i < res1) {

Β  res2 = get_cd(cd_res->cd_id[i], cd);

Β  cd_item = new QListViewItem(list, cd->title, cd->artist_name,

Β Β  cd->catalogue);

Β  res3 = get_cd_tracks(cd_res->cd_id[i++], &ct);

Β Β j = 0;

Β  /* Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ Π΄Π΅Ρ€Π΅Π²ΠΎ Π΄ΠΎΡ€ΠΎΠΆΠΊΠ°ΠΌΠΈ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚-диска */

Β Β while (j < res3) {

Β Β  sprintf(track_title, " Track %d. ", j+1);

Β Β  strcat(track_title, ct.track[j++]);

Β Β  new QListViewItem(cd_item, track_title);

Β  }

Β }

}

ΠžΡΠ½ΠΎΠ²Ρ‹ программирования Π² Linux - image078.jpg

Рис. 17.13

9.Β Π‘Π»ΠΎΡ‚

AddCd
вызываСтся, ΠΊΠΎΠ³Π΄Π° Π°ΠΊΡ‚ΠΈΠ²ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ ΠΏΡƒΠ½ΠΊΡ‚ мСню ΠΈΠ»ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠ° ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов
addcd_action
:

void MainWindow::AddCd()

Β AddCdDialog* dialog = new AddCdDialog(this);

Β dialog->show();

}

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Π½ Π½Π° рис. 17.13.

AddCdDialog

Для вставки свСдСний ΠΎ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚-дискС Π² Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ с полями, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΌΠΈ для Π²Π²ΠΎΠ΄Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ.

1.Β Π’Π²Π΅Π΄ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π² Ρ„Π°ΠΉΠ» AddCdDialog.h. Π˜ΠΌΠ΅ΠΉΡ‚Π΅ Π² Π²ΠΈΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ класс

AddCdDialog
β€” ΠΏΠΎΡ‚ΠΎΠΌΠΎΠΊ
KDialogBase
, Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π° Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° Π² срСдС KDE.

#include <kde/kdialogbase.h>

#include <qlineedit.h>

class AddCdDialog : public KDialogBase {

Β Q_OBJECT

public:

Β AddCdDialog(QWidget* parent);

private:

Β QLineEdit* artist_entry, *title_entry, *catalogue_entry;

public slots:

Β void okClicked();

};

2.Β Π”Π°Π»Π΅Π΅ слСдуСт Ρ„Π°ΠΉΠ» AddCdDialog.cpp, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π² слотС

okClicked
вызываСтся функция
add_cd
ΠΈΠ· интСрфСйса MySQL:

#include "AddCdDialog.h"

#include "app_mysql.h"

#include <qlayout.h>

#include <qlabel.h>

AddCdDialog::AddCdDialog(QWidget* parent)

Β : KDialogBase(parent, "AddCD", false, "Add CD",

Β KDialogBase::Ok | KDialogBase::Cancel, KDialogBase::Ok, true) {

Β QWidget *widget = new QWidget(this);

Β setMainWidget(widget);

Β QGridLayout *grid = new QGridLayout(widget, 3, 2, 10, 5, "grid");

Β grid->addWidget(new QLabel("Artist", widget, "artistlabel"), 0, 0, 0);

Β grid->addWidget(new QLabel("Title", widget, "titlelabel"), 1, 0, 0);

Β grid->addwidget(new QLabel("Catalogue", widget, "cataloguelabel"), 2, 0, 0);

Β artist_entry = new QLineEdit(widget, "artist_entry");

Β title_entry = new QLineEdit(widget, "titleentry");

Β catalogue_entry = new QLineEdit(widget, "catalogue_entry");

Β grid->addWidget(artist_entry, 0, 1, 0);

Β grid->addWidget(title_entry, 1, 1, 0);

Β grid->addWidget(catalogue_entry, 2, 1, 0);

Β connect(this, SIGNAL(okClicked()), this, SLOT(okClicked()));

}

void AddCdDialog::okClicked() {

Β char artist[200];

Β char title[200];

Β char catalogue[200];

Β int cd_id = 0;

Β strcpy(artist, artist_entry->text());

Β strcpy(title, title_entry->text());

Β strcpy(catalogue, catalogue_entry->text());

Β add_cd(artist, title, catalogue, &cd_id);

}

На рис. 17.14 ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅Π΅ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ

AddCdDialog
.

ΠžΡΠ½ΠΎΠ²Ρ‹ программирования Π² Linux - image079.jpg

Рис. 17.14 

LogonDialog

Π’Ρ‹, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΆΠ΅, Π½Π΅ смоТСтС Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Ρ‚ΡŒ Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… Π±Π΅Π· ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ рСгистрации, поэтому Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ простоС Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ для Π²Π²ΠΎΠ΄Π° ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ пароля. НазовитС этот класс

LogonDialog
. (Π”Π°, Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ остроумного ΠΈ ΠΎΠ±Ρ€Π°Π·Π½ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ!)

1. НачнСм с Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°. Π’Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π΄Π°Π»Π΅Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈ Π½Π°Π·ΠΎΠ²ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ» LogonDialog.h. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ для разнообразия этот класс описан Π² Π΄Π°Π½Π½ΠΎΠΌ случаС ΠΊΠ°ΠΊ ΠΏΠΎΡ‚ΠΎΠΌΠΎΠΊ класса

QDialog
, Π° Π½Π΅
KDialogBase
.

#include <qdialog.h>

#include <qlineedit.h>

class LogonDialog : public QDialog {