Qtプログラミング – スプレッドシート検索続き
津路です。
前回では、FindDialogクラスを実装しました。
今回は、これを利用して、スプレッドシートの上にダイアログを表示します。
まず、mainwindowにクラス変数を作成して、初期化します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | #include "finddialog.h" class QAtion; class QLabel; class FindDialog; class Spreadsheet; class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(); protected: void closeEvent(QCloseEvent *event); private slots: void find(); private: void createMenus(); void createActions(); QMenu *editMenu, *selectMenu; Spreadsheet *spreadsheet; QAction *findAction; FindDialog *findDialog; }; |
次に、mainwindowクラスにて、変数を初期化し、find関数を実装します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | MainWindow::MainWindow() { spreadsheet = new Spreadsheet; setCentralWidget(spreadsheet); setWindowIcon(QIcon(":/images/inspect.png")); createActions(); createMenus(); findDialog=NULL; } void MainWindow::find() { if(!findDialog) { findDialog = new FindDialog(this); connect(findDialog, SIGNAL(findNext(const QString &, Qt::CaseSensitivity)), spreadsheet, SLOT(findNext(const QString &, Qt::CaseSensitivity))); connect(findDialog, SIGNAL(findPrevious(const QString &, Qt::CaseSensitivity)), spreadsheet, SLOT(findPrevious(const QString &, Qt::CaseSensitivity))); } findDialog->show(); findDialog->activateWindow(); } |