2011年03月24日

QtRubyのLineEditの表示を通常からパスワード(伏せ字)にする



Qt::LineEdit::Normal



Qt::LineEdit::Password

にする

#!ruby -Ks
require 'Qt4'

app = Qt::Application.new(ARGV)
window = Qt::Widget.new
window.setWindowTitle("QLineEdit")

lineEdit = Qt::LineEdit.new
lineEdit.setEchoMode(Qt::LineEdit::Password)
lineEdit.setMaxLength(20)

layout = Qt::VBoxLayout.new
layout.addWidget(lineEdit)
window.setLayout(layout)

window.show()
app.exec()


参考:
Qt - Password field


ラベル:QtRuby
posted by sige at 08:04| QtRuby | 更新情報をチェックする

2011年01月22日

QtRubyのフォームとモーダレスフォーム(ModelessForm)と、そのフォーム間のデータ移行

※モーダレスフォーム(ModelessForm)の別の呼び方
 ・モーダレスウィンドウ(ModelessWindow)
 ・モーダレスダイアログ(ModelessDialog)
 等

以下にあるプログラムの概要

1,モーダレスフォームとして新しいフォームを呼び出す
2,呼び出された側の新しいフォームのLineEditに入力された値をOKボタンクリック時に取得する
3,呼び出した最初のフォームのLabelの値を上記2で取得した値に書き換える


main.rb---------------------------------------------------------------------

#!ruby -Ks

require 'Qt4'
require 'mainwindow.rb'

app = Qt::Application.new(ARGV)
Qt::TextCodec::setCodecForTr(Qt::TextCodec::codecForName("Shift-JIS"))

mainWin = MyWidget.new
mainWin.show
app.exec


mainwindow.rb---------------------------------------------------------------

#!ruby -Ks
# -*- coding: japanese-cp932 -*-

class MyWidget < Qt::Widget
slots 'onBtnClickMeClicked()'
slots 'setTextLabel()'

def initialize(parent = nil)
super(parent)
@times=0
init_comp
end
def init_comp
self.setWindowTitle('Hello, World!')
#resize(200, 300) #w, h
self.setGeometry(300, 300, 250, 150) #x, y, w, h
self.setToolTip("Simple Widget")
vlay=Qt::VBoxLayout.new
#Add a button..
@btnclickme=Qt::PushButton.new("Open SubWiondow")
@lbltext=Qt::Label.new("empty")
connect(@btnclickme, SIGNAL('clicked()'), SLOT('onBtnClickMeClicked()'))
vlay.addWidget(@btnclickme)
vlay.addWidget(@lbltext)
setLayout(vlay)
end
def onBtnClickMeClicked
@subWin = nil

if @subWin.nil?
@subWin=SubWindow.new()
connect(@subWin, SIGNAL('btnokClicked()'), SLOT('setTextLabel()'))
end

if(@subWin.isHidden())
@subWin.show
else
@subWin.activateWindow()
end

end

def setTextLabel()

str = @subWin.getLineEditText()
@lbltext.setText(str)
end

end


class SubWindow < Qt::Dialog
signals 'btnokClicked()'

def initialize
super()
@times=0
init_comp
end
def init_comp
setWindowTitle('QDialog-subWiondow')
#setGeometry(500, 300, 400, 300) #x, y, w, h
vlay=Qt::VBoxLayout.new
#Add a button..
@btnok=Qt::PushButton.new("ok")
@btncancel=Qt::PushButton.new("cancel")
@edtline=Qt::LineEdit.new("cancel")
connect(@btnok, SIGNAL('clicked()'), self, SIGNAL('btnokClicked()')) #SLOT -> SIGNAL
connect(@btnok, SIGNAL('clicked()'), self, SLOT('close()'))
connect(@btncancel, SIGNAL('clicked()'), self, SLOT('close()'))
vlay.addWidget(@btnok)
vlay.addWidget(@btncancel)
vlay.addWidget(@edtline)
setLayout(vlay)
end
def getLineEditText()
@edtline.text()
end

end



参考:
Qtプログラミング(Qt4.0) 第4章 プログラム作成への準備
ラベル:ruby QtRuby
posted by sige at 01:22| ruby | 更新情報をチェックする

2011年01月21日

QtRubyのフォームとモーダルフォーム(ModalForm)と、そのフォーム間のデータ移行

※モーダルフォーム(ModalForm)の別の呼び方
 ・モーダルウィンドウ(ModalWindow)
 ・モーダルダイアログ(ModalDialog))
 等

以下にあるプログラムの概要

1,モーダルフォームとして新しいフォームを呼び出す
2,呼び出された側の新しいフォームのLineEditに入力された値をOKボタンクリック時に取得する
3,呼び出した最初のフォームのLabelの値を上記2で取得した値に書き換える


main.rb---------------------------------------------------------------------

#!ruby -Ks

require 'Qt4'
require 'mainwindow.rb'

app = Qt::Application.new(ARGV)
Qt::TextCodec::setCodecForTr(Qt::TextCodec::codecForName("Shift-JIS"))

mainWin = MyWidget.new
mainWin.show
app.exec



mainwindow.rb---------------------------------------------------------------

#!ruby -Ks
# -*- coding: japanese-cp932 -*-

class MyWidget < Qt::Widget
slots 'onBtnClickMeClicked()'
def initialize
super()
@times=0
init_comp
end
def init_comp
self.setWindowTitle('Hello, World!')
#resize(200, 300) #w, h
self.setGeometry(300, 300, 250, 150) #x, y, w, h
self.setToolTip("Simple Widget")
vlay=Qt::VBoxLayout.new
#Add a button..
@btnclickme=Qt::PushButton.new("Open SubWiondow")
@lbltext=Qt::Label.new("empty")
connect(@btnclickme, SIGNAL('clicked()'), SLOT('onBtnClickMeClicked()'))
vlay.addWidget(@btnclickme)
vlay.addWidget(@lbltext)
setLayout(vlay)
end
def onBtnClickMeClicked

subWin=SubWindow.new()

if subWin.exec()==1 #QDialog::Accepted は 1、 QDialog::Rejected は 0 と定義されている
str = subWin.getLineEditText()
@lbltext.setText(str)
else
end

end

end


class SubWindow < Qt::Dialog
#slots 'onBtnClickMeClicked()'
def initialize
super()
@times=0
init_comp
end
def init_comp
setWindowTitle('QDialog-subWiondow')
#setGeometry(500, 300, 400, 300) #x, y, w, h
vlay=Qt::VBoxLayout.new
#Add a button..
@btnok=Qt::PushButton.new("ok")
@btncancel=Qt::PushButton.new("cancel")
@edtline=Qt::LineEdit.new("cancel")
connect(@btnok, SIGNAL('clicked()'), self, SLOT('accept()'))
connect(@btncancel, SIGNAL('clicked()'), self, SLOT('reject()'))
vlay.addWidget(@btnok)
vlay.addWidget(@btncancel)
vlay.addWidget(@edtline)
setLayout(vlay)
end
def getLineEditText()
@edtline.text()
end
end


参考:
Qtプログラミング(Qt4.0) 第4章 プログラム作成への準備

ラベル:ruby QtRuby
posted by sige at 00:41| ruby | 更新情報をチェックする

2011年01月10日

rails3のroutes.rbの「match ':controller(/:action(/:id(.:format)))'」について

Routing Errorが出る時(rails2はOKなのに・・・3だと・・・)は、
  ・
  ・
  ・
# This is a legacy wild controller route that's not recommended for RESTful applications.
# Note: This route will make all actions in every controller accessible via GET requests.
# match ':controller(/:action(/:id(.:format)))'


          ↓

  ・
  ・
  ・
# This is a legacy wild controller route that's not recommended for RESTful applications.
# Note: This route will make all actions in every controller accessible via GET requests.
match ':controller(/:action(/:id(.:format)))'

のように、最後の行( # match ':controller(/:action(/:id(.:format)))')の冒頭の「#」を外し、有効にする
と、解決する場合がある
ラベル:ruby Rails
posted by sige at 09:06| rails | 更新情報をチェックする

2010年12月02日

C++で書かれたQtのサンプルプログラム「Basic Sort/Filter Model Example」をQtRubyで書いてみる

以下は、「Basic Sort/Filter Model Example」をC++ -> QtRubyに変更した1例です

main.rb---------------------------------------------------------------------

#!ruby -Ks
# -*- coding: japanese-cp932 -*-

# include <QtGui>
# include "window.h"
require 'Qt4'
require 'mainwindow.rb'

=begin
void addMail(QAbstractItemModel *model, const QString &subject,
const QString &sender, const QDateTime &date)
{
model->insertRow(0);
model->setData(model->index(0, 0), subject);
model->setData(model->index(0, 1), sender);
model->setData(model->index(0, 2), date);
}
=end

def addMail(model, subject, sender, date)

model.insertRow(0)
model.setData(model.index(0, 0), Qt::Variant.new(subject))
model.setData(model.index(0, 1), Qt::Variant.new(sender))
model.setData(model.index(0, 2), Qt::Variant.new(date))

end

=begin
QAbstractItemModel *createMailModel(QObject *parent)
{
QStandardItemModel *model = new QStandardItemModel(0, 3, parent);

model->setHeaderData(0, Qt::Horizontal, QObject::tr("Subject"));
model->setHeaderData(1, Qt::Horizontal, QObject::tr("Sender"));
model->setHeaderData(2, Qt::Horizontal, QObject::tr("Date"));

addMail(model, "Happy New Year!", "Grace K. <grace@software-inc.com>",
QDateTime(QDate(2006, 12, 31), QTime(17, 03)));
addMail(model, "Radically new concept", "Grace K. <grace@software-inc.com>",
QDateTime(QDate(2006, 12, 22), QTime(9, 44)));
addMail(model, "Accounts", "pascale@nospam.com",
QDateTime(QDate(2006, 12, 31), QTime(12, 50)));
addMail(model, "Expenses", "Joe Bloggs <joe@bloggs.com>",
QDateTime(QDate(2006, 12, 25), QTime(11, 39)));
addMail(model, "Re: Expenses", "Andy <andy@nospam.com>",
QDateTime(QDate(2007, 01, 02), QTime(16, 05)));
addMail(model, "Re: Accounts", "Joe Bloggs <joe@bloggs.com>",
QDateTime(QDate(2007, 01, 03), QTime(14, 18)));
addMail(model, "Re: Accounts", "Andy <andy@nospam.com>",
QDateTime(QDate(2007, 01, 03), QTime(14, 26)));
addMail(model, "Sports", "Linda Smith <linda.smith@nospam.com>",
QDateTime(QDate(2007, 01, 05), QTime(11, 33)));
addMail(model, "AW: Sports", "Rolf Newschweinstein <rolfn@nospam.com>",
QDateTime(QDate(2007, 01, 05), QTime(12, 00)));
addMail(model, "RE: Sports", "Petra Schmidt <petras@nospam.com>",
QDateTime(QDate(2007, 01, 05), QTime(12, 01)));

return model;
}
=end

def createMailModel(parent=nil)

model = Qt::StandardItemModel.new(0, 3)

model.setHeaderData(0, Qt::Horizontal, Qt::Variant.new(Qt::Object::tr("Sibject")))
model.setHeaderData(1, Qt::Horizontal, Qt::Variant.new(Qt::Object::tr("Sender")))
model.setHeaderData(2, Qt::Horizontal, Qt::Variant.new(Qt::Object::tr("Date")))


addMail(model, "Happy New Year!", "Grace K. <grace@software-inc.com>",Qt::DateTime.new(Qt::Date.new(2006, 12, 31), Qt::Time.new(17, 03)))
addMail(model, "Radically new concept", "Grace K. <grace@software-inc.com>",Qt::DateTime.new(Qt::Date.new(2006, 12, 22), Qt::Time.new(9, 44)))
addMail(model, "Accounts", "pascale@nospam.com",Qt::DateTime.new(Qt::Date.new(2006, 12, 31), Qt::Time.new(12, 50)))
addMail(model, "Expenses", "Joe Bloggs <joe@bloggs.com>",Qt::DateTime.new(Qt::Date.new(2006, 12, 25), Qt::Time.new(11, 39)))
addMail(model, "Re: Expenses", "Andy <andy@nospam.com>",Qt::DateTime.new(Qt::Date.new(2007, 01, 02), Qt::Time.new(16, 05)))
addMail(model, "Re: Accounts", "Joe Bloggs <joe@bloggs.com>",Qt::DateTime.new(Qt::Date.new(2007, 01, 03), Qt::Time.new(14, 18)))
addMail(model, "Re: Accounts", "Andy <andy@nospam.com>",Qt::DateTime.new(Qt::Date.new(2007, 01, 03), Qt::Time.new(14, 26)))
addMail(model, "Sports", "Linda Smith <linda.smith@nospam.com>",Qt::DateTime.new(Qt::Date.new(2007, 01, 05), Qt::Time.new(11, 33)))
addMail(model, "AW: Sports", "Rolf Newschweinstein <rolfn@nospam.com>",Qt::DateTime.new(Qt::Date.new(2007, 01, 05), Qt::Time.new(12, 00)))
addMail(model, "RE: Sports", "Petra Schmidt <petras@nospam.com>",Qt::DateTime.new(Qt::Date.new(2007, 01, 05), Qt::Time.new(12, 01)))

return model
end

=begin
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
Window window;
window.setSourceModel(createMailModel(&window));
window.show();
return app.exec();
}
=end

app = Qt::Application.new(ARGV)
Qt::TextCodec::setCodecForTr(Qt::TextCodec::codecForName("Shift-JIS"))

mainWin = MyWidget.new
mainWin.setSourceModel(createMailModel(mainWin)) #mainWinを、メインウィジェットとする
mainWin.show
app.exec



mainwindow.rb---------------------------------------------------------------------

#!ruby -Ks
# -*- coding: japanese-cp932 -*-

# include <QtGui>
# include "window.h"

class MyWidget < Qt::Widget
slots 'onBtnClickMeClicked()'
slots 'filterRegExpChanged()'
slots 'filterColumnChanged()'
slots 'sortChanged()'

def initialize
super()
init_comp
end

def init_comp

# proxyModel = new QSortFilterProxyModel;
# proxyModel->setDynamicSortFilter(true);
@proxyModel = Qt::SortFilterProxyModel.new
@proxyModel.setDynamicSortFilter(true)

# sourceGroupBox = new QGroupBox(tr("Original Model"));
# proxyGroupBox = new QGroupBox(tr("Sorted/Filtered Model"));
sourceGroupBox = Qt::GroupBox.new(tr("Original Model"))
proxyGroupBox = Qt::GroupBox.new(tr("Sorted/Filtered Model"))

# sourceView = new QTreeView;
# sourceView->setRootIsDecorated(false);
# sourceView->setAlternatingRowColors(true);
@sourceView = Qt::TreeView.new
@sourceView.setRootIsDecorated(false)
@sourceView.setAlternatingRowColors(true)

# proxyView = new QTreeView;
# proxyView->setRootIsDecorated(false);
# proxyView->setAlternatingRowColors(true);
# proxyView->setModel(proxyModel);
# proxyView->setSortingEnabled(true);
@proxyView = Qt::TreeView.new
@proxyView.setRootIsDecorated(false)
@proxyView.setAlternatingRowColors(true)
@proxyView.setModel(@proxyModel)
@proxyView.setSortingEnabled(true)

# sortCaseSensitivityCheckBox = new QCheckBox(tr("Case sensitive sorting"));
# filterCaseSensitivityCheckBox = new QCheckBox(tr("Case sensitive filter"));
@sortCaseSensitivityCheckBox = Qt::CheckBox.new(tr("Case sensitive sorting"))
@filterCaseSensitivityCheckBox = Qt::CheckBox.new(tr("Case sensitive filter"))

# filterPatternLineEdit = new QLineEdit;
# filterPatternLabel = new QLabel(tr("&Filter pattern:"));
# filterPatternLabel->setBuddy(filterPatternLineEdit);
@filterPatternLineEdit = Qt::LineEdit.new
@filterPatternLabel = Qt::Label.new(tr("&Filter pattern:"))
@filterPatternLabel.setBuddy(@filterPatternLineEdit)


#"Regular expression"-> 正規表現
#"Wildcard"-> ワイルドカード
#"Fixed string"-> 固定文字列
# filterSyntaxComboBox = new QComboBox;
# filterSyntaxComboBox->addItem(tr("Regular expression"), QRegExp::RegExp);
# filterSyntaxComboBox->addItem(tr("Wildcard"), QRegExp::Wildcard);
# filterSyntaxComboBox->addItem(tr("Fixed string"), QRegExp::FixedString);
# filterSyntaxLabel = new QLabel(tr("Filter &syntax:"));
# filterSyntaxLabel->setBuddy(filterSyntaxComboBox);

@filterSyntaxComboBox = Qt::ComboBox.new
@filterSyntaxComboBox.addItem(tr("Regular expression"), Qt::Variant.new(Qt::RegExp::RegExp.to_i))
@filterSyntaxComboBox.addItem(tr("Wildcard"), Qt::Variant.new(Qt::RegExp::Wildcard.to_i))
@filterSyntaxComboBox.addItem(tr("Fixed string"), Qt::Variant.new(Qt::RegExp::FixedString.to_i))
@filterSyntaxLabel = Qt::Label.new(tr("Filter &syntax:"))
@filterSyntaxLabel.setBuddy(@filterSyntaxComboBox)

# filterColumnComboBox = new QComboBox;
# filterColumnComboBox->addItem(tr("Subject"));
# filterColumnComboBox->addItem(tr("Sender"));
# filterColumnComboBox->addItem(tr("Date"));
# filterColumnLabel = new QLabel(tr("Filter &column:"));
# filterColumnLabel->setBuddy(filterColumnComboBox);
@filterColumnComboBox = Qt::ComboBox.new
@filterColumnComboBox.addItem(tr("Subject"))
@filterColumnComboBox.addItem(tr("Sender"))
@filterColumnComboBox.addItem(tr("Date"))
@filterColumnLabel = Qt::Label.new(tr("Filter &column:"))
@filterColumnLabel.setBuddy(@filterColumnComboBox)

# connect(filterPatternLineEdit, SIGNAL(textChanged(QString)), this, SLOT(filterRegExpChanged()));
# connect(filterSyntaxComboBox, SIGNAL(currentIndexChanged(int)),this, SLOT(filterRegExpChanged()));
# connect(filterColumnComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(filterColumnChanged()));
# connect(filterCaseSensitivityCheckBox, SIGNAL(toggled(bool)), this, SLOT(filterRegExpChanged()));
# connect(sortCaseSensitivityCheckBox, SIGNAL(toggled(bool)), this, SLOT(sortChanged()));
connect(@filterPatternLineEdit, SIGNAL('textChanged(const QString &)'),self, SLOT('filterRegExpChanged()'))
connect(@filterSyntaxComboBox, SIGNAL('currentIndexChanged(int)'),self, SLOT('filterRegExpChanged()'))
connect(@filterColumnComboBox, SIGNAL('currentIndexChanged(int)'),self, SLOT('filterColumnChanged()'))
connect(@filterCaseSensitivityCheckBox, SIGNAL('toggled(bool)'),self, SLOT('filterRegExpChanged()'))
connect(@sortCaseSensitivityCheckBox, SIGNAL('toggled(bool)'),self, SLOT('sortChanged()'))

# QHBoxLayout *sourceLayout = new QHBoxLayout;
# sourceLayout->addWidget(sourceView);
# sourceGroupBox->setLayout(sourceLayout);
sourceLayout = Qt::HBoxLayout.new
sourceLayout.addWidget(@sourceView)
sourceGroupBox.setLayout(sourceLayout)

# QGridLayout *proxyLayout = new QGridLayout;
# proxyLayout->addWidget(proxyView, 0, 0, 1, 3);
# proxyLayout->addWidget(filterPatternLabel, 1, 0);
# proxyLayout->addWidget(filterPatternLineEdit, 1, 1, 1, 2);
# proxyLayout->addWidget(filterSyntaxLabel, 2, 0);
# proxyLayout->addWidget(filterSyntaxComboBox, 2, 1, 1, 2);
# proxyLayout->addWidget(filterColumnLabel, 3, 0);
# proxyLayout->addWidget(filterColumnComboBox, 3, 1, 1, 2);
# proxyLayout->addWidget(filterCaseSensitivityCheckBox, 4, 0, 1, 2);
# proxyLayout->addWidget(sortCaseSensitivityCheckBox, 4, 2);
# proxyGroupBox->setLayout(proxyLayout);
proxyLayout = Qt::GridLayout.new
proxyLayout.addWidget(@proxyView, 0, 0, 1, 3)
proxyLayout.addWidget(@filterPatternLabel, 1, 0)
proxyLayout.addWidget(@filterPatternLineEdit, 1, 1, 1, 2)
proxyLayout.addWidget(@filterSyntaxLabel, 2, 0)
proxyLayout.addWidget(@filterSyntaxComboBox, 2, 1, 1, 2)
proxyLayout.addWidget(@filterColumnLabel, 3, 0)
proxyLayout.addWidget(@filterColumnComboBox, 3, 1, 1, 2)
proxyLayout.addWidget(@filterCaseSensitivityCheckBox, 4, 0, 1, 2)
proxyLayout.addWidget(@sortCaseSensitivityCheckBox, 4, 2)
proxyGroupBox.setLayout(proxyLayout)

# QVBoxLayout *mainLayout = new QVBoxLayout;
# mainLayout->addWidget(sourceGroupBox);
# mainLayout->addWidget(proxyGroupBox);
# setLayout(mainLayout);
mainLayout = Qt::VBoxLayout.new
mainLayout.addWidget(sourceGroupBox)
mainLayout.addWidget(proxyGroupBox)
setLayout(mainLayout)

# setWindowTitle(tr("Basic Sort/Filter Model"));
# resize(500, 450);
setWindowTitle('Basic Sort/Filter Model')
resize(500, 400) #w, h

# proxyView->sortByColumn(1, Qt::AscendingOrder);
# filterColumnComboBox->setCurrentIndex(1);
@proxyView.sortByColumn(1, Qt::AscendingOrder)
@filterColumnComboBox.setCurrentIndex(1)

# filterPatternLineEdit->setText("Andy|Grace");
# filterCaseSensitivityCheckBox->setChecked(true);
# sortCaseSensitivityCheckBox->setChecked(true);
@filterPatternLineEdit.setText("Andy|Grace")
@filterCaseSensitivityCheckBox.setChecked(true)
@sortCaseSensitivityCheckBox.setChecked(true)

end


def setSourceModel(model)

@proxyModel.setSourceModel(model)
@sourceView.setModel(model)

end

def filterRegExpChanged()

#QRegExp::PatternSyntax syntax = QRegExp::PatternSyntax(filterSyntaxComboBox->itemData(filterSyntaxComboBox->currentIndex()).toInt());
syntax = @filterSyntaxComboBox.itemData(@filterSyntaxComboBox.currentIndex()).to_i

#Qt::CaseSensitivity caseSensitivity = filterCaseSensitivityCheckBox->isChecked() ? Qt::CaseSensitive : Qt::CaseInsensitive;
caseSensitivity = @filterCaseSensitivityCheckBox.isChecked() ? Qt::CaseSensitive : Qt::CaseInsensitive

#QRegExp regExp(filterPatternLineEdit->text(), caseSensitivity, syntax);
regExp = Qt::RegExp.new(@filterPatternLineEdit.text(), caseSensitivity, syntax);

#proxyModel->setFilterRegExp(regExp);
@proxyModel.setFilterRegExp(regExp);

end

def filterColumnChanged()

#proxyModel->setFilterKeyColumn(filterColumnComboBox->currentIndex());
@proxyModel.setFilterKeyColumn(@filterColumnComboBox.currentIndex())

end

def sortChanged()

#proxyModel->setSortCaseSensitivity(sortCaseSensitivityCheckBox->isChecked() ? Qt::CaseSensitive : Qt::CaseInsensitive);
@proxyModel.setSortCaseSensitivity(@sortCaseSensitivityCheckBox.isChecked() ? Qt::CaseSensitive : Qt::CaseInsensitive)

end

end



#
上記、スクリプトを実行するには、
コマンドプロンプトでrubyスクリプトを実行する
NetBeansでrubyスクリプトを実行する
SciTEエディタでrubyスクリプトを実行する
のなどを参照してください
ラベル:ruby QtRuby
posted by sige at 00:34| QtRuby | 更新情報をチェックする

2010年11月05日

Redcar(オープンソースのエディタ)のインストール



Redcarは、Ruby製プログラマ向けエディタ(IDE)です

前提:
※Rubyは1.8.7以降、Javaは1.4.0以降が必要

インストール:
以下のコマンドを2つ入力するだけです

gem install redcar
redcar install



追記:
日本語を使うと検索などがおかしな動作になる(2011/2/11現在 Redcar 0.10 ( i386-mingw32 ))

参考:
Redcar
TextMateをLinux/Windowsで使いたい人のためのRedcar
ラベル:ruby
posted by sige at 06:50| ruby | 更新情報をチェックする

2010年08月24日

QtRubyのQErrorMessage



#!ruby -Ks
# -*- coding: japanese-cp932 -*-
require 'Qt4'

app = Qt::Application.new(ARGV)
e = Qt::ErrorMessage.new
e.showMessage("エラーです!")

app.exec()


#
上記、スクリプトを実行するには、
コマンドプロンプトでrubyスクリプトを実行する
NetBeansでrubyスクリプトを実行する
SciTEエディタでrubyスクリプトを実行する
の内、好みの方法を参照してください
ラベル:ruby QtRuby
posted by sige at 21:44| Comment(0) | QtRuby | 更新情報をチェックする

2010年08月23日

QtRubyのQMessageBox



#!ruby -Ks
# -*- coding: cp932 -*-
require 'Qt4'

app = Qt::Application.new(ARGV)
msgBox = Qt::MessageBox.new
msgBox.setText('情報')
msgBox.setInformativeText("rubyをはじめますか?")
msgBox.setStandardButtons(Qt::MessageBox::Yes | Qt::MessageBox::No)
msgBox.setDefaultButton(Qt::MessageBox::Yes)

ret=msgBox.exec()
app.exec()


#
上記、スクリプトを実行するには、
コマンドプロンプトでrubyスクリプトを実行する
NetBeansでrubyスクリプトを実行する
SciTEエディタでrubyスクリプトを実行する
の内、好みの方法を参照してください
ラベル:ruby QtRuby
posted by sige at 23:00| Comment(0) | QtRuby | 更新情報をチェックする

2010年08月19日

Ruby 1.9.2リリース

posted by sige at 23:29| Comment(0) | ruby | 更新情報をチェックする

QtRubyのQFileDialog




#!ruby -Ks
require 'Qt4'

app = Qt::Application.new(ARGV)
f = Qt::FileDialog.new
f.show()
app.exec()


#
上記、スクリプトを実行するには、
コマンドプロンプトでrubyスクリプトを実行する
NetBeansでrubyスクリプトを実行する
SciTEエディタでrubyスクリプトを実行する
の内、好みの方法を参照してください
ラベル:ruby QtRuby
posted by sige at 23:24| Comment(0) | QtRuby | 更新情報をチェックする

2010年08月14日

QtRubyのQTextEdit



#!ruby -Ks
require 'Qt4'

app = Qt::Application.new(ARGV)
window = Qt::Widget.new
window.setWindowTitle("QTextEdit")

textEdit = Qt::TextEdit.new

layout = Qt::VBoxLayout.new
layout.addWidget(textEdit)
window.setLayout(layout)

window.show()
app.exec()


#
上記、スクリプトを実行するには、
コマンドプロンプトでrubyスクリプトを実行する
NetBeansでrubyスクリプトを実行する
SciTEエディタでrubyスクリプトを実行する
の内、好みの方法を参照してください
ラベル:QtRuby ruby
posted by sige at 07:15| Comment(0) | QtRuby | 更新情報をチェックする

2010年08月13日

QtRubyのQLineEdit



#!ruby -Ks
require 'Qt4'

app = Qt::Application.new(ARGV)
window = Qt::Widget.new
window.setWindowTitle("QLineEdit")

lineEdit = Qt::LineEdit.new
lineEdit.setMaxLength(20)

layout = Qt::VBoxLayout.new
layout.addWidget(lineEdit)
window.setLayout(layout)

window.show()
app.exec()


#
上記、スクリプトを実行するには、
コマンドプロンプトでrubyスクリプトを実行する
NetBeansでrubyスクリプトを実行する
SciTEエディタでrubyスクリプトを実行する
の内、好みの方法を参照してください
ラベル:QtRuby ruby
posted by sige at 00:01| Comment(0) | QtRuby | 更新情報をチェックする

2010年08月11日

QtRubyのQSlider



#!ruby -Ks
require 'Qt4'

app = Qt::Application.new(ARGV)
window = Qt::Widget.new
window.setWindowTitle("QSlider")

slider = Qt::Slider.new(Qt::Horizontal)
slider.setRange(0,10)

layout = Qt::VBoxLayout.new
layout.addWidget(slider)
window.setLayout(layout)

window.show()
app.exec()



#
上記、スクリプトを実行するには、
コマンドプロンプトでrubyスクリプトを実行する
NetBeansでrubyスクリプトを実行する
SciTEエディタでrubyスクリプトを実行する
の内、好みの方法を参照してください
ラベル:QtRuby ruby
posted by sige at 22:06| Comment(0) | QtRuby | 更新情報をチェックする

2010年08月10日

QtRubyのQDateTimeEdit



#!ruby -Ks
require 'Qt4'

app = Qt::Application.new(ARGV)
d = Qt::DateTimeEdit.new
d.show()
app.exec()


#
上記、スクリプトを実行するには、
コマンドプロンプトでrubyスクリプトを実行する
NetBeansでrubyスクリプトを実行する
SciTEエディタでrubyスクリプトを実行する
の内、好みの方法を参照してください
ラベル:QtRuby ruby
posted by sige at 22:59| Comment(0) | QtRuby | 更新情報をチェックする

2010年08月09日

QtRubyのQTimeEdit



#!ruby -Ks
require 'Qt4'

app = Qt::Application.new(ARGV)
d = Qt::TimeEdit.new
d.show()
app.exec()


#
上記、スクリプトを実行するには、
コマンドプロンプトでrubyスクリプトを実行する
NetBeansでrubyスクリプトを実行する
SciTEエディタでrubyスクリプトを実行する
の内、好みの方法を参照してください
ラベル:QtRuby ruby
posted by sige at 13:44| Comment(0) | QtRuby | 更新情報をチェックする
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。