QWidgets子类QTextEdit常用函数
toPlainText()获得多行文本
setPlainText()设置多行文本 # 实践中倒置python程序崩溃
想要初始化textEdit文本解决方法:
使用QTextEdit.append(text)
在本学期做的招聘桌面应用中
这里只展示求职者端的代码及效果:
20220706_151829
# mianWindow.py 切换窗口主程序
import sys
sys.path.append('../Logup/')
sys.path.append('../user/')
sys.path.append('../BOOS')
sys.path.append('../Administrator')
import LogupWindow as logup
import UserWindow as user
import BoosWindow as boss
import AdministratorWindow as adm
from PyQt5.QtWidgets import QApplication, QMainWindow
class mainWindows:
def __init__(self):
self.logupW = logup.LoadingWindow()
self.logupW.switch.connect(self.switchWindows)
self.logupW.show()
def switchWindows(self):
self.client = self.logupW.client
self.id = self.logupW.userid
self.password = self.logupW.password
self.username = self.logupW.username
self.identity = self.logupW.identity
self.logupW.close()
if self.identity == 'users':
print("登录user")
self.userW = user.UserWindow(self.client, self.id, self.password, self.username, self.identity)
self.userW.show()
elif self.identity == 'bosses':
print("登录boss")
# print(self.logupW.username)
self.bossW = boss.BoosWindow(self.client,self.id, self.username, self.identity)
self.bossW.show()
else:
print("登录managers")
self.admW = adm.AdministratorWindow(self.client, self.id, self.password, self.username, self.identity)
if __name__=="__main__":
app = QApplication(sys.argv)
main = mainWindows()
sys.exit(app.exec_())
登录界面,我使用pyqt并给予qt designer所以对于窗口图形界面的设计这里不展示代码:
# login_db.py验证登录和注册账号的逻辑,请求服务器
import sqlite3
import json
import socket
from TCPmodule import m_recv
def register(client, id, password, name, identity):
jdata = [{'request': 'register', 'id': id, 'passwd': password, 'identity': identity, 'name': name}]
client.send(json.dumps(jdata).encode())
j_res = json.loads(m_recv(client))
print(j_res)
if j_res[0]['request_return'] == 'register':
return j_res[0]['register_state']
else:
print('服务器返回数据出错!')
return 'error'
def login(client, id, password, identity):
jdata = [{'request': 'login', 'id': id, 'passwd': password, 'identity': identity}]
client.send(json.dumps(jdata).encode())
# 服务器返回登录状态信息
# '用户未注册或账号错误'
# '密码错误'
# '登录成功'
j_res = json.loads(m_recv(client))
print('登录结果:j_res', j_res)
if j_res[0]['login_state'] == '用户未注册或账号错误':
info = []
res = [j_res[0]['login_state'], info]
print(res)
if j_res[0]['request_return'] == 'login':
return res
else:
print('服务器返回数据出错!')
return 'error'
elif j_res[0]['login_state'] == '密码错误':
info = []
res = [j_res[0]['login_state'], info]
print(res)
if j_res[0]['request_return'] == 'login':
return res
else:
print('服务器返回数据出错!')
return 'error'
else:
info = []
info.append(j_res[1]['id'])
info.append(j_res[1]['password'])
info.append(j_res[1]['name'])
res = [j_res[0]['login_state'], info]
# res = client.recv(1024).decode()
print(res)
if j_res[0]['request_return'] == 'login':
return res
else:
print('服务器返回数据出错!')
return 'error'
# 登录界面主程序,调用图形界面及登录注册验证及窗口切换
from loading import * # qt designer生成的图形界面代码
import login_db
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow
from PyQt5 import QtCore
import socket
class LoadingWindow(QMainWindow):
switch = QtCore.pyqtSignal() # 切换窗口信号
def switch_widget2(self):
self.ui.widget.hide()
self.hide_error()
self.ui.widget_2.show()
def switch_widget(self):
self.ui.widget_2.hide()
self.hide_error()
self.ui.widget.show()
def show_error(self):
self.ui.label_3.setText(self.massage)
self.ui.label_3.show()
def hide_error(self):
self.ui.label_3.hide()
def __init__(self):
super().__init__()
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
self.ui.widget_2.hide()
self.ui.label_3.hide()
self.ui.pushButton_5.clicked.connect(self.switch_widget)
self.ui.pushButton_4.clicked.connect(self.switch_widget2)
self.ui.pushButton_3.clicked.connect(self.logining)
self.ui.pushButton_6.clicked.connect(self.registering)
# 连接服务器
self.client = socket.socket()
host = '47.99.201.114'
port = 1010
self.client.connect((host, port))
# 隐藏窗口
self.setWindowFlag(QtCore.Qt.FramelessWindowHint)
self.setAttribute(QtCore.Qt.WA_TranslucentBackground)
self.show()
def mousePressEvent(self, event):
if event.button() == QtCore.Qt.LeftButton and self.isMaximized() == False:
self.m_flag = True
self.m_Position = event.globalPos() - self.pos()
event.accept()
self.setCursor(QtGui.QCursor(QtCore.Qt.OpenHandCursor))
def mouseMoveEvent(self, mouse_event):
if QtCore.Qt.LeftButton and self.m_flag:
self.move(mouse_event.globalPos() - self.m_Position)
mouse_event.accept()
def mouseReleaseEvent(self, mouse_event):
self.m_flag = False
self.setCursor(QtGui.QCursor(QtCore.Qt.ArrowCursor))
def logining(self):
self.userid = self.ui.lineEdit.text()
print(self.userid)
self.password = self.ui.lineEdit_2.text()
print(self.password)
if self.ui.radioButton.isChecked():
self.identity = 'users'
elif self.ui.radioButton_2.isChecked():
self.identity = 'managers'
elif self.ui.radioButton_5.isChecked():
self.identity = 'bosses'
else:
self.massage = '未选择身份!'
self.show_error()
if self.userid=='':
self.massage = '用户名为空!'
self.show_error()
print("账号输入",self.userid,self.password,self.identity)
print('login_db')
a = login_db.login(self.client, self.userid, self.password, self.identity)
print('a等于', a)
if a[0] == '用户未注册或账号错误':
self.massage = '用户未注册或账号错误!'
print('用户未注册或账号错误!')
self.show_error()
elif a[0] == '密码错误':
self.massage = '密码错误!'
print('密码错误!')
self.show_error()
else:
self.userid = a[1][0]
self.password = a[1][1]
self.username = a[1][2]
print('登录成功!', self.identity)
self.switch.emit()
# if a > 0:
# print('登录成功!')
# else:
# self.massage = '用户名或密码错误!'
# print('用户名或密码错误!')
# self.show_error()
def registering(self):
self.userid = self.ui.lineEdit_4.text()
print(self.userid)
if self.userid == '':
self.massage='用户名为空!'
self.show_error()
self.password = self.ui.lineEdit_3.text()
print(self.password)
self.password_2 = self.ui.lineEdit_5.text()
if self.password != self.password_2:
print('确认密码错误!')
self.massage = '确认密码错误!'
self.show_error()
return
else:
if self.ui.radioButton_4.isChecked():
self.identity = 'users'
elif self.ui.radioButton_6.isChecked():
self.identity = 'bosses'
else:
print('未选择身份')
self.massage = '未选择身份'
self.show_error()
self.username = self.ui.lineEdit_6.text()
print("昵称", self.username)
a = login_db.register(self.client, self.userid, self.password, self.username, self.identity)
if a == '注册成功':
self.massage = '注册成功!'
self.show_error()
else:
self.massage = 'ERROR注册失败!'
self.show_error()
if __name__ == '__main__':
app = QApplication(sys.argv)
win = LoadingWindow()
sys.exit(app.exec_())
求职者登录成功后跳转到用户窗口
# UserWindow.py主程序,调度各种小窗口
from PyQt5.QtChart import QPieSeries, QChart, QPieSlice
import addjianli as jianli
from TCPmodule import m_recv
from userUI import *
import pyqdetail as detail
import pymysql
import sys
import json
import _thread
import time
from PyQt5.QtWidgets import QWidget, QTableView, QAbstractItemView, QToolTip, qApp, QPushButton, QLabel, QVBoxLayout, \
QHBoxLayout, QApplication, QMainWindow, QHeaderView, QMessageBox
from PyQt5.QtCore import Qt, QStringListModel
from PyQt5.QtGui import QStandardItemModel, QStandardItem, QCursor, QFont, QPainter
# self.client, self.id, self.password, self.username, self.identity
class UserWindow(QMainWindow):
def __init__(self, client, userid, password, username, identity):
super().__init__()
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
self.messagelist = [] # *********************
self.slm = QStringListModel()
self.slm.setStringList(self.messagelist)
self.ui.listView.setModel(self.slm)
self.ui.pushButton_3.clicked.connect(self.sendresume)
self.ui.pushButton_4.clicked.connect(self.addjianli)
self.ui.pushButton_5.clicked.connect(self.zhuxiao)
self.userid = userid
self.password = password
self.username = username
self.identity = identity
self.ui.label_5.setText(self.username)
self.ui.label_6.setText(self.userid)
print("启动user窗口")
# 隐藏窗口
self.setWindowFlag(QtCore.Qt.FramelessWindowHint)
self.setAttribute(QtCore.Qt.WA_TranslucentBackground)
self.show()
self.client = client
try:
self.getdata()
except:
print("启动线程1失败", sys.exc_info()[0])
try:
self.getchartdetail()
except:
print("启动线程2失败", sys.exc_info()[0])
def getdata(self):
print("开始查询getdata")
sql = "SELECT jobName,jobCompany,jobSalary,jobPlace,jobOfferid,jobDescribe,jobEducation,jobExperience FROM jobOfferDetail;"
jdata = [{'request': 'getJobDetailSQL', 'sql': sql}]
self.client.send(json.dumps(jdata).encode())
jres = json.loads(m_recv(self.client))
print("jres是", jres)
print("jres[0]['num']", jres[0]['num'])
self.all_job_datas = []
self.all_job_datas.append(jres[0]['num'])
self.all_job_datas.append([])
for i in range(0, jres[0]['num']):
job = []
job.append(jres[i + 1]['jobName'])
job.append(jres[i + 1]['jobCompany'])
job.append(jres[i + 1]['jobSalary'])
job.append(jres[i + 1]['jobPlace'])
job.append(jres[i + 1]['jobOfferid'])
job.append(jres[i + 1]['jobDescribe'])
job.append(jres[i + 1]['jobEducation'])
job.append(jres[i + 1]['jobExperience'])
self.all_job_datas[1].append(job)
print(self.all_job_datas)
print('self.userid', self.userid)
sql2 = "SELECT jobName,jobCompany,jobSalary,jobPlace,jobOfferid FROM jobOfferDetail WHERE jobOfferid IN (SELECT jobOfferid FROM resume WHERE id =\'{}\');".format(
self.userid)
print('sql2', sql2)
jdata = [{'request': 'getJobDetailSQL', 'sql': sql2}]
self.client.send(json.dumps(jdata).encode())
jres = json.loads(m_recv(self.client))
print("jres是", jres)
print("jres[0]['num']", jres[0]['num'])
self.all_job_datas2 = []
self.all_job_datas2.append(jres[0]['num'])
self.all_job_datas2.append([])
for i in range(0, jres[0]['num']):
job = []
job.append(jres[i + 1]['jobName'])
job.append(jres[i + 1]['jobCompany'])
job.append(jres[i + 1]['jobSalary'])
job.append(jres[i + 1]['jobPlace'])
job.append(jres[i + 1]['jobOfferid'])
self.all_job_datas2[1].append(job)
print(self.all_job_datas2)
self.column_name = ['工作名称', '公司', '薪酬', '工作地点']
self.model = QStandardItemModel(self.all_job_datas[0], 4)
self.model2 = QStandardItemModel(self.all_job_datas2[0], 4)
self.model.setHorizontalHeaderLabels(self.column_name)
self.model2.setHorizontalHeaderLabels(self.column_name)
self.table_view = self.ui.tableView
self.table_view_2 = self.ui.tableView_2
self.table_view.setSelectionMode(QAbstractItemView.SingleSelection) # 选中一个单元格
self.table_view.setSelectionBehavior(QAbstractItemView.SelectItems) # 单元格选中模式
self.table_view.doubleClicked.connect(self.get_table_item)
self.table_view.clicked.connect(self.get_cell_tip)
self.table_view.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch) # 使表宽度自适应
self.table_view_2.setSelectionMode(QAbstractItemView.SingleSelection) # 选中一个单元格
self.table_view_2.setSelectionBehavior(QAbstractItemView.SelectItems) # 单元格选中模式
self.table_view_2.doubleClicked.connect(self.get_table_item)
self.table_view_2.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch) # 使表宽度自适应
for i in range(self.all_job_datas[0]):
for j in range(4):
job_info = QStandardItem(str(self.all_job_datas[1][i][j]))
self.model.setItem(i, j, job_info)
job_info.setTextAlignment(Qt.AlignHCenter | Qt.AlignVCenter)
for i in range(self.all_job_datas2[0]):
for j in range(4):
job_info = QStandardItem(str(self.all_job_datas2[1][i][j]))
self.model2.setItem(i, j, job_info)
job_info.setTextAlignment(Qt.AlignHCenter | Qt.AlignVCenter)
self.table_view.setEditTriggers(QAbstractItemView.NoEditTriggers) # 表格不可编辑
self.table_view_2.setEditTriggers(QAbstractItemView.NoEditTriggers) # 表格不可编辑
self.table_view.setModel(self.model)
self.table_view_2.setModel(self.model2)
print("getdata结束")
return
def get_cell_tip(self):
""" 设置单元格提示信息 """
contents = self.table_view.currentIndex().data()
self.row = self.table_view.currentIndex().row() # 获取所在行数
print("选中行数为", self.row)
print("all_job_datas", self.all_job_datas)
self.jobOfferid = self.all_job_datas[1][self.row][4]
print("选中工作id为", self.jobOfferid)
QToolTip.showText(QCursor.pos(), contents)
def get_table_item(self, index):
"""获取表格中的数据"""
col = index.column()
row = index.row()
tmp = self.all_job_datas[1][row]
print(tmp)
m_detail = {'jobName':tmp[0], 'jobCompany':tmp[1], 'jobSalary':tmp[2], 'jobPlace':tmp[3], 'jobDescribe':tmp[5], 'jobEducation':tmp[6], 'jobExperience':tmp[7]}
self.show_detail = detail.pyqdetail(m_detail)
self.show_detail.show()
def getchartdetail(self):
sql = "SELECT jobEducation, COUNT(*) AS eduNum FROM jobOfferDetail GROUP BY jobEducation;"
jdata = [{'request': 'getJobDetailSQL', 'sql': sql}]
self.client.send(json.dumps(jdata).encode())
jres = json.loads(m_recv(self.client))
print("饼图1是", jres)
print("jres[0]['num']", jres[0]['num'])
num = jres[0]['num']
data = []
for i in range(0, num):
index = []
index.append(jres[i + 1]['jobEducation'])
index.append(jres[i + 1]['eduNum'])
data.append(index)
print("data", data)
sql = "SELECT jobPlace, COUNT(*) AS placeNum FROM jobOfferDetail GROUP BY jobPlace;"
jdata = [{'request': 'getJobDetailSQL', 'sql': sql}]
self.client.send(json.dumps(jdata).encode())
jres = json.loads(m_recv(self.client))
print("饼图2是", jres)
print("jres[0]['num']", jres[0]['num'])
num2 = jres[0]['num']
data2 = []
for i in range(0, num2):
index = []
index.append(jres[i + 1]['jobPlace'])
index.append(jres[i + 1]['placeNum'])
data2.append(index)
print("data2", data2)
self.color = ["#ffc656", "#2fc7e8", "#3ed7b7", "#0099CC", "#99CC66", "#CCCCCC", "#FF6666", "#333399", "#FF0033",
"#FFFF00", "#FFCCCC", "#003399", "#99CC00", "#009999", "#990066", "#666699"]
self.pieseries1 = QPieSeries()
self.pieseries1.hovered.connect(self.do_pieHover)
for x in data:
self.pieseries1.append(x[0], x[1])
print(x[0], x[1])
self.slice = QPieSlice()
print(1)
for i in range(0, num):
self.slice = self.pieseries1.slices()[i]
self.slice.setLabelVisible(False)
# slice.setPen(QPen(Qt.white, 10))
self.slice.setBrush(QtGui.QColor(self.color[i]))
self.pieseries2 = QPieSeries()
self.pieseries2.hovered.connect(self.do_pieHover)
for x in data2:
self.pieseries2.append(x[0], x[1])
print(x[0], x[1])
self.slice2 = QPieSlice()
print(1)
for i in range(0, num2):
self.slice2 = self.pieseries2.slices()[i]
self.slice2.setLabelVisible(False)
# slice.setPen(QPen(Qt.white, 10))
self.slice2.setBrush(QtGui.QColor(self.color[i]))
self.chart1 = QChart() # 定义QChart
self.chart2 = QChart()
self.chart1.legend().hide()
self.chart2.legend().hide()
self.chart1.createDefaultAxes()
self.chart2.createDefaultAxes()
self.chart1.addSeries(self.pieseries1)
self.chart2.addSeries(self.pieseries2)
self.chart1.setTitle("教育分布")
self.chart2.setTitle("地区分布")
self.chart1.legend().setVisible(True)
self.chart2.legend().setVisible(True)
self.chart1.legend().setAlignment(Qt.AlignBottom)
self.chart2.legend().setAlignment(Qt.AlignBottom)
self.chartview = self.ui.chartview
self.chartview_2 = self.ui.chartview_2
self.chart1.setAnimationOptions(QChart.SeriesAnimations)
self.chart2.setAnimationOptions(QChart.SeriesAnimations)
self.chartview.setRenderHint(QPainter.Antialiasing)
self.chartview_2.setRenderHint(QPainter.Antialiasing)
self.chartview.setChart(self.chart1)
self.chartview.show()
self.chartview_2.setChart(self.chart2)
self.chartview_2.show()
def do_pieHover(self, sli, states):
if states:
sli.setExploded(True)
sli.setLabelVisible(True)
else:
sli.setExploded(False)
sli.setLabelVisible(False)
def sendresume(self):
print("投递")
sql = "SELECT * FROM resume WHERE id=\'{}\' AND jobOfferid={};".format(self.userid, self.jobOfferid)
print('sql', sql)
jdata = [{'request': 'getJobDetailSQL', 'sql': sql}]
self.client.send(json.dumps(jdata).encode())
jres = json.loads(m_recv(self.client))
print("jres[0]['num']", jres[0]['num'])
num = jres[0]['num']
if num == 0:
sql2 = "INSERT INTO resume VALUES ({},{});".format(self.userid, self.jobOfferid)
print("sql2", sql2)
jdata = [{'request': 'getJobDetailSQL', 'sql': sql2}]
self.client.send(json.dumps(jdata).encode())
jres = json.loads(m_recv(self.client))
print("插入返回结果", jres[0]['num'])
message = "投递简历至{}成功!".format(self.all_job_datas[1][self.row][0])
self.messagelist.append(message)
self.slm.setStringList(self.messagelist)
try:
_thread.start_new_thread(self.getdata, ())
message = "刷新成功!"
self.messagelist.append(message)
self.slm.setStringList(self.messagelist)
except:
print("刷新失败")
def addjianli(self):
self.jianliWindow = jianli.addjianli(self.client, self.userid, self.identity)
self.jianliWindow.show()
self.jianliWindow.addsuccess.connect(self.addmessage) # 简历上传成功后显示信息
def addmessage(self, message):
self.jianliWindow.close()
self.messagelist.append(message)
self.slm.setStringList(self.messagelist)
def mousePressEvent(self, event):
if event.button() == QtCore.Qt.LeftButton and self.isMaximized() == False:
self.m_flag = True
self.m_Position = event.globalPos() - self.pos()
event.accept()
self.setCursor(QtGui.QCursor(QtCore.Qt.OpenHandCursor))
def mouseMoveEvent(self, mouse_event):
if QtCore.Qt.LeftButton and self.m_flag:
self.move(mouse_event.globalPos() - self.m_Position)
mouse_event.accept()
def mouseReleaseEvent(self, mouse_event):
self.m_flag = False
self.setCursor(QtGui.QCursor(QtCore.Qt.ArrowCursor))
def zhuxiao(self):
res = QMessageBox.question(self, "确认注销账号", "账号注销数据无法恢复!", QMessageBox.Yes | QMessageBox.Cancel)
if res == QMessageBox.Yes:
sql = "DELETE FROM {} WHERE id=\'{}\';".format(self.identity, self.userid)
print("删除账号", sql)
jdata = [{'request': 'getAccDetailSQL', 'sql': sql}]
self.client.send(json.dumps(jdata).encode())
jres = json.loads(m_recv(self.client))
if jres[0]['num'] == 1:
QMessageBox.about(self, '注销账号', '成功!')
self.close()
else:
QMessageBox.critical(self, '注销账号失败', '可能存在网络问题')
else:
return
if __name__ == '__main__':
app = QApplication(sys.argv)
win = UserWindow()
sys.exit(app.exec_())
# addjianli.py 填写上传简历代码
import json
import sys
import _thread
from PyQt5.QtWidgets import QMainWindow, QApplication, QMessageBox
from TCPmodule import m_recv
from jianli import * # 图形界面代码
from PyQt5 import QtCore
import socket
class addjianli(QMainWindow):
addsuccess = QtCore.pyqtSignal(str) # 上传完成信号
def __init__(self, client, userid, identity):
super().__init__()
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
self.userid = userid
self.identity = identity
self.mode = False # mode为false说明第一次上传简历 ,为true说明时修改简历
print("启动user窗口")
# 隐藏窗口
self.setWindowFlag(QtCore.Qt.FramelessWindowHint)
self.setAttribute(QtCore.Qt.WA_TranslucentBackground)
self.show()
self.client = client
self.ui.pushButton_3.clicked.connect(self.addresume)
try:
_thread.start_new_thread(self.getresumm, ())
except:
print('获取简历失败')
def getresumm(self):
sql = "SELECT * FROM personalResume WHERE id=\'{}\';".format(self.userid)
jdata = [{'request': 'getJobDetailSQL', 'sql': sql}]
self.client.send(json.dumps(jdata).encode())
jres = json.loads(m_recv(self.client))
print("jres[0]['num']", jres[0]['num'])
num = jres[0]['num']
if num == 0:
self.mode = False
print("mode是", self.mode)
else:
self.mode = True
print("mode是", self.mode)
datas = jres[1]
print("已有简历", datas)
self.ui.lineEdit.setText(datas['name'])
self.ui.lineEdit_2.setText(str(datas['age']))
self.ui.lineEdit_3.setText(datas['education'])
self.ui.lineEdit_4.setText(datas['major'])
self.ui.lineEdit_5.setText(datas['school'])
print(datas['experience'])
self.ui.textEdit.append(datas['experience'])
print("a")
if datas['sex'] == 'm':
print("b")
self.ui.radioButton.setChecked(True)
print("c")
else:
print("d")
self.ui.radioButton_2.setChecked(True)
print("e")
def addresume(self):
name = self.ui.lineEdit.text()
age = int(self.ui.lineEdit_2.text())
print('age', age)
education = self.ui.lineEdit_3.text()
print(1)
major = self.ui.lineEdit_4.text()
print(2)
school = self.ui.lineEdit_5.text()
print(3)
experience = self.ui.textEdit.toPlainText()
print(4)
if self.ui.radioButton.isChecked():
print(5)
sex = 'm'
elif self.ui.radioButton_2.isChecked():
print(6)
sex = 'f'
else:
print(7)
sex = ''
print("输入信息为{},{},{},{},{},{},{},{}".format(name, age, education, major, school, experience, sex, self.userid))
if name == '' or age == '' or education == '' or major == '' or school == '' or experience == '' or sex == '':
print('waring')
QMessageBox.warning(self, 'ERROR', '信息不完整')
else:
print('send')
if self.mode: # 更新简历
sql = "UPDATE personalResume SET name=\'{}\', age={}, education=\'{}\', major=\'{}\', school=\'{}\', experience=\'{}\', sex=\'{}\' WHERE id=\'{}\';".format(name, age, education, major, school, experience, sex, self.userid)
else:
sql = "INSERT INTO personalResume VALUES ( '{}\',\'{}\',\'{}\',{},\'{}\',\'{}\',\'{}\',\'{}\');".format(self.userid, name, sex, age, education, major, school, experience)
jdata = [{'request': 'getJobDetailSQL', 'sql': sql}]
self.client.send(json.dumps(jdata).encode())
jres = json.loads(m_recv(self.client))
print('上传简历', jres[0]['num'])
self.addsuccess.emit("上传简历成功!")
def mousePressEvent(self, event):
if event.button() == QtCore.Qt.LeftButton and self.isMaximized() == False:
self.m_flag = True
self.m_Position = event.globalPos() - self.pos()
event.accept()
self.setCursor(QtGui.QCursor(QtCore.Qt.OpenHandCursor))
def mouseMoveEvent(self, mouse_event):
if QtCore.Qt.LeftButton and self.m_flag:
self.move(mouse_event.globalPos() - self.m_Position)
mouse_event.accept()
def mouseReleaseEvent(self, mouse_event):
self.m_flag = False
self.setCursor(QtGui.QCursor(QtCore.Qt.ArrowCursor))
if __name__ == '__main__':
app = QApplication(sys.argv)
win = addjianli()
sys.exit(app.exec_())
# pyqdetail.py 查看招聘信息详情
import json
import sys
import _thread
from PyQt5.QtWidgets import QMainWindow, QApplication, QMessageBox
from PyQt5.QtGui import QStandardItemModel, QStandardItem, QCursor, QFont, QPainter
from TCPmodule import m_recv
from detail import * # 显示招聘信息详情的小窗口图形界面代码
from PyQt5 import QtCore
class pyqdetail(QMainWindow):
def __init__(self, detail):
super().__init__()
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
self.ui.lineEdit.setText(detail['jobName'])
self.ui.lineEdit_2.setText(detail['jobCompany'])
self.ui.lineEdit_3.setText(detail['jobSalary'])
self.ui.lineEdit_4.setText(detail['jobPlace'])
self.ui.lineEdit_5.setText(detail['jobEducation'])
self.ui.lineEdit_6.setText(detail['jobExperience'])
self.ui.textEdit.setText(detail['jobDescribe'])
self.setWindowFlag(QtCore.Qt.FramelessWindowHint)
self.setAttribute(QtCore.Qt.WA_TranslucentBackground)
self.show()
def mousePressEvent(self, event):
if event.button() == QtCore.Qt.LeftButton and self.isMaximized() == False:
self.m_flag = True
self.m_Position = event.globalPos() - self.pos()
event.accept()
self.setCursor(QtGui.QCursor(QtCore.Qt.OpenHandCursor))
def mouseMoveEvent(self, mouse_event):
if QtCore.Qt.LeftButton and self.m_flag:
self.move(mouse_event.globalPos() - self.m_Position)
mouse_event.accept()
def mouseReleaseEvent(self, mouse_event):
self.m_flag = False
self.setCursor(QtGui.QCursor(QtCore.Qt.ArrowCursor))