pyqt实战之带你写个网络测试程序
来源:互联网 发布:淘宝少女双肩背包 编辑:程序博客网 时间:2024/06/05 10:56
一、准备阶段
请看这篇文章:http://blog.csdn.net/ruoyunliufeng/article/details/77921361
1.补充pysinstall和pycharm的集成:
1.1pip安装pyinstall
pip install pyinstall
1.2按照下图配置
3.使用
二、程序编写
1.设计UI
在当前问津新建.ui文件(前提是你已经完成上面的安装步骤),然后右击文件选择外部工具的QTdesigner
QTdesigner的设计部分,我就不多讲了,可能后续会出博客专题专门讲。大体原理就是拖拖拽拽改改参数。
2.将UI程序转换成python程序
转换后注释三行代码:
# MainWindow.setCentralWidget(self.centralwidget) # MainWindow.setStatusBar(self.statusbar) # MainWindow.setMenuBar(self.menuBar)
主程序
# encoding: utf-8# ***网络测试程序V0.1***# 1.采用ping原理进行网络测试# 2.分离UI主线程和工作线程# ***********************# V0.2# 更新网络成功或失败按钮颜色的变化import osimport sysimport timeglobal ipfrom ui_net import Ui_MainWindowfrom PyQt5 import QtWidgets,QtCore,Qtfrom PyQt5.QtGui import QPixmap,QPalettefrom PyQt5.QtCore import *from PyQt5.QtGui import *from PyQt5.QtWidgets import *class WorkThread(QtCore.QThread): sinOut = pyqtSignal(int) def __int__(self): super(WorkThread,self).__init__() def run(self ): global ip exit_code = os.system(u'ping %s'%ip) if exit_code: # raise Exception('connect failed.') self.sinOut.emit(0) #反馈信号出去 else: self.sinOut.emit(1) #反馈信号出去# class mywindow(QtWidgets.QWidget, Ui_MainWindow): trigger = QtCore.pyqtSignal() def __init__(self): super(mywindow, self).__init__() self.setupUi(self) # 连接 QPushButton 的点击信号到槽 BigWork() self.pushButton.clicked.connect(self.net_work) # # 延时为了看启动界面 # time.sleep(1) def net_work(self): # print("开始多线程") self.wt = WorkThread() global ip ip = self.lineEdit.text() print (ip) #开始执行run()函数里的内容 self.wt.start() # # 收到信号 self.wt.sinOut.connect(self.net_back) #将信号连接至net_back函数 def net_back(self,net_bool): if net_bool ==1: self.pushButton.setText(u"成功") # button1.setStyleSheet("background-color: red"); # button2.setStyleSheet("background-color:#ff0000;"); # button3.setStyleSheet("background-color:rgb(255,0,0)"); self.pushButton.setStyleSheet("background-color: green") else: self.pushButton.setText(u"失败") self.pushButton.setStyleSheet("background-color: red")if __name__=="__main__": app=QtWidgets.QApplication(sys.argv) # 启动界面 splash = QtWidgets.QSplashScreen(QPixmap("D://D.png")) splash.show() splash.showMessage(u"正在加载软件",alignment = QtCore.Qt.AlignHCenter) app.processEvents() # 防止卡死 print("app.processEvents()") myshow=mywindow() print("app.processEvents()") myshow.show() print("app.processEvents()") # 关闭启动界面 splash.finish(myshow) sys.exit(app.exec_())
程序有几个要点:
1.开机界面实现。
2.线程实现,方式运行程序过程中UI界面的卡死。
3.调用windows命令行的实现。
三、效果
阅读全文
0 0
- pyqt实战之带你写个网络测试程序
- [PyQt]第一个测试程序
- 带你快速玩转canvas(4)实战——写个折线图
- python使用pyqt写带界面工具
- ViewPager 从入门到带你撸个启动页之实战启动页(三)
- ViewPager 从入门到带你撸个启动页之实战启动页(三)
- 2017云哥性能测试实战带你走出迷茫
- PyQt实战之计算器的实现
- ViewPager 从入门到带你撸个启动页之实战PageTransformer切换动画特效(四)
- PyQt 第一个程序 “Hello World”
- Pyqt5系列(二 )-第一个PyQt程序
- 实战JBOSS――教你写第一个EJB
- 实战JBOSS――教你写第一个EJB
- 实战JBOSS――教你写第一个EJB
- 实战JBOSS――教你写第一个EJB
- 测试UNIX网络编程第一个程序
- 第一个工程2,-写个简单的测试程序
- 带你玩转JavaWeb之三-JS代码实战
- Java中retry:的用法
- Lua与C++交互初探之C++调用Lua
- 数据结构-杂记--递归浅谈
- 计算机组成原理 及CPU,硬盘,内存三者的关系
- linux下的文件管理
- pyqt实战之带你写个网络测试程序
- Spring 中加载XML配置文件的方式
- jQuery
- String与StringBuffer的区别
- 002--第一次成功删除之后,后续的删除会脏数据读取到第一次的记录信息id
- java反射
- Lua与C++交互初探之Lua调用C++
- git命令
- python操作excel