精华内容
下载资源
问答
  • 第一次用python制作Mac软件步骤记录

    突发奇想做一个整理的软件,免得每次都自己手动计算,心好累…
    于是搜集资料,发现可以用py2app大包,Tkinter做图形化页面,这样就好办了。
    编译器:Pycharm
    语言:python 2.7

    a.设置外观按钮
    import math
    import sys
    from Tkinter import *
    
    class Application(Frame):  #建立应用类
        def createWidgets(self):  #构建按钮
            self.add = Button(self)  #定义按钮
            self.add["text"] = "ADD"  #按钮上的文字说明
            self.add["command"] = self.Function.add_people  #按钮功能是Function.add_people函数
            self.add.pack({"side": "left"})  #按钮从left方向排列,并打包按钮
    
            self.QUIT = Button(self)
            self.QUIT["text"] = "QUIT"
            self.QUIT["fg"]  = "red"
            self.QUIT["command"] =  self.quit  #退出按钮
            self.QUIT.pack({"side": "left"})
    
        def __init__(self, master=None):
            Frame.__init__(self, master)
            self.pack()
            self.createWidgets()
    
    root = Tk()
    root.title("LazyCat^ ^")  #软件标题栏文字
    app = Application(master=root)
    app.mainloop()
    root.destroy()

    感谢Mac简洁的页面,就算是最简单的原始页面也不丑。


    初始页面

    展开全文
  • 主要介绍了python制作一个解压缩软件的方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
  • Python制作Soap通信测试软件

    千次阅读 2017-04-17 13:55:33
    Python制作Soap通信测试软件

    辛苦堆砌,转载请注明出处,谢谢!

    最进工作中涉及Android端和服务器端通过Soap进行通信,就不可避免的需要对接Soap服务,抽空用Python做了一个小工具,用来实现Soap服务的测试。该小工具主要使用了PyQt5和suds-py3两个模块,PyQt5是Qt的Python版图形界面库,之前本人用过Qt C++的库,所以对Qt有些基础,所以选择了PyQt5;suds-py3则是针对Python3.x的Soap客户端。使用前去要安装对应的模块,首先是PyQt5

    pip install pyqt5

    然后是suds-py3

    pip install suds-py3

    安装完成后,为了演示示例,我们创建自己的Soap服务,就是之前ksoap2介绍中使用的服务

    import logging  
    logging.basicConfig(level=logging.DEBUG)  
      
    from spyne import Application, rpc, ServiceBase, Unicode  
      
    from spyne import Iterable  
      
    from spyne.protocol.soap import Soap11  
      
    from spyne.server.wsgi import WsgiApplication  
      
    class HelloWorldService(ServiceBase):  
        @rpc(Unicode, _returns=Unicode)  
        def say_hello(ctx, name):
            if name:	
                return 'Hello, %s' % name
            else:
                return 'Hello'		
      
    application = Application([HelloWorldService],  
        tns='http://spyne.examples.hello/',  
        in_protocol=Soap11(),  
        out_protocol=Soap11()
    )  
      
    if __name__ == '__main__':  
        from wsgiref.simple_server import make_server  
      
        wsgi_app = WsgiApplication(application)  
        server = make_server('0.0.0.0', 8000, wsgi_app)  
        server.serve_forever()

    下面是我们的主角,实际上大部分代码是界面部分的,soap通信使用的代码不多,Soap参数使用Python字典的方式输入,另外由于这是自己使用的小工具,网络请求时没有启动线程,实际中,如果为了用户体验好一些,可以启动线程进行网络通信,首先是界面,我们的Dialog,web_service_dialog.py

    from PyQt5.QtWidgets import QDialog, QLabel, QLineEdit, QTextEdit, QPushButton, QVBoxLayout, QHBoxLayout, QGridLayout, \
        QMessageBox
    from PyQt5.QtCore import Qt, pyqtSignal, QObject
    from suds.client import Client
    from suds import MethodNotFound
    from suds.transport import TransportError
    import json
    
    from global_params import DEFAULT_WSDL
    
    
    class WebServiceDialog(QDialog):
    
        class Signals(QObject):
            request_complete = pyqtSignal(str)
    
        def __init__(self, parent=None):
            super(WebServiceDialog, self).__init__(parent)
    
            wsdl_label = QLabel('WSDL:', self)
            self.wsdlLineEdit = QLineEdit(self)
            self.wsdlLineEdit.setText(DEFAULT_WSDL)
    
            method_label = QLabel('方法:', self)
            self.methodLineEdit = QLineEdit(self)
    
            param_label = QLabel('参数字典:', self)
            self.paramTextEdit = QTextEdit(self)
            self.paramTextEdit.setFixedHeight(200)
    
            response_label = QLabel('响应', self)
            self.responseTextEdit = QTextEdit(self)
            self.responseTextEdit.setFixedHeight(200)
            self.responseTextEdit.setReadOnly(True)
    
            form_layout = QGridLayout()
            form_layout.addWidget(wsdl_label, 0, 0, 1, 1)
            form_layout.addWidget(self.wsdlLineEdit, 0, 1, 1, 1)
            form_layout.addWidget(method_label, 1, 0, 1, 1)
            form_layout.addWidget(self.methodLineEdit, 1, 1, 1, 1)
            form_layout.addWidget(param_label, 2, 0, 1, 1)
            form_layout.addWidget(self.paramTextEdit, 2, 1, 1, 1)
            form_layout.addWidget(response_label, 3, 0, 1, 1)
            form_layout.addWidget(self.responseTextEdit, 3, 1, 1, 1)
    
            self.okButton = QPushButton('确定', self)
            self.cancelButton = QPushButton('取消', self)
            button_layout = QHBoxLayout()
            button_layout.addStretch()
            button_layout.addWidget(self.okButton)
            button_layout.addWidget(self.cancelButton)
            button_layout.addStretch()
    
            main_layout = QVBoxLayout()
            main_layout.addLayout(form_layout)
            main_layout.addLayout(button_layout)
    
            self.okButton.clicked.connect(self.send_request)
            self.cancelButton.clicked.connect(self.reject)
    
            self.signal = self.Signals()
            self.signal.request_complete.connect(self.request_complete)
    
            self.setLayout(main_layout)
            self.setWindowTitle('Soap调用测试')
            self.setWindowFlags(Qt.WindowCloseButtonHint)
            self.setMinimumWidth(500)
            self.setFixedHeight(550)
    
        def request_complete(self, ret):
            self.responseTextEdit.setText(ret)
    
        def send_request(self):
            try:
                client = Client(self.wsdlLineEdit.text())
            except ValueError:
                QMessageBox.information(self, "错误", "wsdl错误", QMessageBox.No)
                return
    
            params_str = self.paramTextEdit.toPlainText()
            if params_str:
                try:
                    params = eval(params_str)
                    if not isinstance(params, dict):
                        raise NameError
                except NameError:
                    QMessageBox.information(self, "错误", "参数格式错误,请输入字典", QMessageBox.No)
                    return
            else:
                params = {}
    
            try:
                ret = client.service.__getattr__(self.methodLineEdit.text())(**params)
                self.signal.request_complete.emit(ret)
            except MethodNotFound:
                QMessageBox.information(self, "错误", "没有该方法", QMessageBox.No)
                return
            except TransportError:
                QMessageBox.information(self, "错误", "请求错误", QMessageBox.No)
                return

    为了方便,我定义了一个DEFAULT_WSDL,用来初始显示,定义在global_params.py

    DEFAULT_WSDL = r'http://192.168.6.27:8000/?wsdl'

    然后是我们的主程序main.py

    from PyQt5.Qt import QApplication
    from web_service_dialog import WebServiceDialog
    
    import sys
    
    if __name__ == '__main__':
        app = QApplication(sys.argv)
        web_service_dialog = WebServiceDialog()
        web_service_dialog.show()
        sys.exit(app.exec_())

    运行并访问测试服务,如图所示


    感兴趣的尝试一下,这里仅仅方便我的使用,如果大家有其他需求,可以在此基础上改进,比如可以添加namespace和上传文件等。


    展开全文
  • 主要介绍了python制作一个桌面便签软件分别给大家附上ubuntu和windows版的程序及源码,有需要的小伙伴可以参考下。
  • [Python实战]Python制作天气查询软件

    千次阅读 多人点赞 2019-03-10 18:10:05
    Python实战图形界面之天气查询

    在这里插入图片描述

    以前,公众号分享了如何使用 PyQt5 制作猜数游戏和计时器,这一次,我们继续学习:如何使用 PyQt5 制作天气查询软件。
    如需获取源代码和 exe 文件,请在微信公众号Python高效编程后台回复: 天气

    开发环境

    • Python3
    • PyQt5
    • requests

    准备工作

    首先要获取不同城市对应的天气代码,可以从https://www.heweather.com/documents/city.html 网站下载 csv 文件(文末获取 csv 文件),拿到 csv 文件,我们首先要进行数据预处理工作。

    import pandas as pd
    # 将下载好的文件命名为 'city_code.csv',并删除 header
    file = pd.read_csv('city_code.csv')
    # 选取需要的两列信息
    file = file.loc[:,['City_ID', 'City_CN']]
    # 读取前五行信息
    file.head()
    

    在这里插入图片描述

    # 匹配 City_ID 中的数字
    def convert(x):
        pat = re.compile('(\d+)')
        return pat.search(x).group()
    
    file['City_ID_map'] = file['City_ID'].map(convert)
    
    # 建立城市与代码之间的映射关系
    def city2id(file):
        code_dict = {}
        key = 'City_CN'
        value = 'City_ID_map'
        for k, v in zip(file[key], file[value]):
            code_dict[k] = v
        return code_dict
    code_dict = city2id(file)
    
    # 将所得的字典数据存储为 txt 文件
    import json
    filename = 'city_code.txt'
    with open(filename, 'w') as f:
        json.dump(code_dict, f)
    

    将字典存储为 txt 文件后,以后我们只需读取文件,再获取字典:

    with open(filename, 'r') as f:
        text = json.load(f)
    

    如果不想费工夫处理这些数据,可以直接使用文末提供的 city_code.txt 文件。

    Ui 设计

    使用 Qt Designer,我们不难设计出以下界面:

    在这里插入图片描述
    如果不想设计这些界面,可以直接导入我提供的 Ui_weather.py 文件。

    主体逻辑:

    我们这次使用的 api 接口为:‘http://wthrcdn.etouch.cn/weather_mini?citykey={code}’,code 就是之前处理过的城市代码,比如常州的城市代码为:101191101。替换掉变量 code ,网站返回给我们一段 json 格式的文件:

    在这里插入图片描述

    根据这段 json 语句,我们很容易提取需要的信息:

    # 天气情况
    data = info_json['data']
    city = f"城市:{data['city']}\n"
    today = data['forecast'][0]
    date = f"日期:{today['date']}\n"
    now = f"实时温度:{data['wendu']}度\n"
    temperature = f"温度:{today['high']} {today['low']}\n"
    fengxiang = f"风向:{today['fengxiang']}\n"
    type = f"天气:{today['type']}\n"
    tips = f"贴士:{data['ganmao']}\n"
    

    当然,我们首先要使用 requests,get 方法,来获取这段 json 代码。

    def query_weather(code):
        # 模板网页
        html = f'http://wthrcdn.etouch.cn/weather_mini?citykey={code}'
        
        # 向网页发起请求
        try:
            info = requests.get(html)
            info.encoding = 'utf-8'
        # 捕获 ConnectinError 异常
        except requests.ConnectionError:
            raise 
        
        
        
        # 将获取的数据转换为 json 格式
        try:
            info_json = info.json()
        # 转换失败提示无法查询
        except JSONDecodeError:
            return '无法查询'
    

    下面我们介绍下本文用到的控件方法:

    # 将 textEdit 设置为只读模式
    self.textEdit.setReadOnly(True)
    # 将鼠标焦点放在 lineEdit 编辑栏里
    self.lineEdit.setFocus()
    # 获取 lineEdit 中的文本
    city = self.lineEdit.text()
    # 设置文本
    self.textEdit.setText(info)
    # 清空文本
    self.lineEdit.clear()
    

    为查询按钮设置快捷键:

    def keyPressEvent(self, e):
    # 设置快捷键
    	if e.key() == Qt.Key_Return:
    		self.queryWeather()
    

    最后,我们可以使用 Pyinstaller -w weather.py 打包应用程序,但是要记得打包完,将 city_code.txt 复制到 dist/weather 文件夹下,否则程序无法运行。

    以上便是本文的全部内容了,更详细的内容请见源代码。如需获取源代码和 exe 文件,请在微信公众号Python高效编程后台回复: 天气

    展开全文
  • Python制作翻译软件(中英文互译)

    千次阅读 2019-03-29 14:38:28
    本案例非常简单有趣,使用Python Tkinter模块结合有道翻译API实现中英文互译,效果如下: 感兴趣的小伙伴可以参阅有道翻译API:http://ai.youdao.com/?keyfrom=fanyi-new-nav 参考Demo如下: from tkinter ...

    本案例非常简单有趣,使用Python Tkinter模块结合有道翻译API实现中英文互译,效果如下:

    感兴趣的小伙伴可以参阅有道翻译API:http://ai.youdao.com/?keyfrom=fanyi-new-nav 

    参考Demo如下:

    from tkinter import *
    from tkinter import messagebox
    import requests
    #创建窗口
    root =  Tk()
    #标题
    root.title('中英互译')
    #窗口大小
    root.geometry('370x100')
    #窗口位置
    #root.geometry('+600+450')
    s_with = root.winfo_screenwidth()#获取屏幕宽
    s_height = root.winfo_screenheight()#获取屏幕高度
    #计算页面打开在屏幕中央的位置
    l_x = str(round(
    展开全文
  • 简单图像处理软件源码分享,之前做的一个课程项目,PyQt设计GUI,图像示例自行到opencv官网下载。
  • 本资源会教你如何用python制作免杀软件,并提供了所需的代码工具和脚本,亲测能够过360安全卫士和火绒。
  • 如何利用python制作一个解压缩软件

    千次阅读 多人点赞 2019-11-11 17:00:48
    如何利用python制作一个解压缩软件 python实现解压缩的重要模块就是——zipfile,其次是os 安装zipfile模块 首先得安装zipfile模块,打开cmd输入一下命令即可安装 pip install zipfile os是python自带的库,所以...
  • python翻译软件

    2018-09-02 08:37:56
    这个翻译是由python制作软件,pyinstaller打包,GUI界面由tkinter制作
  • 本文主要给大家介绍的是关于Python制作天气查询软件,下面话不多说了,来一起看看详细的介绍吧 效果图 以前,给大家分享了如何使用 PyQt5 制作猜数游戏和计时器,这一次,我们继续学习:如何使用 PyQt5 制作天气...
  • Python制作软件——3. 利用PyQt5实现界面中的功能

    万次阅读 多人点赞 2018-08-07 15:19:19
    Python制作软件——1. 安装并使用PyQt5进行界面设计、Python制作软件——2. 实现界面中的退出功能。 本文将介绍如何使用Python编写后端的代码,实现我们前面做好的界面中的功能。 转换来的Python文件中...
  • 将ui格式的文件转化为py的Python文件 pyuic5 -o srs.py srs1.0.ui
  • 教你用python制作一个爬虫软件,城市二手房信息一览无余。。(附源码) 近年来随着我国二手房市场的逐渐放开,进入市场的二手房数量不断增加,二手房交易规模不断扩大,市场规模也在不断增长。数据显示,截至2018年...
  • 拿下python软件制作

    2017-08-01 22:36:23
    界面选择用wxPython去做,原因就是看着貌似挺容易上手,而且一直没有python IDE,UI设计相当不方便。 接下来说说dump下来的东西先存csv后转xlsx,之后是相应计算,这个都靠pipeline.py去做了。看到close...
  • Python制作字符画.pdf

    2021-06-28 17:41:52
    Python制作字符画.pdf
  • Python制作软件——2. 实现界面中的退出功能

    万次阅读 多人点赞 2018-08-06 20:39:11
    在上一篇博客中:Python制作软件——1. 安装并使用PyQt5进行界面设计,我们说到生成了界面对应的.py格式的文件,里面的内容如下: # -*- coding: utf-8 -*- # Form implementation generated from reading ui ...
  • Python制作软件——4. 利用PyInstaller打包成exe文件

    万次阅读 多人点赞 2018-08-07 18:39:20
    在前面:Python制作软件——3. 利用PyQt5实现界面中的功能,介绍完了Python中如何呼唤出我们的界面后 最后最重要的就是将我们做好的东西,全部打包成一个.exe可执行文件。这里我们使用的是PyInstaller进行封装...
  • Python制作的一款小软件(含源码)

    万次阅读 多人点赞 2019-08-05 16:17:36
    运行示意图 程序下载百度云链接 上传CSDN是要下载币的,所以保存在百度云用于共享。 链接:...提取码:vr6t 复制这段内容后打开百度网盘手机App,操作更方便哦 需要python源码学习的请留言 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 49,313
精华内容 19,725
关键字:

python制作软件

python 订阅