⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainwindow.cpp

📁 linux 程序设计 第三版 源代码 马修 著 非常经典
💻 CPP
字号:
#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");  KAction *addcd_action = new KAction("&Add CD", "filenew",                          KStdAccel::key(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) 2003 Wrox Press\n"                 "email@email.com\n");  QPopupMenu *helpmenu = helpMenu(about);  menuBar()->insertItem( "&File", filemenu);  menuBar()->insertItem(i18n("&Help"), helpmenu);  addcd_action->plug(filemenu);  filemenu->insertSeparator();  quit_action->plug(filemenu);  addcd_action->plug(toolBar());  quit_action->plug(toolBar());               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);  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);}void MainWindow::doSearch(){  cd_search_st *cd_res = new cd_search_st;  current_cd_st *cd = new current_cd_st;  struct current_tracks_st ct;  int res1, i, j, res2, res3;  char track_title[110];  char search_text[100];  char statusBar_text[200];  QListViewItem *cd_item;      strcpy(search_text, search_entry->text());    res1 = find_cds(search_text, cd_res);    /* Update the status bar to display the search results */  sprintf(statusBar_text, " Displaying %d result(s) for search string ' %s '",          res1 <= MAX_CD_RESULT ? res1 : MAX_CD_RESULT, search_text);  statusBar()->message(statusBar_text);  i = 0;  list->clear();      while (i < res1 && i < MAX_CD_RESULT) {    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;     /* Populate the tree with the current cd's tracks */    while (j < res3) {      sprintf(track_title, " Track %d. ", j+1);      strcat(track_title, ct.track[j++]);      new QListViewItem(cd_item, track_title);     }      }}void MainWindow::AddCd(){  AddCdDialog *dialog = new AddCdDialog(this);  dialog->show();  }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -