pyqt5通过下拉框触发条件设置按钮是否可用

pyqt5通过下拉框触发条件设置按钮是否可用

*效果为下拉框中为考核人员时,下面两个按钮不可用
为管理人员时,恢复为全部都可用
*

pyqt5通过下拉框触发条件设置按钮是否可用_第1张图片
pyqt5通过下拉框触发条件设置按钮是否可用_第2张图片
代码实现:

首先在class中先声明,大概可以理解为设置个类中的全局变量吧

class ManageWindow(QMainWindow):
    seqRecordEnd = pyqtSignal()
    trainFinished = pyqtSignal()
    btnHistory = None
    btnMark = None
    btnTrain = None

    def __init__(self):
    ...................

类中初始化的方法中还是一样的写:
下拉框初始化

  def setRightUI(self, right):
        #   训练,评判,测试, 历史记录
        vbox = QVBoxLayout()
        vbox.setAlignment(Qt.AlignVCenter)
        self.people_choose = QComboBox()
        self.people_choose.setFont(QFont('微软雅黑', 15))
        self.people_choose.setStyleSheet("QComboBox{background:white}")
        self.people_choose.setMinimumSize(175, 30)
        self.people_choose.addItem('未选择使用人员')
        self.people_choose.addItems(["考核人员", "管理人员"])
        self.people_choose.currentIndexChanged.connect(self.changePeople)
        vbox.addWidget(self.people_choose)

按钮初始化

 def setRightUI(self, right):
        vbox = QVBoxLayout()
        vbox.setAlignment(Qt.AlignVCenter)
 		self.btnHistory = QPushButton('历史记录')
        self.btnHistory.setMinimumHeight(170)
        self.btnHistory.setFont(QFont('微软雅黑', 25))
        self.btnHistory.clicked.connect(self.onBtnHistory)
        self.btnHistory.setStyleSheet(
            '''QPushButton{background:#54FF9F;border-radius:5px;}QPushButton:hover{background:LawnGreen;}''')
        vbox.addWidget(self.btnHistory)

然后再写下拉框的选择触发事件的函数

  def changePeople(self):
        people = self.sender().currentText()
        if people == "未选择使用人员":
            self.people = None

        elif people == "考核人员":
            self.people = people
            QMessageBox.information(self, '注意', '你仅有考核评判权限,请按照要求进行考核 \n(考核评判:选中参与考核的人员>>>选择考核课程>>>点击考核评判)',
                                    QMessageBox.Ok)
            self.btnTrain.setEnabled(False)
            self.btnMark.setEnabled(False)
        elif people == "管理人员":
            self.people = people
            QMessageBox.information(self, '提示', ' 你拥有软件所有权限,按照需求使用各种功能 \n 1.考核评判:选中参与考核的人员>>>选择考核课程>>>点击考核评判 \n '
 '2.训练模型:点击语音标注进行纠错>>>返回主界面点击机器学习 \n 3.查看历史记录', QMessageBox.Ok)
            self.btnHistory.setEnabled(True)
            self.btnTrain.setEnabled(True)
            self.btnMark.setEnabled(True)
        else:
            self.people = people

你可能感兴趣的:(qt,开发语言,python,深度学习,pyqt)