| ■ | PyQtで日本語を表示するには |
#! /usr/local/bin/python
import sys
from qt import *
class HelloWidget(QWidget):
def __init__(self, *args):
apply(QWidget.__init__, (self,) + args)
la = QLabel(self.tr("貼ろうワールド"), self)
la.setFont(QFont("Helvetica", 16, QFont.Normal))
cmda = QPushButton("Bye", self)
self.setMinimumSize(200,100)
self.setMaximumSize(200,100)
la.setGeometry(40,20,120,30)
cmda.setGeometry(80,60,40,30)
self.connect(cmda, SIGNAL("clicked()"), self.close)
a = QApplication(sys.argv)
a.setDefaultCodec(QTextCodec.codecForName("eucJP"))
w = HelloWidget()
a.setMainWidget(w)
w.show()
a.exec_loop()
# end.
|
a.setDefaultCodec(QTextCodec.codecForName("eucJP"))
これでまず日本語EUCをデフォルトの文字コードとしておき、
la = QLabel(self.tr("貼ろうワールド"), self)
こんな感じでself.tr()メソッドを使って、
日本語をラベルやボタンの文字列に指定できます。
フォントの指定方法もQtとほとんど同じなので、類推でうまくいくと思います。
| ■ | PyQtで日本語を入力するには |
#! /usr/local/bin/python
import sys
from qt import *
class HelloWidget(QWidget):
def __init__(self, *args):
apply(QWidget.__init__, (self,) + args)
self.setCaption(self.tr("お食事"))
la = QLabel(self.tr("ご希望のメインディッシュ"), self)
la.setFont(QFont("Helvetica", 16, QFont.Normal))
self.leda = QLineEdit(self)
self.leda.setFont(QFont("fixed", 14, QFont.Normal))
cmda = QPushButton(self.tr("OKじゃ"), self)
self.setMinimumSize(300, 140)
self.setMaximumSize(300, 140)
la.setGeometry(10, 20, 220, 24)
self.leda.setGeometry(10, 50, 250, 24);
cmda.move(160, 100)
self.connect(cmda, SIGNAL("clicked()"), self.ok)
def ok(self):
print "ご希望は、" + str(self.leda.text().local8Bit())
self.close()
a = QApplication(sys.argv)
a.setDefaultCodec(QTextCodec.codecForName("eucJP"))
w = HelloWidget()
a.setMainWidget(w)
w.show()
a.exec_loop()
# end.
|
下がその証拠写真です。…ただし、このようにKinput2 の変換ウィンドウが出るのはQt 2.3までです。Qt 3.0以降は、 日本語入力はオンザスポット(インライン)で行うことができるので、 変換ウィンドウは現れません。 UNIXの他のデスクトップ環境に先駆けてインライン入力が可能になった KDEのパワーの源をこの目で我々は見ているのです! (おおげさやなあ)
ちょっとメモ(7) - タイトルバーのテキスト
タイトルバーのテキストは、先述の通り、
ウィンドウになるウィジェットのsetCaptionメソッドで指定できます。
ウィンドウマネージャが日本語に対応している場合には、
絵のように日本語のタイトルも指定できます。
self.setCaption(self.tr("お食事"))
セクションのサブメニューに戻る
(first uploaded 2000/08/08 last updated 2002/03/21)