大阪市中央区 システムソフトウェア開発会社

営業時間:平日09:15〜18:15
MENU

Qtプログラミング – スプレッドシート検索続き

株式会社クローバーフィールドの経営理念
著者:津路高広
公開日:2019/11/29
最終更新日:2019/11/29
カテゴリー:技術情報

津路です。
前回では、FindDialogクラスを実装しました。
今回は、これを利用して、スプレッドシートの上にダイアログを表示します。
まず、mainwindowにクラス変数を作成して、初期化します。

#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関数を実装します。

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();
}
    上に戻る