Hatena::ブログ(Diary)

はけの徒然日記 このページをアンテナに追加 RSSフィード

2005 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2006 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 04 | 05 | 08 | 09 | 10 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 10 | 11 |
2011 | 01 | 02 | 03 | 04 | 11 | 12 |
2012 | 02 | 03 | 05 |
2014 | 02 | 03 | 04 | 05 | 12 |
2015 | 05 | 07 | 08 | 09 | 10 | 11 | 12 |
2016 | 01 | 02 | 04 | 05 | 08 | 09 | 11 | 12 |
2017 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 10 |

2005-06-26(Sun)

インストールするときに

ザウルスではプログラムの配布はインストールパッケージ(ipkファイル)で行われているので、内容を知らなくても簡単にインストールアンインストールができます。いわゆる定番アプリケーションならば問題ないのでしょうけれども、私の場合は海外の怪しいソフトや公開されてから結構時間が経っているアプリインストールすることが度々あります。そうした場合にはインストールする前にどんな名前のファイルが何処にインストールされるのかを確認してからインストールを行うようにしています。そうしないとライブラリ等が古いバージョンに、あるいは偶々同じ名前だったファイルが上書きされてしまう恐れがあるからです。また一時的にインストールした後にアンインストールしても元の状態に戻してくれないパッケージもありました。

インストールパッケージtar+gzipで固めているだけなのでザウルスターミナルからでも中を見ることが可能ですが、操作が面倒なので、私の場合はWindows PC上で確認しています。使用しているアプリは統合アーカイバサイトで紹介されているLHMeltというものを使用しています。何故このアプリかというと単に昔から使用しているからで、特に理由はありません。このアプリは個別ライブラリを組み合わせることで様々な圧縮形式に対応することができます。ザウルスの場合はTAR32.dllというライブラリ組合せます。

Windows上で拡張子ipkをLHMeltに関連付けさせることでファイルクリックするだけで中身が見ることができるようになります。ファイルダブルクリックすると

というリストが表示されるので、更にdata.tar.gzをダブルクリックするとインストールされるファイルパス付きで表示されます。これで各ファイルが何処にインストールされるかを確認できます。また、control.tar.gzをダブルクリックするとインストールアンインストールの前後で実行されるスクリプトを見ることができます。これでインストールアンインストールに際して何が行われるかを知ることができます。


追加として

インストールされたアプリ情報は/usr/lib/ipkg/statusと/usr/lib/ikg/info/以下のファイルに保存される。



関連サイト

統合アーカイバプロジェクトhttp://www.madobe.net/archiver/index.html

チェックボックスとラジオボタン

Ruby/Qte勉強 その9

チェックボックスラジオボタンを作成する場合には以下の様におこなう

@cbox1 = QCheckBox.new(tr("チェック1"),self)
@radio1 = QRadioButton.new(tr("ラジオ1"),self)

これでペンにより選択/解除を行うことができる。現在の状態を知る場合には.isCheckedを使用し、プログラムで選択/解除を行う場合には.setCheckedを使用する。以下は現在の状態を反転させるメソッド

def reverse_c
   if @cbox1.isChecked then
      @cbox1.setChecked(false)
   else
      @cbox1.setChecked(true)
   end
end

ラジオボタンをグループ化するには以下のようにする(05/06/30追加)

bg = QVButtonGroup.new(self)
bg.setTitle("Item")
bg.setGeometry(10,50,600,160)

@r1 = QRadioButton.new("radio1", bg)
@r1.setChecked(true)
@r2 = QRadioButton.new("radio2", bg)
@r3 = QRadioButton.new("radio3", bg)
@r4 = QRadioButton.new("radio4", bg)

チェックボックスラジオボタンを反転させるメソッドをボタン1と2に割り当ててみました。

class SampleWindow < QMainWindow
   def initialize()
      super()
      setCaption(tr("サンプル"))
      @msg = QLabel.new(tr("これはサンプルプログラム"),self)
      @msg.setGeometry(10,10,300,30)

      @cbox1 = QCheckBox.new(tr("チェック1"),self)
      @cbox1.setGeometry(0,50,300,30)

      @radio1 = QRadioButton.new(tr("ラジオ1"),self)
      @radio1.setGeometry(0,80,300,30)

      @ebox1 = QMultiLineEdit.new(self)
      @ebox1.setGeometry(0,280,635,120)
      @ebox1.setReadOnly(true)

      @pb1 = QPushButton.new(tr("ボタン1"),self)
      @pb1.setGeometry(320,5,100,30)
      connect(@pb1,QSIGNAL("clicked()"), self, 'reverse_c')

      @pb2 = QPushButton.new(tr("ボタン2"),self)
      @pb2.setGeometry(425,5,100,30)
      connect(@pb2,QSIGNAL("clicked()"), self, 'reverse_r')
   end

   def reverse_c        #チェックボックスの状態反転
      if @cbox1.isChecked then
         @cbox1.setChecked(false)
         @ebox1.setText(tr("チェック解除しました"))
      else
         @cbox1.setChecked(true)
         @ebox1.setText(tr("チェックしました"))
      end
   end

   def reverse_r         #ラジオボタンの状態反転
      if @radio1.isChecked then
         @radio1.setChecked(false)
         @ebox1.setText(tr("選択解除しました"))
      else
         @radio1.setChecked(true)
         @ebox1.setText(tr("選択しました"))
      end
   end

end

$defaultCodec = QTextCodec.codecForName("utf8")
app = QPEApplication.new([$0]+ARGV)
app.setDefaultCodec($defaultCodec)
QApplication.setFont(QFont.new("lcfont",18))
app.showMainWidget(SampleWindow.new)
app.exec