麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 服務(wù)器 > 管理維護(hù) > 正文

PyQt+socket實(shí)現(xiàn)遠(yuǎn)程操作服務(wù)器的方法示例

2024-09-10 14:19:41
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

來(lái)需求了。。干活啦。。

需求內(nèi)容

部分時(shí)候由于緩存刷新、驗(yàn)證碼顯示不出來(lái)或者瀏覽器打不開(kāi)或者打開(kāi)速度很慢等原因,導(dǎo)致部分測(cè)試同事不想使用瀏覽器登錄服務(wù)器執(zhí)行命令。 期望有小工具可以替代登錄瀏覽器的操作,直接發(fā)送指令到服務(wù)器執(zhí)行并將執(zhí)行結(jié)果返回。

需求設(shè)計(jì)

1、開(kāi)發(fā)界面,方便用戶輸入IP、用戶名、密碼以及執(zhí)行的命令。

2、IP、用戶名、密碼和命令輸入提供默認(rèn)值。特別是用戶名和密碼,對(duì)于測(cè)試服務(wù)器來(lái)說(shuō),通常都是固定的。

3、IP、命令行輸入框可以自動(dòng)補(bǔ)全用戶輸入。自動(dòng)補(bǔ)全常用IP、命令行可以提高操作效率。

4、可以自動(dòng)保存用戶執(zhí)行成功的IP、命令行。用于完善自動(dòng)補(bǔ)全命令(本文代碼未實(shí)現(xiàn))。

需求設(shè)計(jì)

1、使用Qt Designer實(shí)現(xiàn)界面開(kāi)發(fā)。開(kāi)發(fā)后界面參考如下:

2、使用socket程序登錄服務(wù)器并執(zhí)行命令,并將結(jié)果顯示在界面文本框中。

代碼實(shí)現(xiàn)(程序可以直接復(fù)制運(yùn)行)

1、使用Qt Designer實(shí)現(xiàn)界面開(kāi)發(fā)。拖動(dòng)4個(gè)label+4個(gè)輸入框+1個(gè)按鈕+1個(gè)textBrowser到主界面。開(kāi)發(fā)后界面同需求設(shè)計(jì)中的截圖。

2、使用pyuic5 -o commandtools.py commandtools.ui指令將.ui文件轉(zhuǎn)換成.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, QtWidgetsclass 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()    font.setBold(True)    font.setWeight(75)    self.username_label.setFont(font)    self.username_label.setObjectName("username_label")    self.username_lineEdit = QtWidgets.QLineEdit(Form)    self.username_lineEdit.setGeometry(QtCore.QRect(220, 20, 71, 20))    self.username_lineEdit.setObjectName("username_lineEdit")    self.password_label = QtWidgets.QLabel(Form)    self.password_label.setGeometry(QtCore.QRect(300, 20, 61, 16))    font = QtGui.QFont()    font.setBold(True)    font.setWeight(75)    self.password_label.setFont(font)    self.password_label.setObjectName("password_label")    self.password_lineEdit = QtWidgets.QLineEdit(Form)    self.password_lineEdit.setGeometry(QtCore.QRect(360, 20, 80, 20))    self.password_lineEdit.setObjectName("password_lineEdit")    self.command_label = QtWidgets.QLabel(Form)    self.command_label.setGeometry(QtCore.QRect(30, 70, 51, 16))    font = QtGui.QFont()    font.setBold(True)    font.setWeight(75)    self.command_label.setFont(font)    self.command_label.setObjectName("command_label")    self.command_lineEdit = QtWidgets.QLineEdit(Form)    self.command_lineEdit.setGeometry(QtCore.QRect(90, 70, 251, 20))    self.command_lineEdit.setObjectName("command_lineEdit")    self.result_textBrowser = QtWidgets.QTextBrowser(Form)    self.result_textBrowser.setGeometry(QtCore.QRect(30, 120, 410, 201))    self.result_textBrowser.setObjectName("result_textBrowser")    self.run_Button = QtWidgets.QPushButton(Form)    self.run_Button.setGeometry(QtCore.QRect(360, 70, 80, 23))    self.run_Button.setObjectName("run_Button")    self.retranslateUi(Form)    QtCore.QMetaObject.connectSlotsByName(Form)  def retranslateUi(self, Form):    _translate = QtCore.QCoreApplication.translate    Form.setWindowTitle(_translate("Form", "cmdTool"))    self.ip_label.setText(_translate("Form", "IP"))    self.ip_lineEdit.setText(_translate("Form", "127.0.0.1"))    self.username_label.setText(_translate("Form", "username"))    self.username_lineEdit.setText(_translate("Form", "admin"))    self.password_label.setText(_translate("Form", "password"))    self.password_lineEdit.setText(_translate("Form", "Winovs12!"))    self.command_label.setText(_translate("Form", "Command"))    self.command_lineEdit.setText(_translate("Form", "LST LOG"))    self.run_Button.setText(_translate("Form", "Run"))
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 国产一国产一级毛片视频 | 91午夜在线观看 | xxxx18韩国护士hd老师 | 免费观看三级毛片 | 国产精品久久久久久影院8一贰佰 | 国产69精品久久久久久久久久 | www久久综合 | av电影免费播放 | 草莓视频在线导航 | 亚州综合图片 | 国产一级一国产一级毛片 | 成人免费激情视频 | 国产成人在线视频播放 | 亚洲午夜免费电影 | porno video hd 365hd| 法国性xxx精品hd专区 | 369看片你懂的小视频在线观看 | www.777含羞草| 激情亚洲一区二区三区 | 国产午夜精品久久久久 | 成人毛片100免费观看 | 精品一区二区三区在线观看视频 | 午夜视频在线免费播放 | 中文字幕免费看 | 久久久久国 | 日本爽快片100色毛片视频 | 婷婷久久综合九色综合色多多蜜臀 | 媚药按摩痉挛w中文字幕 | 日韩欧美中文字幕视频 | 国产免费久久久久 | 91成人影库| 成人毛片在线 | 日本在线不卡一区二区 | 视频在线中文字幕 | 手机在线看片国产 | 久国久产久精永久网页 | 一级电影免费在线观看 | 在线成人一区二区 | 天堂成人一区二区三区 | 国产伊人色 | 久久靖品|