2012年5月17日木曜日

( Qt C++ )QMessageBoxの基本的な表示


はい、それでは表題の件やっていきます。

今日から何回かQMessageBoxについてやっていこうと思います。英語のリファレンスの説明もわかりやすいのですが、まぁいちいち英語見るのは疲れるのでここで日本語でまとめちゃおうと思います。

第一回目は単純なOKボタン一つのメッセージボックスを表示させるということをやります。

いつものようにQtCreaterの使用を前提とします。(QtCreaterなどの使い方は ”Qtをはじめよう" を見てください。)
またMainWindowにはbottonを一つ配置済みとします。

ではコードを

( mainwindow.h )
#include <QMainWindow>
#include <QMessageBox>

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT
    
public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
    
private slots:
    void on_pushButton_clicked();//コネクトしません。

private:
    Ui::MainWindow *ui;
};


特に難しいところはありません。<QMessageBox>は必ずインクルードしておいてください。
on_pushButton_clicked()はプッシュボタンクリックシグナルを補足します。Connectはしていませんがこれで動作します。(これがわからない方は”Qtをはじめよう"の「第16回:GUI デザイナ上でスロットを...」の記事の説明を見てください。)

( mainwindow.cpp )
#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::on_pushButton_clicked()
{
    QMessageBox msgBox;//宣言
    msgBox.setText("Hello World!! This is MessageBox!!");//表示テキストセット
    msgBox.exec();//表示
}


こちらもon_pushButton_clicked以外はまったくデザイナが吐いたコードそのままです。
on_pushButton_clicked内でメッセージボックスを表示させます。つまりボタンが押されるとメッセージボックスが表示されるという寸法です。表示方法はコードのコメントのとおりです。(QMessageBoxリファレンス


実行すると以下のようになります。

ボタンを押すと...

以上です。