努力了一天一夜,终于成功了,改天有空写点东西记录下安装过程,越来越懒了。。。
随机感言:看不在的是不是就等于不存在? 也许只是被浓云遮住 也许刚巧风沙飞入眼帘 我看不见你却依然感觉到温暖 生命中不断地有人离开或进入 于是 看见的 看不见了 记住的 遗忘了 生命中不断地有人得到和失落 于是看不见的 看见了 遗忘了 记住了 然而 看不见的 是不是就等于不存在? 记住的 是不是永远不会消失?今天终于受不了我那块8400的噪音了,拆下来清理了还是不行,看来只有换风扇了,所以临时只能用我的集成显卡 intel gma950。也许是人品好,接上gma950后居然没碰到网上说的无法启动桌面的问题,不但顺利启动了x,还能依旧保持1440*900的分辨率,看来人品不是一般的好,不过有点东西不爽,就是启动的时候会提示‘驱动错误,只能以低分辨率运行’,虽然只用一晚上的集成显卡,我还是觉得很不爽。于是放狗搜了下找到如下解决方案。
1。卸载原来的nvidia显卡驱动。
2。安装最新intel显卡驱动。
首先将程序中所有字符串放到self.tr()中,例如self.tr(“Files”)
完成这步后用pylupdate4命令生成ts文件
例如:pylupdate4 GoogleTranslate.py -ts GoogleTranslate_zh_CN.ts
生存ts文件后,用Qt Linguist(Qt语言家)打开ts文件,并将所有字符串翻译成目标语言
翻译好后需要用到lrelease命令生成qm文件
例如:lrelease GoogleTranslate_zh_CN.ts
运行这个命令后会生成GoogleTranslate_zh_CN.qm文件,这个文件就是我们需要的语言文件。
最后在程序的main函数中加入如下语句
locale = QLocale.system().name()
appTranslator = QTranslator()
if appTranslator.load("GoogleTranslate_" + locale):
app.installTranslator(appTranslator)
ubuntu10.04 英文locale 下运行效果:
随机感言:后悔是一种耗费精神的情绪,后悔是比损失更大的损失,比错误更大的错误,所以不要后悔。Normally, pressing the TAB key changes focus among widgets. However, I would like to use the TAB key for other purposes (e.g. tab completion). To gain control of the TAB key press event, I need to subclass my widget and reimplement the QObject.event() event handler. I don’t need to re-write the entire event handler. I only need to process TAB key press events. I will pass all other events to the default event handler. The example below subclasses the QLineEdit widget and reimplements the event() method. Pressing the TAB key inside this new widget prints out the text “tab pressed” inside a second QLineEdit box.
The Events and Event Filters Trolltech QT documentation has a good explanation of how this works. My example shows how to use Python and PyQt instead of C++.
import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *
####################################################################
def main():
app = QApplication(sys.argv)
w = MyWindow()
w.show()
sys.exit(app.exec_())
####################################################################
class MyWindow(QWidget):
def __init__(self, *args):
QWidget.__init__(self, *args)
# create objects
self.la = QLabel("Press tab in this box:")
self.le = MyLineEdit()
self.la2 = QLabel("\nLook here:")
self.le2 = QLineEdit()
# layout
layout = QVBoxLayout()
layout.addWidget(self.la)
layout.addWidget(self.le)
layout.addWidget(self.la2)
layout.addWidget(self.le2)
self.setLayout(layout)
# connections
self.connect(self.le, SIGNAL("tabPressed"),
self.update)
def update(self):
newtext = str(self.le2.text()) + "tab pressed "
self.le2.setText(newtext)
####################################################################
class MyLineEdit(QLineEdit):
def __init__(self, *args):
QLineEdit.__init__(self, *args)
def event(self, event):
if (event.type()==QEvent.KeyPress) and (event.key()==Qt.Key_Tab):
self.emit(SIGNAL("tabPressed"))
return True
return QLineEdit.event(self, event)
####################################################################
if __name__ == "__main__":
main()
via:http://www.saltycrane.com/blog/2008/01/how-to-capture-tab-key-press-event-with/
随机感言:无论发生什么事情,都要首先想到自己是不是做错了。如果自己没错(那是不可能的),那么就站在对方的角度,体验一下对方的感觉。增加了两种语言互译功能,使用上方便了一些:)
更新了按Ctrl+Return(回车)翻译的功能,及多语言支持,在英文环境下界面是英文,中文系统下是中文
#!/usr/bin/python
# -*- coding:utf-8 -*-
# Filename:GoogleTranslate.py
###############################
# author:lushuchao
# Thu May 24 2010
###############################
#Update Tue May 25 2010
#add new function press 'Ctrl+Enter' to translate
import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *
import json
import urllib
import urllib2
#from PyQt4 import QtGui,QtCore
class MainWindow(QMainWindow):
def __init__(self,parent=None):
super(MainWindow,self).__init__(parent)
#上部
self.lab1=QLabel(self.tr('First Language:'))
self.Txtyuyan1=MyQTextEdit()
self.lab2=QLabel(self.tr('Second Language:'))
self.Txtyuyan2=MyQTextEdit()
toplayout=QVBoxLayout()
toplayout.addWidget(self.lab1)
toplayout.addWidget(self.Txtyuyan1)
toplayout.addWidget(self.lab2)
toplayout.addWidget(self.Txtyuyan2)
#中部
self.lab3=QLabel(self.tr('Selected Firest Language:'))
self.yuyan1=QComboBox()
self.lab4=QLabel(self.tr('Selected Second Language:'))
self.yuyan2=QComboBox()
midlayout=QHBoxLayout()
midlayout.addWidget(self.lab3)
midlayout.addWidget(self.yuyan1)
midlayout.addWidget(self.lab4)
midlayout.addWidget(self.yuyan2)
lang=sorted(GTranslate.LANG.keys())
self.yuyan1.addItems(lang)
self.yuyan1.setCurrentIndex(lang.index('ENGLISH'))
self.yuyan2.addItems(lang)
self.yuyan2.setCurrentIndex(lang.index('CHINESE'))
#下部
self.yuyan1TOyuyan2=QPushButton(self.tr('First Language ->Second Language'))
self.yuyan2TOyuyan1=QPushButton(self.tr('Second Language ->First Language'))
self.chongzhi=QPushButton(self.tr('Reset'))
self.guanyuQt=QPushButton(self.tr('AboutQt'))
self.guanyu=QPushButton(self.tr('About'))
botlayout=QHBoxLayout()
botlayout.addWidget(self.yuyan1TOyuyan2)
botlayout.addWidget(self.yuyan2TOyuyan1)
botlayout.addWidget(self.chongzhi)
botlayout.addWidget(self.guanyuQt)
botlayout.addWidget(self.guanyu)
#整体布局
mainlayout=QVBoxLayout()
mainlayout.addLayout(toplayout)
mainlayout.addLayout(midlayout)
mainlayout.addLayout(botlayout)
self.gbox=QGroupBox('')
self.gbox.setLayout(mainlayout)
self.setCentralWidget(self.gbox)
self.Txtyuyan1.setFocus()
#connections
self.connect(self.yuyan1TOyuyan2,SIGNAL("clicked()"),self.translate1to2)
self.connect(self.yuyan2TOyuyan1,SIGNAL("clicked()"),self.translate2to1)
self.connect(self.chongzhi,SIGNAL("clicked()"),self.reset)
self.connect(self.guanyuQt,SIGNAL("clicked()"),self.aboutQt)
self.connect(self.guanyu,SIGNAL("clicked()"),self.showAbout)
self.connect(self.yuyan1,SIGNAL("currentIndexChanged(int)"),self.setlabtxt)
self.connect(self.yuyan2,SIGNAL("currentIndexChanged(int)"),self.setlabtxt)
self.connect(self.Txtyuyan1, SIGNAL("ReturnPressed"),self.translate1to2)
self.connect(self.Txtyuyan2, SIGNAL("ReturnPressed"),self.translate2to1)
#初始化
self.resize(500,300)
self.center()
self.setWindowTitle(self.tr('Google Translate Client v1.0'))
self.setlabtxt()
self.chongzhi.setEnabled(False)
def setlabtxt(self):
f=self.tr('First Language:')
s=self.tr('Second Language:')
self.lab1.setText(f+self.yuyan1.currentText())
self.lab2.setText(s+self.yuyan2.currentText())
def center(self):
screen = QDesktopWidget().screenGeometry()
size = self.geometry()
self.move((screen.width()-size.width())/2,
(screen.height()-size.height())/2)
# def keyPressEvent(self, event):
# key = event.key()
# if key ==Qt.Key_Return:
# self.translate()
# return
def translate1to2(self):
text=self.Txtyuyan1.toPlainText()
text=unicode(text).encode('utf-8')
key=str(self.yuyan1.currentText())
langOrigin=GTranslate.LANG[key]
key=str(self.yuyan2.currentText())
langTarget=GTranslate.LANG[key]
self.gt=GTranslate(langOrigin, langTarget, text)
self.connect(self.gt, SIGNAL("finished()"), self.showResult1to2)
self.gt.start()
self.updateUi(False)
def translate2to1(self):
text=self.Txtyuyan2.toPlainText()
text=unicode(text).encode('utf-8')
key=str(self.yuyan2.currentText())
langOrigin=GTranslate.LANG[key]
key=str(self.yuyan1.currentText())
langTarget=GTranslate.LANG[key]
self.gt=GTranslate(langOrigin, langTarget, text)
self.connect(self.gt, SIGNAL("finished()"), self.showResult2to1)
self.gt.start()
self.updateUi(False)
def showResult1to2(self):
result=self.gt.result
if(result):
self.Txtyuyan2.setText(result)
self.updateUi(True)
def showResult2to1(self):
result=self.gt.result
if(result):
self.Txtyuyan1.setText(result)
self.updateUi(True)
def updateUi(self, enable):
self.yuyan1TOyuyan2.setEnabled(enable)
self.yuyan2TOyuyan1.setEnabled(enable)
self.chongzhi.setEnabled(not enable)
def reset(self):
self.gt.terminate()
self.Txtyuyan1.clear()
self.Txtyuyan2.clear()
self.updateUi(True)
def aboutQt(self):
self.ab=QMessageBox.aboutQt(self,self.tr('About QT'))
def showAbout(self):
dialog = about(self)
dialog.exec_()
class about(QDialog):
def __init__(self, parent=None):
super(about, self).__init__(parent)
self.setWindowTitle(self.tr('About'))
class MyQTextEdit(QTextEdit):
def __init__(self, *args):
QTextEdit.__init__(self, *args)
def event(self, event):
if (event.type()==QEvent.KeyPress) and (event.key()==Qt.Key_Return):
if event.modifiers() & Qt.ControlModifier:
self.key = "Ctrl+Return"
self.emit(SIGNAL("ReturnPressed"))
return True
return QTextEdit.event(self, event)
class GTranslate(QThread):
def __init__(self, langOrigin='en', langTarget='zh', text=None, parent=None):
QThread.__init__(self, parent)
self.text=text
self.langOrigin=langOrigin
self.langTarget=langTarget
self.result=None
def translate(self):
query = (GTranslate.URL % (urllib.quote(self.text), self.langOrigin, self.langTarget))
req = urllib2.Request(query)
# req.add_header("Referer", "http://www.my-ajax-site.com")
try:
r = urllib2.urlopen(req)
data = r.read()
except:
self.result='Network Connect Error!'
return
obj = json.loads(data)
if obj['responseStatus'] != 200L:
self.result="Error: %s" % obj['responseDetails']
else:
self.result=obj['responseData']['translatedText']
def run(self):
self.translate()
URL = "http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=%s&langpair=%s%%7C%s"
LANG={
'AFRIKAANS' : 'af',
'ALBANIAN' : 'sq',
'AMHARIC' : 'am',
'ARABIC' : 'ar',
'ARMENIAN' : 'hy',
'AZERBAIJANI' : 'az',
'BASQUE' : 'eu',
'BELARUSIAN' : 'be',
'BENGALI' : 'bn',
'BIHARI' : 'bh',
'BULGARIAN' : 'bg',
'BURMESE' : 'my',
'CATALAN' : 'ca',
'CHEROKEE' : 'chr',
'CHINESE' : 'zh',
'CHINESE_SIMPLIFIED' : 'zh-CN',
'CHINESE_TRADITIONAL' : 'zh-TW',
'CROATIAN' : 'hr',
'CZECH' : 'cs',
'DANISH' : 'da',
'DHIVEHI' : 'dv',
'DUTCH': 'nl',
'ENGLISH' : 'en',
'ESPERANTO' : 'eo',
'ESTONIAN' : 'et',
'FILIPINO' : 'tl',
'FINNISH' : 'fi',
'FRENCH' : 'fr',
'GALICIAN' : 'gl',
'GEORGIAN' : 'ka',
'GERMAN' : 'de',
'GREEK' : 'el',
'GUARANI' : 'gn',
'GUJARATI' : 'gu',
'HEBREW' : 'iw',
'HINDI' : 'hi',
'HUNGARIAN' : 'hu',
'ICELANDIC' : 'is',
'INDONESIAN' : 'id',
'INUKTITUT' : 'iu',
'ITALIAN' : 'it',
'JAPANESE' : 'ja',
'KANNADA' : 'kn',
'KAZAKH' : 'kk',
'KHMER' : 'km',
'KOREAN' : 'ko',
'KURDISH': 'ku',
'KYRGYZ': 'ky',
'LAOTHIAN': 'lo',
'LATVIAN' : 'lv',
'LITHUANIAN' : 'lt',
'MACEDONIAN' : 'mk',
'MALAY' : 'ms',
'MALAYALAM' : 'ml',
'MALTESE' : 'mt',
'MARATHI' : 'mr',
'MONGOLIAN' : 'mn',
'NEPALI' : 'ne',
'NORWEGIAN' : 'no',
'ORIYA' : 'or',
'PASHTO' : 'ps',
'PERSIAN' : 'fa',
'POLISH' : 'pl',
'PORTUGUESE' : 'pt-PT',
'PUNJABI' : 'pa',
'ROMANIAN' : 'ro',
'RUSSIAN' : 'ru',
'SANSKRIT' : 'sa',
'SERBIAN' : 'sr',
'SINDHI' : 'sd',
'SINHALESE' : 'si',
'SLOVAK' : 'sk',
'SLOVENIAN' : 'sl',
'SPANISH' : 'es',
'SWAHILI' : 'sw',
'SWEDISH' : 'sv',
'TAJIK' : 'tg',
'TAMIL' : 'ta',
'TAGALOG' : 'tl',
'TELUGU' : 'te',
'THAI' : 'th',
'TIBETAN' : 'bo',
'TURKISH' : 'tr',
'UKRAINIAN' : 'uk',
'URDU' : 'ur',
'UZBEK' : 'uz',
'UIGHUR' : 'ug',
'VIETNAMESE' : 'vi',
'UNKNOWN' : ''
}
def main():
app=QApplication(sys.argv)
locale = QLocale.system().name()
qtTranslator = QTranslator()
if qtTranslator.load("qt_" + locale):
app.installTranslator(qtTranslator)
appTranslator = QTranslator()
if appTranslator.load("GoogleTranslate_" + locale):
app.installTranslator(appTranslator)
app.setOrganizationName("BlueSea Ltd.")
app.setOrganizationDomain("Thinkman.com.cn")
#app.setApplicationName(app.translate("MainWindow", "Google Translate Client v1.0"))
app.setWindowIcon(QIcon("icon.png"))
form=MainWindow()
form.show()
app.exec_()
if __name__=="__main__":
main()
随机感言:朋友之间谈到钱就伤感情 情人之间 谈到感情就伤钱
install files download:ftp://ftp.idsoftware.com/idstuff/etqw/
then You need a retail copy of the game to install the full client.
when you running Enemy Territory Quake Wars (etqw) ,you will find the sound becomes delayed by about 30 seconds.
here is a solution:
1.
gedit ~/.pulse/client.conf
and add “autospawn = no” without quotes
2.
then the script for the game
#!/bin/bash
killall compiz
killall -9 pulseaudio
cd ~/Installed_Programs/Games/etqw
./etqw
compiz
pulseaudio
3.
restart or relogin.
enjoy the game!
随机感言:人生短短几十年,不要给自己留下了什么遗憾,想笑就笑,想哭就哭,该爱的时候就去爱,无所谓压抑自己。






最新评论