test
テスト
markdown記法
require 'redcarpet' markdown = Redcarpet.new("Hello World!") puts markdown.to_html
- リスト
- リスト
段落
python で csv を読む
標準関数で読むとき
#! /usr/bin/env python # -*- coding:utf-8 -*- import csv import sys def main(): fields = ["No","time","clock","imem_addr","asm","dmem_addr","data"] data = csv.DictReader(open(sys.argv[1],"r"),skipinitialspace=True, fieldnames=fields) for row in data: for key in fields: print key,":",row[key] if __name__ == "__main__": main()
pandas で読むとき
先頭の無効データを読み飛ばすときは、skiprows を使う
import pandas as pd def main(): pdd = pd.read_csv(sys.argv[1],names=fields,skiprows=5) print pdd
QPainter and QScrollArea plactice
#!/usr/bin/env python # -*- coding: utf-8 -*- import sys from PyQt4 import QtCore,QtGui class paintArea(QtGui.QWidget): def __init__(self): super(paintArea, self).__init__() self.setMinimumWidth(500) self.setMinimumHeight(500) self.offscreen = QtGui.QPixmap(1000,1000) painter = QtGui.QPainter() painter.begin(self.offscreen) painter.setPen(QtCore.Qt.yellow) for i in range(10): painter.drawLine(10,i*10,100,i*10) painter.end() def paintEvent(self,e): painter = QtGui.QPainter() painter.begin(self) painter.drawPixmap(0,0,self.offscreen) painter.end() class scrollArea(QtGui.QWidget): def __init__(self): super(scrollArea, self).__init__() self.scrollArea = QtGui.QScrollArea(self) self.scrollArea.setVerticalScrollBarPolicy( QtCore.Qt.ScrollBarAlwaysOn ) self.scrollArea.setWidgetResizable(False) self.paintArea = paintArea() self.scrollArea.setWidget(self.paintArea) self.layout = QtGui.QVBoxLayout(self) self.layout.addWidget(self.scrollArea) def main(): app = QtGui.QApplication(sys.argv) ex = scrollArea() ex.show() sys.exit(app.exec_()) if __name__ == "__main__": main()
QTreeWidget example
ツリー構造のリストを、割りと簡単に作るサンプル。
タプルのリストからツリーアイテムを作る。
タプル(k,v,n)の構造は、
- k:ノードの名前
- v:ノードの値
- n:子ノード(のリスト)
以下ソース。
#!/usr/bin/env python # -*- coding: utf-8 -*- import sys, os, pprint, time from PyQt4.QtCore import * from PyQt4.QtGui import * def hoge(item,column): print item.data(column,Qt.UserRole).toString() def make_tree(lst): items = [] while len(lst): (k,v,n) = lst.pop(0) item = QTreeWidgetItem(QStringList(QString(str(k)))) item.setData(0,Qt.UserRole,v) items.append(item) if n is not None: items[-1].addChildren( make_tree(n) ) return items def main(): app = QApplication(sys.argv) app.setStyle( "Plastique" ) lst = [("0",0,None), ("1",1, [ ("1-0",10,None), ("1-1",11,None), ("1-2",12, [ ("1-2-0",120,None), ("1-2-1",121,None) ] ), ("1-3",13,None) ] ), ["2",2,None]] treeWidget = QTreeWidget() treeWidget.addTopLevelItems(make_tree(lst)) treeWidget.itemClicked.connect(hoge) treeWidget.header().hide() treeWidget.show() sys.exit(app.exec_()) if __name__ == "__main__": main()
QTreeViewWidget example
#!/usr/bin/env python # -*- coding: utf-8 -*- import sys from PyQt4.QtGui import * from PyQt4.QtCore import * def main(): app = QApplication(sys.argv) treeWidget = QTreeWidget() treeWidget.setColumnCount(1) items = [] child = [] for i in range(5): items.append(QTreeWidgetItem(QStringList(["hoge"+str(i),"moge"+str(i+1)]))) for i in range(10): child.append(QTreeWidgetItem(QStringList(QString("child: %1").arg(i)))) items[0].addChildren(child) treeWidget.setHeaderLabels(["name","info"]) treeWidget.insertTopLevelItems(0,items) treeWidget.itemClicked.connect(item_change) treeWidget.show() sys.exit(app.exec_()) def item_change(item,column): print item print column if __name__ == "__main__": main()
Gtk (perl) のメモ
■ Gtk2::Window->new('type')
'type' は以下2つ
- 'toplevel' / 'GTK_WINDOW_TOPLEVEL'
- 'popup' / 'GTK_WINDOW_POPUP'
'type' を指定しない場合のデフォルト値は 'toplevel'
以下のコードは同じ。
my $window = Gtk2::Window->new; my $window = Gtk2::Window->new ('toplevel'); my $window = Gtk2::Window->new ('GTK_WINDOW_TOPLEVEL');
■ Gtk2::Window クラスのプロパティ
'window-position' を設定できる。
設定の仕方は以下。
$window->set_position ($position) $position(Gtk2::WindowPosition)