class SwitchNode: def __init__(self, x, y, len, wd, num, port, btn, text): self.links = [False, False, False, False] self.window = SwWin(self) self.switch = Switch(num, 0, self.window) self.width = wd self.len = len self.setpos(x, y, port) self.btn = btn self.text = text self.btn.setGeometry(self.x, self.y, 80, 80) self.text.setGeometry(self.x + 5, self.y + 80, 100, 25) font = QFont() font.setBold(True) font.setPointSize(9) self.text.setFont(font) _translate = QCoreApplication.translate self.text.setText(_translate("MainWindow", "交换机" + str(num))) self.text.setStyleSheet("border:none;") self.btn.setStyleSheet( 'QPushButton{background-image:url(pictures/switch.png)}') self.btn.setStyleSheet( 'QPushButton{border-image:url(pictures/switch.png)}') self.btn.clicked.connect(self.goto) def goto(self): self.window.show() def getport(self, n): return self.switch.ports[n - 1] def setpos(self, x, y, direc): if direc == 1: self.x, self.y = x - self.len / 2, y - self.width elif direc == 2: self.x, self.y = x - self.len, y - self.width / 2 elif direc == 3: self.x, self.y = x - self.len / 2, y elif direc == 4: self.x, self.y = x, y - self.width / 2 else: self.x, self.y = x, y #def setLink(self,my_port,dest_sw,dest_port): #self.links[my_port]=(dest_sw,dest_port) def show(self): self.btn.show() self.text.show() def port1_pos(self): return (self.x + self.len / 2 - 10, self.y, self.x + self.len / 2 - 10, self.y - 90) def port2_pos(self): return (self.x, self.y + self.width / 2 + 5, self.x - 70, self.y + self.width / 2 + 5) def port3_pos(self): return (self.x + self.len / 2 - 10, self.y + self.width / 2, self.x + self.len / 2 - 10, self.y + self.width / 2 + 110) def port4_pos(self): return (self.x + self.len - 20, self.y + self.width / 2 + 5, self.x + self.len + 70 - 20, self.y + self.width / 2 + 5) def port_pos(self, i): if i == 1: return self.port1_pos() if i == 2: return self.port2_pos() if i == 3: return self.port3_pos() if i == 4: return self.port4_pos() def add_activePort(self, i): self.switch.add_active_port(i)