程序名称:Quick Command
程序描述:有时候我们在Linux下会遇到很多的命令,我们可能只能记住常用的,不常用的每次都要Google,然后再用,很没有效率。尤其是对于那种介于常用与不常用之间的命令,对于像我一样记性不好的人来说,每次必忘。如果有这么一个程序可以把这种“鸡肋”命令集合起来,需要的时候点一下鼠标,岂不是很好。
后话:我知道很多人说,Linux下的终端可以设置热键,这样把“鸡肋”命令设置为热键也可以,何必这么复杂?但是,目前我还没看到类似的程序,做一个又何妨。
这个是我发在豆瓣上面的,但是没什么人气,所以转发过来,看能不能增加一点热度。
以下内容为6.28更新++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
首先,我们准备一下需要的东西:
- 第一个当然是python,个人推荐python3,直接sudo apt-get install python3即可,需要运行程序的时候直接python3 {程序名}.py
- 然后是IDE,当然,这个东西随你个人爱好,我喜欢PyCharm,虽然是收费的,的确好用(虽然我还是喜欢用终端直接测试)
- 最后就是qt4-designer,这个东西直接sudo apt-get install qt4-designer。注意,装了深度系统的同志们,qt4-designer和深度的依赖关系有冲突,所以最简单的办法就是换到一个稍微普通一点的系统,比如我的Linux Mint 15。
以下内容为6.30更新++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
先说一下python和QT结合的基本的思路。QT的界面,普通一点的,直接在QT Designer下就可以做出来。很简单,直接拖拽,然后文件保存为后缀名为ui的文件。但是问题在这里,要怎么把QT的ui文件转换为python程序呢?
一个命令就可以搞定:pyuic4 -x demo.ui -o demo.py
解释一下这个命令。首先,要使用这个命令,必须安装pyqt4-dev-tools这个包,这个包很小,直接apt-get,100KB左右。现在解释命令:-x 后面跟的是需要转换的文件。比如,在我们这个情况下, 需要转换的文件叫做demo.ui;而-o后面跟的文件名是你想要输出成的python程序的名字。这里,方便起见,我们就把它叫做demo.py。
当然,QT Designer不是必须的。查看demo.py的代码就可以看到,这个QT做的界面只是一些简单的python代码而已,你也可以自己写。
这样,QT和python就结合起来了。
以下内容为7.2更新++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
本来是准备天天更新的,但是7.1实在是不吉利,所以就避开吧。
今天的更新主要是讲述QT的事件处理的几个要点。简单地说,就是你按一下QT的按钮,python要如何反应的问题。关于这个问题,这篇文章有详解:(http://cppblog.com/mirguest/archive/201 ... 64984.html)《PyQt4 中的事件和信号》by mirguest
但是他讲得太复杂了,和一本厚厚的Python QT编程指南有什么区别? 所以我把它简化一下,给大家一个明晰的印象,以后如果需要去了解更多的细节,可以参阅他的文章。
上一次我说了,我们可以用pyuic4来把QT代码转换为py代码。转换之后,我们需要自己设计每一个QT元素(按钮、滚动条等)在用户操作(单击、悬停等)下的表现(被按下,显示一行字,运行一个命令等)。最简单的一个代码就是self.pushButton.clicked.connect(self.doListing)。这个self大家学python都明白。pushButton就是那个按钮的默认名字。clicked指的是在被点击的状态。connect指的是这个状态所应当指向的操作,而后面的括号里的doListing就是这个操作。这个doListing就是一个方法,你随便定义什么都可以。所以这下,QT和python结合的程序一下子就焕发生机了。以下是这段代码所在的完整代码(QT部分是用QT Designer生成的,当然可以手写,太麻烦了,以后再来手写)。
代码: 全选
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file '2.ui'
#
# Created: Mon Jul 1 15:24:23 2013
# by: PyQt4 UI code generator 4.10
#
# WARNING! All changes made in this file will be lost!
from PyQt4 import QtCore, QtGui
import os
try:
_fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
def _fromUtf8(s):
return s
try:
_encoding = QtGui.QApplication.UnicodeUTF8
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig)
class Ui_Dialog(object):
def setupUi(self, Dialog):
Dialog.setObjectName(_fromUtf8("Dialog"))
Dialog.resize(400, 300)
self.pushButton = QtGui.QPushButton(Dialog)
self.pushButton.setGeometry(QtCore.QRect(60, 130, 300, 30))
self.pushButton.setObjectName(_fromUtf8("List what's in the directory"))
self.pushButton.clicked.connect(self.doListing)
self.retranslateUi(Dialog)
QtCore.QMetaObject.connectSlotsByName(Dialog)
def doListing(self):
os.system('ls')
def retranslateUi(self, Dialog):
Dialog.setWindowTitle(_translate("Dialog", "Dialog", None))
self.pushButton.setText(_translate("Dialog", "List what's in the directory", None))
if __name__ == "__main__":
import sys
app = QtGui.QApplication(sys.argv)
Dialog = QtGui.QDialog()
ui = Ui_Dialog()
ui.setupUi(Dialog)
Dialog.show()
sys.exit(app.exec_())
第一步,chmod +x filename.py
第二步,加入 #!/usr/bin/env python 到py脚本的第一行,这无非就是告诉系统,我要用在这个目录下的python运行此脚本。
好,现在就可以直接双击运行了。