2012年01月15日

rubyのqtbindingsとQtのGUIツール(designer.exe)でデザインしGUIを作る

前提:
・qtbindings
・qt-sdk-win-opensource-2010.04.exe
がインストールしてあること

1、スタート→すべてのプログラム→Qt SDK by Nokia v2010.04 (open source)→Tools→Qt esignerでQtのGUIツール(designer.exe)を起動

2、QtのGUIツール(designer.exe)で、pushButton、lineEditを配置し、untitled.uiで適当なフォルダに保存する

3、以下のコマンドを実行しuiファイルをrbファイルに変換する

>rbuic4 untitled.ui >untitled.rb

4、以下を適当なファイル名(main.rb等)で保存
#main.rb-----------------------------------------------------------------


require 'rubygems'
require 'qt4'
require 'untitled.rb'

class MyWindow < Qt::MainWindow
slots 'button_clicked()'

def initialize
super()
@u=Ui::MainWindow.new
@u.setupUi(self)
connect(@u.pushButton, SIGNAL('clicked()'), self, SLOT('button_clicked()'))
end

def button_clicked
@u.lineEdit.text="Clicked"
end

end

app = Qt::Application.new(ARGV)
w=MyWindow.new
w.show
app.exec

#main.rb end-------------------------------------------------------------

5、以下のコマンドを実行

>ruby main.rb

以上。


参考:
Qt をはじめよう! 第2回: Qt SDK のインストール Windows 編
http://labs.qt.nokia.co.jp/2010/03/15/install-qt-sdk-for-windows.html

VikiWiki - QtRubyのインストール
http://ashitani.jp/wiki/index.rb?p=QtRuby%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB
ラベル:ruby QtRuby
posted by sige at 02:50| Comment(3) | QtRuby | 更新情報をチェックする

2011年05月01日

qtruby4-2.1.0-x86-mswin32.gemがOKなActiveScriptRuby

○ OK
ActiveScriptRuby(1.8.7-p249 --with-winsock2 --enable-tcltk-stub) Microsoft Installer Package

× NG
ActiveScriptRuby(1.8.7-p330 --with-winsock2 --enable-tcltk-stub) Microsoft Installer Package (1.8.7.36)
ラベル:QtRuby
posted by sige at 19:22| Comment(0) | QtRuby | 更新情報をチェックする

2011年03月28日

RailsInstallerのrubyにgemで「qtbindings」をインストールする

RailsInstallerのrubyに「qtbindings」をgemでインストールします
※RailsInstallerはデフォルトでインストール済みとします(ruby 1.8.7 (2010-12-23 patchlevel 330) [i386-mingw32])

>cd C:\RailsInstaller
>gem install qtbindings
Successfully installed qtbindings-4.6.3.2-x86-mingw32
1 gem installed
Installing ri documentation for qtbindings-4.6.3.2-x86-mingw32...
Installing RDoc documentation for qtbindings-4.6.3.2-x86-mingw32...
>

動作確認をする為、
require 'Qt4'

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

hello = Qt::Label.new('Hello World!')
hello.window_title = 'Hello World! QtRuby'
hello.resize(260, 60)
hello.show()

app.exec()

このスクリプトをmain_simple.rbとファイル名をつけて
>ruby -rubygems main_simple.rb
で、実行し問題なし

しかし、
別のスクリプトだと・・・・・、
#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!')
self.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 lbl..
@lbltext=Qt::Label.new("empty")
vlay.addWidget(@lbltext)
setLayout(vlay)
end

end

このスクリプトを実行すると
>ruby -rubygems main.rb
./mainwindow.rb:12: [BUG] Segmentation fault
ruby 1.8.7 (2010-12-23 patchlevel 330) [i386-mingw32]
This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.
>
とエラーとなった

対策:
README.txtに
Windows - Note: Only necessary for debugging (binary gem available)
1. mingw from the Qt SDK in your path: ie C:\Qt\2010.04\mingw\bin
と、書いてあったので

qt-sdk-win-opensource-2010.04.exe

をダウンロードし、インストール(デフォルトで。)したところ、エラーが解消された



qt-sdk-win-opensource-2010.04.exeでインストールしたファイル(フォルダ)の中で
C:\Qt\2010.04\bin
C:\Qt\2010.04\qt\plugins
があれば、スクリプトはエラーなく動くようです

環境変数 PATHに"C:\Qt\2010.04\bin"を追加しなくても使えています
逆に、上記のインストール時のデフォルト以外の場所にフォルダを移したりフォルダ名を変更等するとエラーとなった
ラベル:QtRuby
posted by sige at 23:50| Comment(0) | QtRuby | 更新情報をチェックする

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 | 更新情報をチェックする

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年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日

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 | 更新情報をチェックする

2010年08月08日

QtRubyのQDateEdit



#!ruby -Ks
require 'Qt4'

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


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

2010年08月07日

QtRubyのQComboBox



#!ruby -Ks
require 'Qt4'

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

combobox = Qt::ComboBox.new
combobox.addItem("item1")
combobox.addItem("item2")
combobox.addItem("item3")

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

window.show()
app.exec()


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

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