SyntaxHighlighter

2013年4月30日火曜日

【山ガール】準備その②

山ガール出発2日前、服装をゴルフ用品で済まそう!という甘い考えは却下され・・・

やはり、靴は登山用のが必要のようです。

新たに、靴と靴下を購入しました(2万円)

靴下も専用のごついのが必要のため諦めてボーダーライン・・・
それ以外の柄を売っていないところが凄い!

そして、いのしし対策?としてウェストポーチも追加(急遽なのでゴルフ用)

金目のものはリュックに入れてはいけないらしい。猪に持って行かれるから(笑)

その他、行動食としておやつ!

軽い考えでの登山は甘いようだ。結構しっかり準備(お金)が必要かも?
しかし、もう大丈夫だろう・・・大丈夫であってほしい・・・

2013年4月25日木曜日

【山ガール】の準備します

芦屋駅~六甲山のハイキング(4時間25分)・・・推定

女子会で飲んだくれてばっかりのため思いつで実施(笑)

日時:5月某日
参加者:飲んだくれ女子3名+ガイドの男性1名

参照:山ガールのための山歩きガイド

【準備】
初めての登山なので、念入りに用意します。

【Qt】カスタムウィジェットの追加

■カスタムウィジェットの追加方法(スピンボックス)

既存のウィジェットから派生クラスを作成してカスタムウィジェットを作成する
※QwtScaleDrawでの記録を残す予定だったけど、折角なので違うものを作ってみました。

【サンプル】16進数スピンボックス





←カスタムウィジェット

←上記の値を10進数で表示するエディット






1)既存クラスを派生して任意の派生クラスを生成
  
※例に16進数のスピンボックスを使用
----------------------------------------------------------


#ifndef HEXSPINBOX_H 
#define HEXSPINBOX_H 
#include <QtGui> 
#include <QSpinBox> 

class QRegExpValidator

// 16進数スピンボックスクラス 
class HexSpinBox : public QSpinBox 

  Q_OBJECT 
private

  // バリデータ 
  QRegExpValidator *valiDator
public

  //コンストラクタ
  HexSpinBox(QWidget *parent = 0
   :QSpinBox(parent)
  { 
    // データ範囲設定 
    setRange(0,0x7FFF); 
    // バリデータ設定 
    valiDator = new QRegExpValidator(QRegExp("[0-9A-Fa-f]{1,8}"),this); 
  } 
protected

  // バリデータマッチング確認 
  QValidator::State validate(QString &amp;val, int &amp;pos) const 
  { 
    return valiDator-&gt;validate(val,pos); 
  } 

  // 文字列から整数に変換 
  int valueFromText(const QString &amp;val) const 
  { 
    //bool bRet; 
    //return val.toInt(bRet,16); 
    // 変換結果は未使用で0を返すためNULL 
    return val.toInt(NULL,16);
   

   // 整数を16進数文字列に変換(英小文字を英大文字にする) 
  QString textFromValue(int val) const
  { 
    return QString::number(val,16).toUpper();
   
};
#endif // HEXSPINBOX_H
----------------------------------------------------------

2)GUIフォーマットにSpinBoxウィジェットを追加して格上げする

①追加したクラス名

②追加ボタン押下

③追加された事を確認

④格上げボタン押下

※グローバルにする必要は特にないのでそのまま。











3)メインクラスにイベントスロットを追加して完了!


2013年4月18日木曜日

【WordPress】ja.poファイルの作成

WordPressの日本語翻訳ファイル、ja.poからja.moファイルの生成でちょっとつまずいたのでメモ。。


【編集手順】
--------------------------------------------------------------
1)ja.poファイルはテキストエディタで開いて編集。


2)ja.moファイル生成に「Poedit」をインストール。
  CodeStyling Localizationプラグインでも出来るようだが、作成元が「Poedit」を使ってるので合わせる

  ダウンロードサイト

  
  ①windows版 poedit-1.5.5-setup.exe をインストールして実行

  ②起動した「Poedit」のソーステキストに編集済みのja.poファイルをドラッグ&ドロップ。

  ③「保存」クリックでja.moファイル生成
--------------------------------------------------------------

と、とても簡単だが、既存の箇所で以下エラーが発生

1)エラー:'msgstr' is not a valid PHP format string, unlike 'msgid'. Reason: the character that

有効なPHP書式文字列ではありません。

良く見と確かにフォーマットが抜けている。

【誤】msgid "% comments"
【誤】msgstr "%件"
【正】msgid "%s comments"
【正】msgstr "%s件"

直せばエラーはななくなるが、既存で販売されてるテーマだ・・・
ここは「未確定」としてやり過ごし、そのうち、作成者にこそっと連絡しておこう


2)エラー: a format specification for argument 1 doesn't exist in 'msgstr'

議論1の書式仕様は「msgstr」に存在しません。

こちらは、msgidで"%s"使用に対し、msgstrで%s未使用で固定数を指定していたので直す。
直さなくても「未確定」でもいいか。。

以上でとりあえずコンパイル完了!


2013年4月12日金曜日

【Qt】グラフ描画

Qtのグラフ描画

Qwtを使用してグラフの描画を行う。

----------------------------------------------------
インストール方法はこちらを参照させて頂いた。
----------------------------------------------------

しかし、軸の文字はdouble型固定となっているが
日付等文字列を設定したい・・・・

1)QwtScaleDrawの派生クラス(ScaleDraw)を作成する

2)drawLabelを作成し任意の文字列に変換する

  あらかじめ、QListで軸の「文字リスト」を作成し、ScaleDrawにSetし、
  描画要求時の軸値は1~連番として置く。
  
  ラベル描画時に、軸値を任意の「文字リスト」に変換して表示する


正しいやり方かは解らないが、上手くいったのでよし・・・とする。

2013年4月8日月曜日

【Qt】ウィジェット操作(QTableWidget)

Qt TableWidget (キュート テーブルウィジェット)



// メイン
MainWindow::MainWindow(QWidget *parent) :

QMainWindow(parent),

ui(new Ui::MainWindow)

{

ui->setupUi(this);

// ラベル1のlineEditに文字を表示する。
ui->lineEdit->setText(“TEST”);

//——————————
//ボタンイベント登録
//——————————
QObject::connect(ui->pushButton, SIGNAL(clicked()), this, SLOT(clickPshBtn()));

//——————————
//テーブル生成
//——————————
QTableWidget* tblWdgt;
tblWdgt = ui->tableWidget;

// クリア
tblWdgt->clear();

// テーブルの列数、行数を設定する
tblWdgt->setColumnCount( D_MAX_COL );
tblWdgt->setRowCount( D_MAX_ROW );

// 列のタイトル設定
tblWdgt->setHorizontalHeaderLabels(
 QStringList()
  << tr(“Title 1″)
  << tr(“Title 2″ )
  << tr(“Title 3″ )
  << tr(“Title 4″ )
  << tr(“Title 5″) );

//——————————
//テーブルプロパティ設定
//——————————
//セル選択不可にする場合
tblWdgt->setSelectionMode(QAbstractItemView::NoSelection);

//いわゆるExcelみたいなタイプ。Ctrl+クリックで飛び地の選択も可能。
tblWdgt->setSelectionMode(QAbstractItemView::ExtendedSelection);

//ダブルクリックでの編集不可にする
tblWdgt->setEditTriggers(QAbstractItemView::NoEditTriggers);

//カラム[0]の列幅設定
tblWdgt->setColumnWidth(COL_1,100);

// 選択したセルの色をデフォルトのグレーから変更する
// 親のカラーパレットを取得し変更する
//Qt::red, Qt::blue, Qt::green, Qt::yellow, Qt::magenta, Qt::cyan
QPalette palette = tblWdgt->palette();
palette.setColor(QPalette::Highlight, Qt::red);//現在選択されている項目の背景色
palette.setColor(QPalette::HighlightedText,Qt::green);//現在選択されている項目の文字色
tblWdgt->setPalette(palette);
}

//追加ボタンイベント
void MainWindow::clickPshBtn()

{
QTableWidget* tblWdgt = ui->tableWidget;
//最大行数の場合、先頭行の削除
if(m_row >= D_MAX_ROW){

tblWdgt->removeRow(0);
m_row–;

//最終行追加
tblWdgt->insertRow(m_row);

}
//データを追加する
count++;
QTableWidgetItem *item[COL_MAX];
item[COL_1] = new QTableWidgetItem(QString(“data1 #%8.0f”).arg(0.1));
item[COL_2] = new QTableWidgetItem(QString(“data2 #%1″).arg(count));
item[COL_3] = new QTableWidgetItem(QString(“data3 #%1″).arg(count));
item[COL_4] = new QTableWidgetItem(QString(“data4 #%1″).arg(count));
item[COL_5] = new QTableWidgetItem(QString(“data5 #%1″).arg(count));
for(int ncol=0;ncol<COL_MAX;ncol++){ tblWdgt->setItem(m_row, ncol, item[ncol]);}

// 指定したアイテム(行)までスクロール(列は未指定)
QTableWidgetItem *pItem = tblWdgt->item( m_row, 0 );
tblWdgt->scrollToItem( pItem );

//行インクリメント
m_row++;

}

【Qt】文字列操作


■文字列操作(Qstring)
——————————————————————————–
QString str = “A”
str.append(“B”);       // 文字の追加 = “AB”となる
str.replace(“B”,”CDE”);   // 文字の置換 = “ACDE”となる

 //フォーマット
QString str = QString(“%1-%2-%3″).arg(“2013″).arg(“3″).arg(“18″); // 2013-3-18


//浮動小数点の「0」パディング(全体数,Flort型,小数点以下の桁数)
double m_presentTime = 0.1;
QString("%1[sec]").arg(m_presentTime,5,'f',2,QChar('0')) 

//---- 表示 ----
00.10[sec]

■文字列リスト操作(QstringList)
——————————————————————————–
// リスト作成
QstringList list;
list << “文字1″;
list << “文字2″;

//文字列を「,」で区切ってリストに保存
QString str = “1,2″;
QStringList list = str.split(‘,’);

//リストを正数に変換してフォーマット(“01-002″)
str = QString(“%1-%2″).arg(list[1],2.10,QChar(’0′)).arg(list[3],3.10,QChar(’0′));


■文字列型変換
——————————————————————————–
// QStringからChar
QString.toLocal8Bit().data();