@本文来源于公众号:csdn2299,喜欢可以关注公众号 程序员学府
这篇文章主要介绍了PyQt+socket实现远程操作服务器的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
来需求了。。干活啦。。
需求内容
部分时候由于缓存刷新、验证码显示不出来或者浏览器打不开或者打开速度很慢等原因,导致部分测试同事不想使用浏览器登录服务器执行命令。 期望有小工具可以替代登录浏览器的操作,直接发送指令到服务器执行并将执行结果返回。
需求设计
1、开发界面,方便用户输入IP、用户名、密码以及执行的命令。
2、IP、用户名、密码和命令输入提供默认值。特别是用户名和密码,对于测试服务器来说,通常都是固定的。
3、IP、命令行输入框可以自动补全用户输入。自动补全常用IP、命令行可以提高操作效率。
4、可以自动保存用户执行成功的IP、命令行。用于完善自动补全命令(本文代码未实现)。
需求设计
1、使用Qt Designer实现界面开发。开发后界面参考如下:
2、使用socket程序登录服务器并执行命令,并将结果显示在界面文本框中。
代码实现(程序可以直接复制运行)
1、使用Qt Designer实现界面开发。拖动4个label+4个输入框+1个按钮+1个textBrowser到主界面。开发后界面同需求设计中的截图。
2、使用pyuic5 -o commandtools.py commandtools.ui指令将.ui文件转换成.py文件。
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file ‘commandTools.ui’
#
# Created by: PyQt5 UI code generator 5.11.3
#
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName(“Form”)
Form.resize(483, 347)
self.ip_label = QtWidgets.QLabel(Form)
self.ip_label.setGeometry(QtCore.QRect(30, 20, 16, 16))
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
self.ip_label.setFont(font)
self.ip_label.setObjectName(“ip_label”)
self.ip_lineEdit = QtWidgets.QLineEdit(Form)
self.ip_lineEdit.setGeometry(QtCore.QRect(50, 20, 101, 20))
self.ip_lineEdit.setObjectName(“ip_lineEdit”)
self.username_label = QtWidgets.QLabel(Form)
self.username_label.setGeometry(QtCore.QRect(160, 20, 61, 16))
font = QtGui.QFont()</