2012年3月17日土曜日

( Qt C++ )ステータスバーにウィジットを追加する。




フリーソフトを公開すると言っていましたが、どうもブログにはアップロードできそうにないので別ホームページを作成しそこにリンクをはって公開という形になりそうです。ですのでもう少しかかります。

フリーソフト自体はだいたい完成しました。暗記カードのようなソフトです。暗記カードを実際に買うとかさばるし、Vectorにサクッと問題と回答が作れてシンプルに出題できるフリーソフトがなかったので作りました。

言語はC#で1000~2000行くらいの小規模のものです。コードは汚いままですが、処理停止エラーが出ないことを確認したら試作版として近いうち公開します。



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

前回ステータスバーを使用するで基本的な使い方を扱いました。今回はステータスバーに他のウィジットを追加する方法をやっていきます。

サンプルは独自のものを使用します。
また、いつものようにQtCreaterの使用を前提とします。(QtCreaterなどの使い方は ”Qtをはじめよう" を見てください。)
サンプルはまっさらなメインウィンドウの状態を想定しています。ステータスバーの配置方法は省略します。わからないかたは「ステータスバーを使用する」の記事を見てください。

ではコードを


(mainwindow.h)
#include <QMainWindow>

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT
    
public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

private:
    Ui::MainWindow *ui;
};



(mainwindow.cpp)
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "QLabel"
#include "QTextEdit"
#include "QPushButton"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    QLabel *label = new QLabel(this);
    QLabel *label2 = new QLabel(this);
    QLabel *label3 = new QLabel(this);
    QTextEdit *textedit = new QTextEdit(this);
    QPushButton *button = new QPushButton(this);
    label->setText("status1");
    label2->setText("status2");
    label3->setText("status3");

    ui->statusBar->addPermanentWidget(label, 100);//右に追加
    ui->statusBar->addPermanentWidget(label2, 100);
    ui->statusBar->addPermanentWidget(textedit, 0);
    ui->statusBar->addPermanentWidget(button, 100);
    ui->statusBar->addWidget(label3, 100);//左に追加
}

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


はい簡単ですね。addPermanentWidgetで右側にウィジットを追加。addWidgetで左にウィジットを追加していっています。(リファレンスへ


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

以上です。