Python實現(xiàn)功能完整的個人員管理程序
一簡介
本軟件作用于人員管理,
1創(chuàng)建一個崗位管理界面,點擊崗位管理之后,設置好崗位名稱,拖動鼠標畫框,完成崗位創(chuàng)建,之后里面可以放置人員。
可以將之前建立的崗位刪除,同時里面的人員也會刪除。
2新增人員,包括(身份信息用不同顏色表示,崗位信息代表處于何種崗位)
3人員可以拖動到任意崗位,崗位也可以拖動到任意位置
4保存和讀取功能
如圖所示
管理崗位

新增人員

人員狀態(tài)管理

二 代碼部分
分兩次寫的,借鑒很多,語法較亂,基本都有標注
pydesigner生成的四個界面內(nèi),然后重寫按鍵類使其可以拖動
1.主代碼boy_main.py
# -*- coding:utf-8 -*-
import ast # 文本轉(zhuǎn)字典
import sys
from PyQt5.QtCore import Qt, QRect
from PyQt5.QtGui import QPainter, QPen
from PyQt5.QtWidgets import QApplication, QMainWindow, QVBoxLayout, QWidget # 布局的框體
from boy_ui_main import Ui_MainWindow # 導入第一個py,主窗口
from boy_ui_new import Ui_newboy # 導入第二個py,新增成員窗口
from manager_ui_gangwei import Ui_widget # 導入第三個py,崗位管理窗口
import button # 導入的第四個py,按鍵重寫,第四個窗口導入了這里
save_data_anjian = dict() # 需要保存的按鍵字典
save_data_layout = dict() # 需要保存的框體字典
# 主窗口
class MainWindow(QMainWindow, Ui_MainWindow): # 多重繼承QMainWindow和Ui_MainWindow
def __init__(self):
super(MainWindow, self).__init__() # 先調(diào)用父類QMainWindow的初始化方法
self.setupUi(self) # 再調(diào)用setupUi方法
self.newboyshow = newwindow_anjian() # 實例化新建成員窗口
self.newgangweishow = newwindow_gangwei() # 實例化管理崗位窗口
self.add_boy.triggered.connect(self.newshow) # 為增加人員按鈕添加打開新窗口的動作
self.saveaction.triggered.connect(self.savenow) # 為保存增加保存savedata的動作
self.openaction.triggered.connect(self.opennow) # 為打開增加打開savedata的動作
self.add_gangwei_huakuang.triggered.connect(self.manager_gangwei) # 為增加崗位增加管理崗位功能,可以畫了
self.setAcceptDrops(True) # 拖動按鍵用——人員
self.sig_huakuang = 0 # 畫框用,=0時不讓畫框
self.x0 = 0 # 畫框用
self.y0 = 0 # 畫框用
self.x1 = 0 # 畫框用
self.y1 = 0 # 畫框用
self.flag = False # # 畫框用,鼠標未按下
self.move = False # # 畫框用,存在移動
self.gangwei = 0 # 初始崗位設置
self.x_move = None#拖動崗位框體后的坐標
self.y_move = None#拖動崗位框體后的坐標
# 管理崗位頁面,在新崗位頁面設置完了崗位,點了確定,才能畫框
def manager_gangwei(self):
self.newgangweishow.show()
# 畫框用第一步---單擊鼠標觸發(fā)事件,初始左上角的點
def mousePressEvent(self, event):
# barHeight = self.bar.height()
self.x0 = event.pos().x()
self.y0 = event.pos().y()
self.flag = True
# 畫框用第二步--鼠標移動事件
def mouseMoveEvent(self, event):
# barHeight = self.bar.height()
self.move = True
if self.flag:
self.x1 = event.pos().x()
self.y1 = event.pos().y()
self.update()
# 畫框用第三步,只要拖動就會一直繪制事件
def paintEvent(self, event):
super().paintEvent(event)
painter = QPainter(self) # 拖動時候的臨時框
painter.setPen(QPen(Qt.green, 2, Qt.SolidLine))#畫筆設置
# 打開之后,再畫或者最大化以后才能出現(xiàn),不知道為啥,對刷新不太了解
for rec in save_data_layout.values():#遍歷所有的框體,一直畫
painter.drawRect(QRect(rec[0], rec[1], rec[2], rec[3]))
if self.flag and self.move and self.sig_huakuang == 1: # 只有當鼠標按下并且移動狀態(tài)
rect = QRect(self.x0, self.y0, abs(self.x1 - self.x0), abs(self.y1 - self.y0))
painter.setPen(QPen(Qt.red, 2, Qt.SolidLine))
painter.drawRect(rect)
# 畫框用第四步--鼠標釋放事件,清零,并且不再繪制,self.sig_huakuang=0
def mouseReleaseEvent(self, event):
self.flag = False # 不再按下
self.move = False # 不再移動
self.x_move = event.pos().x() # 拖動崗位類的最終位置
self.y_move = event.pos().y() # 拖動崗位類的最終位置
# 釋放鼠標時儲存
if self.x1 and self.y1 and self.sig_huakuang == 1: # 不移動按了沒用,也就是有寬度和高度時
print("鼠標放下")
gangwei = self.gangwei # 框體的臨時名稱
rec = self.x0, self.y0, abs(self.x1 - self.x0), abs(self.y1 - self.y0) # 位置和大小
save_data_layout[gangwei] = rec # 保存這個框體的數(shù)據(jù)
# 同時建立一個布局和一個按鈕顯示布局信息
self.draw_rect(gangwei, rec) # 執(zhí)行創(chuàng)建崗位命令
self.sig_huakuang = 0 # 使其不能再畫
# print("崗位狀態(tài)", button.Y.mouseMoveEvent(event),self.x1, self.y1,self.sig_huakuang)
# 如果有崗位按鍵,并且現(xiàn)在不讓畫框,并且按了左鍵拖動了:那么移動崗位和布局控件,修改存儲的數(shù)據(jù),button.Y=目前的崗位框
if button.Y and self.sig_huakuang == 0 and button.U:
ganwgei = button.Y.text() # 從按鍵名字提取崗位信息
self.__dict__["pushButton" + ganwgei].move(self.x_move, self.y_move - 55) # 55,修改個位置
self.__dict__["gridLayoutWidget" + ganwgei].move(self.x_move, self.y_move - 30)
# 更改數(shù)據(jù)信息
# print(type(save_data_layout[ganwgei])) <class 'tuple'> 單個值沒法修改
xx = save_data_layout[ganwgei][2] # 只能更改字典值
yy = save_data_layout[ganwgei][3] # 只能更改字典值
save_data_layout[ganwgei] = (self.x_move, self.y_move, xx, yy) # 保存新的崗位信息
button.U = 0 # 設置完了就不能動了,除非再點按鈕
self.x0, self.y0, self.x1, self.y1 = (0, 0, 0, 0) # 鼠標重新設置
# 畫框體、按鍵、和布局.打開文件和創(chuàng)建時候用。同時增加人員崗位可選項
def draw_rect(self, gangwei, rec):
# print(rec[0], rec[1], rec[2], rec[3])#左上點和 寬。高self.centralwidget
self.__dict__["gridLayoutWidget" + gangwei] = QWidget(self.centralwidget) # 布局要放到個容器里
self.__dict__["gridLayoutWidget" + gangwei].setGeometry(QRect(rec[0], rec[1], rec[2], rec[3])) # 容器大小
# self.__dict__["gridLayoutWidget" + gangwei].setObjectName(gangwei)#控件名字
self.__dict__["layout" + gangwei] = QVBoxLayout() # 做個垂直布局
self.__dict__["layout" + gangwei].setContentsMargins(0, 0, 0, 0) # 上下左右不留縫隙
self.__dict__["gridLayoutWidget" + gangwei].setLayout(self.__dict__["layout" + gangwei]) # 容器使用這個垂直布局
self.__dict__["gridLayoutWidget" + gangwei].show() # 容器要顯示,少了這個麻煩了
# 按鈕顯示 同寬,往上50像素,高30像素
rectanjian = QRect(rec[0], rec[1] - 55, rec[2], 30)
self.__dict__["pushButton" + gangwei] = button.Buttongangwei(self.centralwidget, gangwei, rectanjian)
self.__dict__["pushButton" + gangwei].show()#按鍵顯示
# 增加了崗位,人員可以選
self.newboyshow.comboBox.addItems([gangwei])
# 增加了可以刪除的崗位
self.newgangweishow.comboBox.addItems([gangwei])
def newshow(self): # 打開新窗口的動作
self.newboyshow.show()
def savenow(self): # 保存的動作
file1 = open("boysavedata_anjian.txt", "w") # 保存按鍵
file1.write(str(save_data_anjian))
print("寫入成功按鍵", save_data_anjian)
file1.close()
file = open("boysavedata_layout.txt", "w") # 保存崗位框
file.write(str(save_data_layout))
print("寫入成功崗位", save_data_layout)
file.close()
def opennow(self): # 打開之前保存的數(shù)據(jù)
global save_data_anjian, save_data_layout
# 打開按鍵信息
with open("boysavedata_anjian.txt", "r") as file:
save_data_anjian = ast.literal_eval(file.read()) # 將讀取的字符串轉(zhuǎn)為字典
# print("按鍵信息", save_data_anjian)
# 打開崗位信息
with open("boysavedata_layout.txt", "r") as file1:
# print(file1.read())多加這一句話,捯飭半天,read以后就沒了,再讀就是空的,所以底下會報錯
save_data_layout = ast.literal_eval(file1.read()) # 將讀取的字符串轉(zhuǎn)為字典
#print("崗位信息", save_data_layout)
for gangwei, rec in save_data_layout.items(): # 提取名字和方塊
self.draw_rect(gangwei, rec) # 執(zhí)行創(chuàng)建崗位命令
for name, shuxing in save_data_anjian.items(): # 提取名字和屬性,屬性0為身份,屬性1為崗位
self.setpushbutton(name, shuxing) # 按鍵加入到崗位
self.showMaximized() # 窗口最大化后才顯示,不知道為啥
def setpushbutton(self, name, shuxing): # 通過名字和屬性建立按鍵并歸位
# 點擊確定后新增按鍵,實例化按鍵,shuxing[0]=身份,shuxing[1]=崗位
buttonnew = button.Button(name, ui, shuxing[0], shuxing[1]) # 點擊確定后新增按鍵,實例化按鍵,shuxing[0]=身份
buttonnew.colorful() # 按鍵根據(jù)身份增加顏色,在button里新增的函數(shù)
buttonnew.move(100, 100)#如果最開始沒崗位,就移動到這個位置,可以沒有
buttonnew.show() # 按鍵顯示出來
for gangwei in save_data_layout.keys():
if gangwei == shuxing[1]:
self.__dict__["layout" + gangwei].addWidget(buttonnew) # 放置到新崗位
def dragEnterEvent(self, e): # 拖動用
e.accept()
# 定義了按鈕按下后和釋放后的行為,
# 獲得鼠標移動的位置,然后把人員按鍵放到這個地方,修改自身崗位并且保存下來
def dropEvent(self, e):
position = e.pos()
for gangwei, rec in save_data_layout.items():
if position in QRect(rec[0], rec[1], rec[2], rec[3]):
button.x.gangwei = gangwei # 設置新崗位
save_data_anjian[button.x.name][1] = button.x.gangwei # 保存新崗位
#print(f"新崗位為{save_data_anjian[button.x.name]}", gangwei)
self.__dict__["layout" + gangwei].addWidget(button.x) # button.X為拖動按鍵的本身,放置到新崗位
# 指定放下的動作類型為moveAction
e.setDropAction(Qt.MoveAction)
e.accept()
# 增加人員的新窗口
class newwindow_anjian(QWidget, Ui_newboy):
def __init__(self):
super(newwindow_anjian, self).__init__()
self.setupUi(self)
def addok(self): # 增加完人員,選擇確定時候
# global name,shenfen
name = self.lineEdit.text()
shenfen = self.comboBox_2.currentText()
zhiwu = self.comboBox.currentText()
shuxing = [shenfen, zhiwu]
save_data_anjian[name] = shuxing
ui.setpushbutton(name, shuxing) # 輸入名字和身份,建立按鍵
# 管理崗位的新窗口
class newwindow_gangwei(QWidget, Ui_widget):
def __init__(self):
super(newwindow_gangwei, self).__init__()
self.setupUi(self)
def del_gangwei_ok(self):#刪除崗位的按鍵動作
tex = self.comboBox.currentText() # 要刪除的崗位
# 讓這個三個不顯示
ui.__dict__["gridLayoutWidget" + tex].deleteLater()
ui.__dict__["layout" + tex].deleteLater()
ui.__dict__["pushButton" + tex].deleteLater()
# 讓這三個不存在
del ui.__dict__["gridLayoutWidget" + tex]
del ui.__dict__["layout" + tex]
del ui.__dict__["pushButton" + tex]
del save_data_layout[tex]
self.close() # 關閉本身窗口
def add_gangwei_ok(self):#增加崗位的按鍵
ui.sig_huakuang = 1#增加崗位后才能畫崗位
ui.gangwei = self.lineEdit.text()#增加的崗位的名字
self.close() # 關閉
if __name__ == '__main__':
app = QApplication(sys.argv)
ui = MainWindow()
ui.show()
sys.exit(app.exec_())2.button.py
import sys
from PyQt5.QtCore import Qt, QMimeData, QRect
from PyQt5.QtGui import QDrag, QIcon
from PyQt5.QtWidgets import QPushButton, QWidget, QApplication
from rightclickfrom import Ui_Rrightclickform#導入人員按鍵右鍵的窗口
x=0#按鍵自己本身
Y=0#崗位按鍵本身
U=0#控制崗位類拖動
#人員類按鍵
# 從 QPushButton 繼承一個 Button 類
class Button(QPushButton):
def __init__(self, name, parent,shenfen=0,gangwei=0):
super().__init__(name, parent)
self.name=name
self.shenfen=shenfen
self.gangwei=gangwei
self.newform = rightclict_window()#右鍵的畫面
def colorful(self):#增加按鍵顏色
if self.shenfen=="機器人":
self.setStyleSheet('''QPushButton{background:#76becc;border-radius:5px;}QPushButton:hover{background:yellow;}''')
elif self.shenfen=="軍火商":
self.setStyleSheet('''QPushButton{background:"#f7acbc";border-radius:5px;}QPushButton:hover{background:yellow;}''')
elif self.shenfen == "特種兵":
self.setStyleSheet('''QPushButton{background:"#f58220";border-radius:5px;}QPushButton:hover{background:yellow;}''')
elif self.shenfen == "電動車":
self.setStyleSheet('''QPushButton{background:"#4e72b8";border-radius:5px;}QPushButton:hover{background:yellow;}''')
else:pass
# 重構mouseMoveEvent方法
def mouseMoveEvent(self, e):
global x
x=self#取得按鍵本身
# 劫持按鈕的左鍵事件,右鍵的操作還是默認行為
if e.buttons() != Qt.LeftButton:
return
# 創(chuàng)建一個 QDrag 對象,用來傳輸MIME-based數(shù)據(jù)
mimeData = QMimeData()#這幾句沒看懂,照抄的
drag = QDrag(self)
drag.setMimeData(mimeData)
drag.setHotSpot(e.pos() - self.rect().topLeft())
# 拖放事件開始時,用到的處理函數(shù)式 start()
dropAction = drag.exec_(Qt.MoveAction)
# 重構mousePressEvent方法
# 右鍵點擊按鈕,彈出新窗口
def mousePressEvent(self, e):
global x
x=self
# 注意,我們在父級上也調(diào)用 了 mousePressEvent() 方法,
# 不然的話,我們是看不到按鈕按下的效果 的
super().mousePressEvent(e)
if e.button() == Qt.RightButton:
self.newform.show()#右鍵彈出畫面
#self.deleteLater()#刪除按鍵
#人員類按鍵打開的窗口
class rightclict_window(QWidget,Ui_Rrightclickform):
def __init__(self):
super(rightclict_window, self).__init__()
self.setupUi(self)
def delputbutton(self):#刪除按鍵
global x
print("del")
x.deleteLater()#刪除本按鍵
def jieok(self):
jiezou_sha=self.comboBoxjiezou.currentText()#借走了啥
sha_biaojia=self.comboBoxbiaoji.currentText()#做了哪些標記
print(jiezou_sha,sha_biaojia)
if jiezou_sha=="無":#如果沒接,不多顯示
x.setText(x.name)#清除標記
else:x.setText(x.name+jiezou_sha)#否則顯示借閱
if sha_biaojia=="無":#如果沒標記,清楚標記
x.setIcon(QIcon())
elif sha_biaojia=="休假":
x.setIcon(QIcon("櫻桃.png"))
elif sha_biaojia=="出差":
x.setIcon(QApplication.style().standardIcon(13))#增加系統(tǒng)自帶的ICON類圖標
else:pass
#崗位類按鍵
class Buttongangwei(QPushButton):
def __init__(self,parent, name,rect=QRect(0,0,0,0),):
super().__init__(parent) # 先調(diào)用父類Qpushbytton的初始化方法
#self.rect=rect
self.name=name
self.setGeometry(rect)
self.setObjectName(f"{self.name}")
self.setText(f"{self.name}")
#self.new_window_ganwgei = Ui_rightclick_gangwei_window() # 實例化一個右鍵的畫面
def mouseMoveEvent(self, e):
global Y,U
Y=self#取得按鍵本身
# 劫持按鈕的左鍵事件,右鍵的操作還是默認行為
if e.buttons() != Qt.LeftButton: #如果鼠標點擊事件發(fā)生了,不是左鍵就結(jié)束,是左鍵就繼續(xù)往下
return
print("左鍵拖動事件事件")
U=1#左鍵拖動了
# 重構mousePressEvent方法
# 右鍵點擊按鈕,彈出畫面——————未開發(fā)
def mousePressEvent(self, e):
global Y
Y=self
# 注意,我們在父級上也調(diào)用 了 mousePressEvent() 方法,
# 不然的話,我們是看不到按鈕按下的效果 的
if e.button() == Qt.RightButton:
pass
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setAcceptDrops(True)
self.button = Buttongangwei(self,"mmap",QRect(100,100,100,100))
self.button.move(100,100)
self.button.show()
self.button4 = Button('Button1', self)
self.button4.move(159, 65)
#self.button.move(100, 65)
self.setWindowTitle('Click or Move')
self.setGeometry(300, 300, 280, 150)
def dragEnterEvent(self, e):
e.accept()
def delpushbotton(self):
pass
# 定義了按鈕按下后和釋放后的行為,
# 獲得鼠標移動的位置,然后把按鈕放到這個地方
def dropEvent(self, e):
position = e.pos()
print(self)
self.button.move(position)
# 指定放下的動作類型為moveAction
e.setDropAction(Qt.MoveAction)
e.accept()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
ex.show()
app.exec_()3.生成的主頁面ui的代碼,自動生成的打包用,不用看。boy_ui_main.py
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'boy_ui_main.ui'
#
# Created by: PyQt5 UI code generator 5.15.6
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again. Do not edit this file unless you know what you are doing.
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(797, 566)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 797, 23))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.toolBar = QtWidgets.QToolBar(MainWindow)
self.toolBar.setObjectName("toolBar")
MainWindow.addToolBar(QtCore.Qt.TopToolBarArea, self.toolBar)
self.add_boy = QtWidgets.QAction(MainWindow)
self.add_boy.setObjectName("add_boy")
self.openaction = QtWidgets.QAction(MainWindow)
self.openaction.setObjectName("openaction")
self.saveaction = QtWidgets.QAction(MainWindow)
self.saveaction.setObjectName("saveaction")
self.add_gangwei_huakuang = QtWidgets.QAction(MainWindow)
self.add_gangwei_huakuang.setObjectName("add_gangwei_huakuang")
self.toolBar.addAction(self.openaction)
self.toolBar.addAction(self.saveaction)
self.toolBar.addAction(self.add_boy)
self.toolBar.addAction(self.add_gangwei_huakuang)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "崗位管理1.0—QQ294794719"))
self.toolBar.setWindowTitle(_translate("MainWindow", "toolBar"))
self.add_boy.setText(_translate("MainWindow", "增加人員"))
self.add_boy.setToolTip(_translate("MainWindow", "增加成員"))
self.openaction.setText(_translate("MainWindow", "打開"))
self.openaction.setToolTip(_translate("MainWindow", "打開保存的文件"))
self.saveaction.setText(_translate("MainWindow", "保存"))
self.saveaction.setToolTip(_translate("MainWindow", "保存數(shù)據(jù)"))
self.add_gangwei_huakuang.setText(_translate("MainWindow", "崗位管理"))
self.add_gangwei_huakuang.setToolTip(_translate("MainWindow", "崗位管理"))4.生成增加成員的ui的代碼。boy_ui_new.py
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'boy_ui_new.ui'
#
# Created by: PyQt5 UI code generator 5.15.6
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again. Do not edit this file unless you know what you are doing.
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_newboy(object):
def setupUi(self, newboy):
newboy.setObjectName("newboy")
newboy.resize(371, 137)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(newboy.sizePolicy().hasHeightForWidth())
newboy.setSizePolicy(sizePolicy)
self.layoutWidget = QtWidgets.QWidget(newboy)
self.layoutWidget.setGeometry(QtCore.QRect(10, 10, 351, 126))
self.layoutWidget.setObjectName("layoutWidget")
self.verticalLayout = QtWidgets.QVBoxLayout(self.layoutWidget)
self.verticalLayout.setContentsMargins(0, 0, 0, 0)
self.verticalLayout.setObjectName("verticalLayout")
self.horizontalLayout = QtWidgets.QHBoxLayout()
self.horizontalLayout.setObjectName("horizontalLayout")
self.label = QtWidgets.QLabel(self.layoutWidget)
self.label.setObjectName("label")
self.horizontalLayout.addWidget(self.label)
self.lineEdit = QtWidgets.QLineEdit(self.layoutWidget)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.lineEdit.sizePolicy().hasHeightForWidth())
self.lineEdit.setSizePolicy(sizePolicy)
self.lineEdit.setText("")
self.lineEdit.setObjectName("lineEdit")
self.horizontalLayout.addWidget(self.lineEdit)
self.label_2 = QtWidgets.QLabel(self.layoutWidget)
self.label_2.setObjectName("label_2")
self.horizontalLayout.addWidget(self.label_2)
self.comboBox_2 = QtWidgets.QComboBox(self.layoutWidget)
self.comboBox_2.setObjectName("comboBox_2")
self.comboBox_2.addItem("")
self.comboBox_2.addItem("")
self.comboBox_2.addItem("")
self.comboBox_2.addItem("")
self.horizontalLayout.addWidget(self.comboBox_2)
self.label_3 = QtWidgets.QLabel(self.layoutWidget)
self.label_3.setObjectName("label_3")
self.horizontalLayout.addWidget(self.label_3)
self.comboBox = QtWidgets.QComboBox(self.layoutWidget)
self.comboBox.setObjectName("comboBox")
self.horizontalLayout.addWidget(self.comboBox)
self.verticalLayout.addLayout(self.horizontalLayout)
spacerItem = QtWidgets.QSpacerItem(334, 65, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.verticalLayout.addItem(spacerItem)
self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
self.horizontalLayout_2.setObjectName("horizontalLayout_2")
self.pushButton = QtWidgets.QPushButton(self.layoutWidget)
self.pushButton.setObjectName("pushButton")
self.horizontalLayout_2.addWidget(self.pushButton)
self.pushButton_2 = QtWidgets.QPushButton(self.layoutWidget)
self.pushButton_2.setObjectName("pushButton_2")
self.horizontalLayout_2.addWidget(self.pushButton_2)
self.verticalLayout.addLayout(self.horizontalLayout_2)
self.retranslateUi(newboy)
self.pushButton.clicked.connect(newboy.addok) # type: ignore
self.pushButton_2.clicked.connect(newboy.close) # type: ignore
QtCore.QMetaObject.connectSlotsByName(newboy)
def retranslateUi(self, newboy):
_translate = QtCore.QCoreApplication.translate
newboy.setWindowTitle(_translate("newboy", "Form"))
self.label.setText(_translate("newboy", "姓名"))
self.label_2.setText(_translate("newboy", "身份"))
self.comboBox_2.setItemText(0, _translate("newboy", "機器人"))
self.comboBox_2.setItemText(1, _translate("newboy", "軍火商"))
self.comboBox_2.setItemText(2, _translate("newboy", "特種兵"))
self.comboBox_2.setItemText(3, _translate("newboy", "電動車"))
self.label_3.setText(_translate("newboy", "崗位"))
self.pushButton.setText(_translate("newboy", "確定"))
self.pushButton_2.setText(_translate("newboy", "取消"))5.生成管理成員的ui的代碼。rightclickfrom
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'rightclickfrom.ui'
#
# Created by: PyQt5 UI code generator 5.15.6
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again. Do not edit this file unless you know what you are doing.
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_Rrightclickform(object):
def setupUi(self, Rrightclickform):
Rrightclickform.setObjectName("Rrightclickform")
Rrightclickform.resize(361, 256)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(Rrightclickform.sizePolicy().hasHeightForWidth())
Rrightclickform.setSizePolicy(sizePolicy)
self.layoutWidget = QtWidgets.QWidget(Rrightclickform)
self.layoutWidget.setGeometry(QtCore.QRect(20, 10, 229, 176))
self.layoutWidget.setObjectName("layoutWidget")
self.verticalLayout = QtWidgets.QVBoxLayout(self.layoutWidget)
self.verticalLayout.setContentsMargins(0, 0, 0, 0)
self.verticalLayout.setObjectName("verticalLayout")
self.horizontalLayout = QtWidgets.QHBoxLayout()
self.horizontalLayout.setObjectName("horizontalLayout")
self.label = QtWidgets.QLabel(self.layoutWidget)
self.label.setObjectName("label")
self.horizontalLayout.addWidget(self.label)
self.comboBoxjiezou = QtWidgets.QComboBox(self.layoutWidget)
self.comboBoxjiezou.setObjectName("comboBoxjiezou")
self.comboBoxjiezou.addItem("")
self.comboBoxjiezou.addItem("")
self.comboBoxjiezou.addItem("")
self.comboBoxjiezou.addItem("")
self.comboBoxjiezou.addItem("")
self.horizontalLayout.addWidget(self.comboBoxjiezou)
self.label_2 = QtWidgets.QLabel(self.layoutWidget)
self.label_2.setObjectName("label_2")
self.horizontalLayout.addWidget(self.label_2)
self.comboBoxbiaoji = QtWidgets.QComboBox(self.layoutWidget)
self.comboBoxbiaoji.setObjectName("comboBoxbiaoji")
self.comboBoxbiaoji.addItem("")
self.comboBoxbiaoji.addItem("")
self.comboBoxbiaoji.addItem("")
self.comboBoxbiaoji.addItem("")
self.horizontalLayout.addWidget(self.comboBoxbiaoji)
self.verticalLayout.addLayout(self.horizontalLayout)
spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.verticalLayout.addItem(spacerItem)
self.pushButton = QtWidgets.QPushButton(self.layoutWidget)
self.pushButton.setObjectName("pushButton")
self.verticalLayout.addWidget(self.pushButton)
spacerItem1 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.verticalLayout.addItem(spacerItem1)
self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
self.horizontalLayout_2.setObjectName("horizontalLayout_2")
self.pushButton_2 = QtWidgets.QPushButton(self.layoutWidget)
self.pushButton_2.setObjectName("pushButton_2")
self.horizontalLayout_2.addWidget(self.pushButton_2)
self.pushButton_3 = QtWidgets.QPushButton(self.layoutWidget)
self.pushButton_3.setObjectName("pushButton_3")
self.horizontalLayout_2.addWidget(self.pushButton_3)
self.verticalLayout.addLayout(self.horizontalLayout_2)
self.retranslateUi(Rrightclickform)
self.pushButton.clicked.connect(Rrightclickform.delputbutton) # type: ignore
self.pushButton_2.clicked.connect(Rrightclickform.jieok) # type: ignore
self.pushButton_3.clicked.connect(Rrightclickform.close) # type: ignore
self.pushButton.clicked.connect(Rrightclickform.close) # type: ignore
self.pushButton_2.clicked.connect(Rrightclickform.close) # type: ignore
QtCore.QMetaObject.connectSlotsByName(Rrightclickform)
def retranslateUi(self, Rrightclickform):
_translate = QtCore.QCoreApplication.translate
Rrightclickform.setWindowTitle(_translate("Rrightclickform", "人員狀態(tài)"))
self.label.setText(_translate("Rrightclickform", "借走"))
self.comboBoxjiezou.setItemText(0, _translate("Rrightclickform", "無"))
self.comboBoxjiezou.setItemText(1, _translate("Rrightclickform", "自行車1"))
self.comboBoxjiezou.setItemText(2, _translate("Rrightclickform", "籃球"))
self.comboBoxjiezou.setItemText(3, _translate("Rrightclickform", "庫房鑰匙東"))
self.comboBoxjiezou.setItemText(4, _translate("Rrightclickform", "新建項目"))
self.label_2.setText(_translate("Rrightclickform", "標記"))
self.comboBoxbiaoji.setItemText(0, _translate("Rrightclickform", "休假"))
self.comboBoxbiaoji.setItemText(1, _translate("Rrightclickform", "輪休"))
self.comboBoxbiaoji.setItemText(2, _translate("Rrightclickform", "醫(yī)院"))
self.comboBoxbiaoji.setItemText(3, _translate("Rrightclickform", "出差"))
self.pushButton.setText(_translate("Rrightclickform", "刪除按鈕?。?))
self.pushButton_2.setText(_translate("Rrightclickform", "確定"))
self.pushButton_3.setText(_translate("Rrightclickform", "取消"))6.生成管理崗位的ui的代碼。
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'manager_ui_gangwei.ui'
#
# Created by: PyQt5 UI code generator 5.15.6
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again. Do not edit this file unless you know what you are doing.
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_widget(object):
def setupUi(self, widget):
widget.setObjectName("widget")
widget.resize(443, 174)
self.gridLayout = QtWidgets.QGridLayout(widget)
self.gridLayout.setObjectName("gridLayout")
self.verticalLayout = QtWidgets.QVBoxLayout()
self.verticalLayout.setObjectName("verticalLayout")
self.horizontalLayout = QtWidgets.QHBoxLayout()
self.horizontalLayout.setObjectName("horizontalLayout")
self.label = QtWidgets.QLabel(widget)
self.label.setObjectName("label")
self.horizontalLayout.addWidget(self.label)
self.lineEdit = QtWidgets.QLineEdit(widget)
self.lineEdit.setObjectName("lineEdit")
self.horizontalLayout.addWidget(self.lineEdit)
self.pushButton = QtWidgets.QPushButton(widget)
self.pushButton.setObjectName("pushButton")
self.horizontalLayout.addWidget(self.pushButton)
self.verticalLayout.addLayout(self.horizontalLayout)
spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.verticalLayout.addItem(spacerItem)
self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
self.horizontalLayout_2.setObjectName("horizontalLayout_2")
self.label_2 = QtWidgets.QLabel(widget)
self.label_2.setObjectName("label_2")
self.horizontalLayout_2.addWidget(self.label_2)
self.comboBox = QtWidgets.QComboBox(widget)
self.comboBox.setObjectName("comboBox")
self.horizontalLayout_2.addWidget(self.comboBox)
self.pushButton_2 = QtWidgets.QPushButton(widget)
self.pushButton_2.setObjectName("pushButton_2")
self.horizontalLayout_2.addWidget(self.pushButton_2)
self.horizontalLayout_2.setStretch(0, 1)
self.horizontalLayout_2.setStretch(1, 2)
self.horizontalLayout_2.setStretch(2, 1)
self.verticalLayout.addLayout(self.horizontalLayout_2)
self.gridLayout.addLayout(self.verticalLayout, 0, 0, 1, 1)
self.retranslateUi(widget)
self.pushButton.clicked.connect(widget.add_gangwei_ok) # type: ignore
self.pushButton_2.clicked.connect(widget.del_gangwei_ok) # type: ignore
QtCore.QMetaObject.connectSlotsByName(widget)
def retranslateUi(self, widget):
_translate = QtCore.QCoreApplication.translate
widget.setWindowTitle(_translate("widget", "崗位管理"))
self.label.setText(_translate("widget", "新增崗位"))
self.pushButton.setText(_translate("widget", "確定"))
self.label_2.setText(_translate("widget", "刪除崗位"))
self.pushButton_2.setText(_translate("widget", "確定"))到此這篇關于Python實現(xiàn)功能完整的個人員管理程序的文章就介紹到這了,更多相關Python人員管理內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Python后臺開發(fā)Django會話控制的實現(xiàn)
這篇文章主要介紹了Python后臺開發(fā)Django會話控制的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-04-04
一文教你如何用Python輕輕松松操作Excel,Word,CSV
數(shù)據(jù)處理是 Python 的一大應用場景,而 Excel 又是當前最流行的數(shù)據(jù)處理軟件。本文將為大家詳細介紹一下如何用Python輕輕松松操作Excel、Word、CSV,需要的可以參考一下2022-02-02
Python實現(xiàn)使用request模塊下載圖片demo示例
這篇文章主要介紹了Python實現(xiàn)使用request模塊下載圖片,結(jié)合完整實例形式分析了Python基于requests模塊的流傳輸文件下載操作相關實現(xiàn)技巧,需要的朋友可以參考下2019-05-05
基于PyTorch實現(xiàn)EdgeCNN的實戰(zhàn)教程
本文我們將使用PyTorch來簡易實現(xiàn)一個EdgeCNN,不使用PyG庫,讓新手可以理解如何PyTorch來搭建一個簡易的圖網(wǎng)絡實例demo,感興趣的朋友跟隨小編一起看看吧2023-02-02

