用python写好的程序如何在别处用

用python写好的程序如何在别处用,第1张

把python写好的程序用在别处的方法:

1、转exe文件:py2exe、cx_Freeze、PyInstaller

py2exe:看名字也能看出来,就是将你的python程序打包成exe可执行文件,这样你把程序包给别人,别人点个exe文件就可以用了

cx_Freeze:作用和py2exe一样,但是打包质量比py2exe好,所以一般人都推荐用cx_Freeze

PyInstaller:作用和上面的还是一样,但是貌似工序复杂,没怎么听过

2、做图形界面应用程序:PyQt、pyWidget

PyQt:极其强大的图形GUI应用程序的工具包,反正你选它就没错

pyWidget:和上面的作用是一样的,都是开发界面程序

更多Python知识请关注Python视频教程栏目。

首先,如果没有安装python和PyQt软件的请先直接搜索下载并安装。python是一个开源软件,因此都是可以在网上免费下载的,最新版本即可。下载完成后,我们先打开PyQt designer。

2

打开后,首先是一个默认的新建窗口界面,在这里我们就选择默认的窗口即可。

3

现在是一个完全空白的窗口。第一步我们要先把所有的设计元素都拖进这个窗口。我们先拖入一个“Label”,就是一个不可编辑的标签。

4

随后我们再拖入一个可以编辑的“Line Edit”

5

最后我们拖入最后一个元素:“PushButton”按钮,也就是平时我们所点的确定。

6

目前我们已经把所有所需要的元素都拖入了新建的窗口。对于每一个元素,我们都可以双击进行属性值的修改,此时我们仅需要双击改个名字即可

7

此时我们已经完成了一半,接下来需要对动作信号进行 *** 作。我们需要先切入编辑信号的模式

8

此时把鼠标移动到任意元素,都会发现其变成红色,代表其被选中。

9

当我们选中pushbutton后,继续拖动鼠标指向上面的line edit,会发现由pushbutton出现一个箭头指向了line edit,代表pushbutton的动作会对line edit进行 *** 作。

10

随即会d出一个配置连接窗口。左边的是pushbutton的 *** 作,我们选择clicked(),即点击pushbutton。

右边是对line edit的 *** 作,我们选择clear(),即清楚line edit中的内容。

最后我们点击确定。

保存完成后,我们在PyQt中的 *** 作就已经完成了。保存的文件名我们命名为test,PyQt生成的设计文件后缀是.ui。

然后我们需要把.ui文件转换成可编译的.py文件,我们需要用到PyQt提供的pyuic4命令来完成转换。这是一个DOS命令,因此我们需要调出DOS *** 作界面。打开开始菜单,找到附件中的运行。

在运行中输入cmd,确定后即可打开DOS界面。

在DOS界面下,我们需要定位到刚才保存的.ui文件的位置,如果是默认的话,会保存在C:\Python27\Lib\site-packages\PyQt4,定位的过程如图所示。转换成.py文件的命令是:pyuic4 test.ui -o test.py

转换命令执行后,会生成一个test.py的文件,如图所示

最后我们需要对生成的python文件加入头文件和主函数,就可以生成一个完整的GUI程序了!首先是在整个程序的最开头加入import sys,如图所示。

另外,在程序的末尾,加入如图所示的主函数代码。主函数会调用我们再PyQt里已经完成的生成元素的函数以及配置连接函数,因此我们只需要加上主函数来调用他们即可。

保存后,双击我们编辑完成的python文件,就会d出我们刚才设计的GUI界面啦!这就是我们所完成的第一个用python语言写的GUI程序啦!

有时我们展示了一个列表, 并想提供查看某项列表的详细内容, 我们会在列表项的末端加一个查看按钮, 这时我们如何在按按钮的时候得知这是那一项呢? 这时就需要带参数的信号, 信号是可以带参数的, 参数会在信号发送时携带, 并传递给接收此信号的槽

from PyQt4 import QtGui, QtCore

class MyButton(QtGui.QPushButton):

myclicked = QtCore.pyqtSignal(int)

def __init__(self, _id, *args, **kwargs):

QtGui.QPushButton.__init__(self, *args, **kwargs)

self._id = _id

self.connect(self, QtCore.SIGNAL("clicked()"), self.emitMyclicked)

def emitMyclicked(self):

self.myclicked.emit(self._id)

app = QtGui.QApplication([])

w = QtGui.QWidget()

w.resize(100, 100)

def showMsg(_id):

QtGui.QMessageBox.information(w, u"信息", u"查看 %d" % _id)

btn = MyButton(1, u"查看1", w)

w.connect(btn, QtCore.SIGNAL("myclicked(int)"), showMsg)

btn2 = MyButton(2, u"查看2", w)

btn2.move(0, 30)

w.connect(btn2, QtCore.SIGNAL("myclicked(int)"), showMsg)

w.show()

app.exec_()

上面例子可以看出, QObject.emit 发送带参数的信号时要携带参数. 当然上面例子也可以用下面方式来写

from PyQt4 import QtGui, QtCore

class MyButton(QtGui.QPushButton):

def __init__(self, _id, *args, **kwargs):

self._id = _id

QtGui.QPushButton.__init__(self, *args, **kwargs)

self.connect(self, QtCore.SIGNAL("clicked()"), self.emitClicked)

def emitClicked(self):

self.emit(QtCore.SIGNAL("myclicked(int)"), self._id)

app = QtGui.QApplication([])

w = QtGui.QWidget()

w.resize(100, 100)

def showMsg(_id):

QtGui.QMessageBox.information(w, u"信息", u"查看 %d" % _id)

btn = MyButton(1, u"查看1", w)

w.connect(btn, QtCore.SIGNAL("myclicked(int)"), showMsg)

btn2 = MyButton(2, u"查看2", w)

btn2.move(0, 30)

w.connect(btn2, QtCore.SIGNAL("myclicked(int)"), showMsg)

w.show()

app.exec_()


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8126415.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存