Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from PyQt5 import QtCore, QtGui, QtWidgets
- from functools import partial
- import time
- import re
- import socket
- import select
- import errno
- import sys
- import threading
- import queue
- from PyQt5 import QtCore, QtGui, QtWidgets
- from PyQt5.QtWidgets import QMainWindow
- from PyQt5.QtCore import QEvent
- import ipaddress
- import pickle
- #St (hover) = "background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:1 rgba(209, 229, 241, 255));"
- #St (click) = "background-color: qlineargradient(spread:pad, x1:0.318, y1:0.363636, x2:1, y2:0, stop:1 rgba(160, 199, 228, 255));"
- # QLabel_alterada = custom class for clickcable labels
- class Ui_createRoomWindow(QMainWindow):
- def sendInfo(self, private, roomName, roomDesc):
- global info_socket
- HEADER_LENGTH = 10
- roomName = roomName
- roomDesc = roomDesc
- people = ["People"]
- server = "Server"
- private = private
- IP = ""
- chatPORT = 4040
- roomInfoPort = 4041
- server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
- server_socket.bind((IP, chatPORT))
- server_socket.listen()
- info_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- info_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
- info_socket.bind((IP, roomInfoPort))
- info_socket.listen()
- sockets_list = [server_socket]
- clients = {}
- threadedRoom = threading.Thread(target=roomInfo, args=(roomName, roomDesc, people, server, private),
- daemon=True)
- threadedRoom.start()
- print(f'Listening for connections on {IP}:{chatPORT}...')
- def receive_message(client_socket):
- try:
- message_header = client_socket.recv(HEADER_LENGTH)
- if not len(message_header):
- return False
- message_length = int(message_header.decode('utf-8').strip())
- return {'header': message_header, 'data': client_socket.recv(message_length)}
- except:
- return False
- while True:
- read_sockets, _, exception_sockets = select.select(sockets_list, [], sockets_list)
- # Iterate over notified sockets
- for notified_socket in read_sockets:
- if notified_socket == server_socket:
- client_socket, client_address = server_socket.accept()
- user = receive_message(client_socket)
- if user is False:
- continue
- sockets_list.append(client_socket)
- clients[client_socket] = user
- print('Accepted new connection from {}:{}, username: {}'.format(*client_address,
- user['data'].decode('utf-8')))
- else:
- message = receive_message(notified_socket)
- if message is False:
- print('Closed connection from: {}'.format(clients[notified_socket]['data'].decode('utf-8')))
- sockets_list.remove(notified_socket)
- del clients[notified_socket]
- continue
- user = clients[notified_socket]
- print(f'Received message from {user["data"].decode("utf-8")}: {message["data"].decode("utf-8")}')
- for client_socket in clients:
- if client_socket != notified_socket:
- client_socket.send(user['header'] + user['data'] + message['header'] + message['data'])
- for notified_socket in exception_sockets:
- sockets_list.remove(notified_socket)
- del clients[notified_socket]
- def makeRoom(self):
- MainWindow.hide()
- if self.checkNo.isChecked() and self.checkYes.isChecked():
- private = "unChecked"
- elif self.checkNo.isChecked():
- private = "no"
- elif self.checkYes.isChecked():
- private = "yes"
- else:
- private = "unChecked"
- if private == "unChecked":
- msg = QtWidgets.QMessageBox()
- msg.setIcon(QtWidgets.QMessageBox.Critical)
- msg.setText("Error")
- msg.setInformativeText('Please check an option')
- msg.setWindowTitle("Error")
- msg.exec_()
- else:
- pass
- roomName = self.roomNameWrite.text()
- roomDesc = self.roomDescWrite.toPlainText()
- if roomName == "":
- msg = QtWidgets.QMessageBox()
- msg.setIcon(QtWidgets.QMessageBox.Critical)
- msg.setText("Error")
- msg.setInformativeText('Please enter a room name')
- msg.setWindowTitle("Error")
- msg.exec_()
- if roomDesc == "":
- msg = QtWidgets.QMessageBox()
- msg.setIcon(QtWidgets.QMessageBox.Critical)
- msg.setText("Error")
- msg.setInformativeText('Please enter a room description')
- msg.setWindowTitle("Error")
- msg.exec_()
- currentRoom = threading.Thread(target=self.sendInfo, args=(private,roomName,roomDesc))
- currentRoom.start()
- def setupUi(self, createRoomWindow):
- createRoomWindow.setObjectName("createRoomWindow")
- createRoomWindow.resize(350, 400)
- createRoomWindow.setMinimumSize(QtCore.QSize(350, 400))
- createRoomWindow.setMaximumSize(QtCore.QSize(350, 400))
- self.centralwidget = QtWidgets.QWidget(createRoomWindow)
- self.centralwidget.setObjectName("centralwidget")
- self.gridLayout_2 = QtWidgets.QGridLayout(self.centralwidget)
- self.gridLayout_2.setObjectName("gridLayout_2")
- self.titleLabel = QtWidgets.QLabel(self.centralwidget)
- self.titleLabel.setMaximumSize(QtCore.QSize(16777215, 30))
- font = QtGui.QFont()
- font.setPointSize(10)
- font.setBold(True)
- font.setWeight(75)
- self.titleLabel.setFont(font)
- self.titleLabel.setAlignment(QtCore.Qt.AlignCenter)
- self.titleLabel.setObjectName("titleLabel")
- self.gridLayout_2.addWidget(self.titleLabel, 0, 0, 1, 1)
- self.groupBox = QtWidgets.QGroupBox(self.centralwidget)
- self.groupBox.setTitle("")
- self.groupBox.setObjectName("groupBox")
- self.gridLayout = QtWidgets.QGridLayout(self.groupBox)
- self.gridLayout.setObjectName("gridLayout")
- self.checkNo = QtWidgets.QCheckBox(self.groupBox)
- self.checkNo.setMinimumSize(QtCore.QSize(150, 0))
- self.checkNo.setObjectName("checkNo")
- self.gridLayout.addWidget(self.checkNo, 2, 2, 1, 1)
- self.roomNameLabel = QtWidgets.QLabel(self.groupBox)
- self.roomNameLabel.setAlignment(QtCore.Qt.AlignLeading | QtCore.Qt.AlignLeft | QtCore.Qt.AlignTop)
- self.roomNameLabel.setObjectName("roomNameLabel")
- self.gridLayout.addWidget(self.roomNameLabel, 0, 0, 1, 1)
- self.checkYes = QtWidgets.QCheckBox(self.groupBox)
- self.checkYes.setMaximumSize(QtCore.QSize(70, 17))
- self.checkYes.setObjectName("checkYes")
- self.gridLayout.addWidget(self.checkYes, 2, 1, 1, 1)
- self.roomNameWrite = QtWidgets.QLineEdit(self.groupBox)
- self.roomNameWrite.setMinimumSize(QtCore.QSize(223, 20))
- self.roomNameWrite.setObjectName("roomNameWrite")
- self.gridLayout.addWidget(self.roomNameWrite, 0, 1, 1, 1)
- self.roomDescWrite = QtWidgets.QTextEdit(self.groupBox)
- self.roomDescWrite.setMinimumSize(QtCore.QSize(223, 80))
- self.roomDescWrite.setMaximumSize(QtCore.QSize(16777215, 80))
- self.roomDescWrite.setObjectName("roomDescWrite")
- self.gridLayout.addWidget(self.roomDescWrite, 1, 1, 1, 1)
- self.prRoomLabel = QtWidgets.QLabel(self.groupBox)
- self.prRoomLabel.setAlignment(QtCore.Qt.AlignLeading | QtCore.Qt.AlignLeft | QtCore.Qt.AlignTop)
- self.prRoomLabel.setObjectName("prRoomLabel")
- self.gridLayout.addWidget(self.prRoomLabel, 2, 0, 1, 1)
- self.roomDescLabel = QtWidgets.QLabel(self.groupBox)
- self.roomDescLabel.setAlignment(QtCore.Qt.AlignLeading | QtCore.Qt.AlignLeft | QtCore.Qt.AlignTop)
- self.roomDescLabel.setObjectName("roomDescLabel")
- self.gridLayout.addWidget(self.roomDescLabel, 1, 0, 1, 1)
- self.gridLayout_2.addWidget(self.groupBox, 1, 0, 1, 1)
- self.createRoomButton = QtWidgets.QPushButton(self.centralwidget)
- self.createRoomButton.setObjectName("createRoomButton")
- self.gridLayout_2.addWidget(self.createRoomButton, 2, 0, 1, 1)
- self.cancel = QtWidgets.QPushButton(self.centralwidget)
- self.cancel.setObjectName("cancel")
- self.gridLayout_2.addWidget(self.cancel, 3, 0, 1, 1)
- createRoomWindow.setCentralWidget(self.centralwidget)
- self.menubar = QtWidgets.QMenuBar(createRoomWindow)
- self.menubar.setGeometry(QtCore.QRect(0, 0, 350, 21))
- self.menubar.setObjectName("menubar")
- createRoomWindow.setMenuBar(self.menubar)
- self.statusbar = QtWidgets.QStatusBar(createRoomWindow)
- self.statusbar.setObjectName("statusbar")
- createRoomWindow.setStatusBar(self.statusbar)
- self.retranslateUi(createRoomWindow)
- QtCore.QMetaObject.connectSlotsByName(createRoomWindow)
- self.createRoomButton.clicked.connect(self.makeRoom)
- self.cancel.clicked.connect(lambda: self.cancelBtn(createRoomWindow))
- def cancelBtn(self, createRoomWindow):
- createRoomWindow.hide()
- MainWindow.show()
- def retranslateUi(self, createRoomWindow):
- _translate = QtCore.QCoreApplication.translate
- createRoomWindow.setWindowTitle(_translate("createRoomWindow", "Create Room"))
- self.titleLabel.setText(_translate("createRoomWindow", "Create A Room"))
- self.checkNo.setText(_translate("createRoomWindow", "No"))
- self.roomNameLabel.setText(_translate("createRoomWindow", "Room Name"))
- self.checkYes.setText(_translate("createRoomWindow", "Yes"))
- self.prRoomLabel.setText(_translate("createRoomWindow", "Private Room"))
- self.roomDescLabel.setText(_translate("createRoomWindow", "Room Description"))
- self.createRoomButton.setText(_translate("createRoomWindow", "Create Room"))
- self.cancel.setText(_translate("cancel", "Back To Menu"))
- def getRoomInfo(ipAddresses):
- global listPropreties
- global listNames
- listNames = []
- listPropreties = []
- time.sleep(1)
- global noIp
- while True:
- if noIp:
- break
- else:
- IP = str(ipAddresses.get())
- PORT = 4041
- HEADER_LENGHT = 10
- client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- client_socket.connect((IP, PORT))
- finalMessage = b''
- new_msg = True
- while True:
- msgConstruct = client_socket.recv(16)
- if msgConstruct:
- if new_msg:
- msglen = int(msgConstruct[:HEADER_LENGHT])
- new_msg = False
- finalMessage += msgConstruct
- if len(finalMessage) - HEADER_LENGHT == msglen:
- propreties = pickle.loads(finalMessage[HEADER_LENGHT:])
- listPropreties.append(propreties)
- print(propreties)
- print(propreties["people"])
- full_msg = b""
- if ipAddresses.empty():
- for dict in listPropreties:
- listNames.append(dict["roomName"])
- return 0
- else:
- pass
- else:
- break
- def roomInfo(roomName, roomDesc, people, server, private):
- global info_socket
- HEADER_LENGHT = 10
- properties = {"roomName":roomName,"roomDesc":roomDesc,"people":people,"server":server,"private":private}
- packet = pickle.dumps(properties)
- msg = bytes(f"{len(packet):<{HEADER_LENGHT}}", 'utf-8') + packet
- while True:
- info_sock, info_address = info_socket.accept()
- print("{}".format(info_address))
- info_sock.send(msg)
- info_sock.close()
- def checkRoomsOnline(ipAddresses):
- def portscan(ip):
- global noIp
- noIp = False
- port = 4040
- s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- s.settimeout(0.5)#
- try:
- con = s.connect((str(ip),port))
- ipAddresses.put(ip)
- print('Port :',str(ip),"is open.")
- con.close()
- except:
- pass
- for x in ipaddress.ip_network('192.168.0.0/24'):
- t = threading.Thread(target=portscan,kwargs={'ip':str(x)})
- t.start()
- if ipAddresses.empty():
- global noIp
- print("set")
- noIp = True
- return 0
- class QLabel_alterada(QtWidgets.QLabel):
- clicked = QtCore.pyqtSignal(str)
- def __init__(self, parent=None):
- super(QLabel_alterada, self).__init__(parent)
- def mousePressEvent(self, event):
- self.ultimo = "Single"
- def mouseReleaseEvent(self, event):
- if self.ultimo == "Single":
- QtCore.QTimer.singleShot(QtWidgets.QApplication.instance().doubleClickInterval(),
- self.performSingleClickAction)
- else:
- self.clicked.emit(self.ultimo)
- def mouseDoubleClickEvent(self, event):
- self.ultimo = "Double"
- def performSingleClickAction(self):
- if self.ultimo == "Single":
- self.clicked.emit(self.ultimo)
- # Ip address prompt Window
- class Ui_IpAddressCheck(QtWidgets.QMainWindow):
- def setupUi(self, IpAddressCheck):
- IpAddressCheck.setObjectName("IpAddressCheck")
- IpAddressCheck.resize(250, 100)
- IpAddressCheck.setMinimumSize(QtCore.QSize(250, 0))
- IpAddressCheck.setMaximumSize(QtCore.QSize(250, 100))
- self.centralwidget = QtWidgets.QWidget(IpAddressCheck)
- self.centralwidget.setObjectName("centralwidget")
- self.gridLayout = QtWidgets.QGridLayout(self.centralwidget)
- self.gridLayout.setObjectName("gridLayout")
- self.ipAddress = QtWidgets.QLineEdit(self.centralwidget)
- self.ipAddress.setObjectName("ipAddress")
- self.gridLayout.addWidget(self.ipAddress, 1, 1, 1, 1)
- self.ipAddressLabel = QtWidgets.QLabel(self.centralwidget)
- self.ipAddressLabel.setObjectName("ipAddressLabel")
- self.gridLayout.addWidget(self.ipAddressLabel, 1, 0, 1, 1)
- IpAddressCheck.setCentralWidget(self.centralwidget)
- self.menubar = QtWidgets.QMenuBar(IpAddressCheck)
- self.menubar.setGeometry(QtCore.QRect(0, 0, 250, 21))
- self.menubar.setObjectName("menubar")
- IpAddressCheck.setMenuBar(self.menubar)
- self.statusbar = QtWidgets.QStatusBar(IpAddressCheck)
- self.statusbar.setObjectName("statusbar")
- IpAddressCheck.setStatusBar(self.statusbar)
- self.retranslateUi(IpAddressCheck)
- QtCore.QMetaObject.connectSlotsByName(IpAddressCheck)
- self.ipAddress.returnPressed.connect(self.tryToConnect)
- def retranslateUi(self, IpAddressCheck):
- _translate = QtCore.QCoreApplication.translate
- IpAddressCheck.setWindowTitle(_translate("IpAddressCheck", "MainWindow"))
- self.ipAddressLabel.setText(_translate("IpAddressCheck", "Ip to connect to"))
- # Chat Window
- class Ui_chatWindow(object):
- def setupUi(self, chatWindow):
- chatWindow.setObjectName("chatWindow")
- chatWindow.resize(500, 600)
- chatWindow.setMinimumSize(QtCore.QSize(500, 600))
- chatWindow.setMaximumSize(QtCore.QSize(500, 600))
- self.centralwidget = QtWidgets.QWidget(chatWindow)
- self.centralwidget.setObjectName("centralwidget")
- self.gridLayout = QtWidgets.QGridLayout(self.centralwidget)
- self.gridLayout.setObjectName("gridLayout")
- self.mainChatEdit = QtWidgets.QTextEdit(self.centralwidget)
- font = QtGui.QFont()
- font.setPointSize(6)
- self.mainChatEdit.setFont(font)
- self.mainChatEdit.viewport().setProperty("cursor", QtGui.QCursor(QtCore.Qt.ArrowCursor))
- self.mainChatEdit.setStyleSheet("")
- self.mainChatEdit.setFrameShadow(QtWidgets.QFrame.Sunken)
- self.mainChatEdit.setReadOnly(True)
- self.mainChatEdit.setTextInteractionFlags(QtCore.Qt.TextSelectableByMouse)
- self.mainChatEdit.setObjectName("mainChatEdit")
- self.gridLayout.addWidget(self.mainChatEdit, 1, 0, 1, 1)
- self.sendMsg = QtWidgets.QLineEdit(self.centralwidget)
- self.sendMsg.setObjectName("sendMsg")
- self.gridLayout.addWidget(self.sendMsg, 2, 0, 1, 1)
- self.connectedTo = QtWidgets.QLabel(self.centralwidget)
- font = QtGui.QFont()
- font.setBold(True)
- font.setWeight(75)
- self.connectedTo.setFont(font)
- self.connectedTo.setAlignment(QtCore.Qt.AlignCenter)
- self.connectedTo.setObjectName("connectedTo")
- self.gridLayout.addWidget(self.connectedTo, 0, 0, 1, 1)
- chatWindow.setCentralWidget(self.centralwidget)
- self.menubar = QtWidgets.QMenuBar(chatWindow)
- self.menubar.setGeometry(QtCore.QRect(0, 0, 500, 21))
- self.menubar.setObjectName("menubar")
- chatWindow.setMenuBar(self.menubar)
- self.statusbar = QtWidgets.QStatusBar(chatWindow)
- self.statusbar.setObjectName("statusbar")
- chatWindow.setStatusBar(self.statusbar)
- self.retranslateUi(chatWindow)
- QtCore.QMetaObject.connectSlotsByName(chatWindow)
- self.userName = "GinTora"
- self.outPutText = ""
- self.sendMsg.returnPressed.connect(self.sendMessage)
- self.timer = QtCore.QTimer()
- self.timer.timeout.connect(self.checkForMessage)
- self.timer.start(1000)
- def sendMessage(self):
- global sendMsg
- msgToOutput = self.sendMsg.text()
- sendMsg.put(self.sendMsg.text())
- self.sendMsg.clear()
- chatText = "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:12pt;\">{}: {}</span></p>\n".format("Kyand",msgToOutput)
- self.outPutText += chatText
- _translate = QtCore.QCoreApplication.translate
- chatWindow.setWindowTitle(_translate("chatWindow", "MainWindow"))
- self.mainChatEdit.setHtml(_translate("chatWindow", """
- <!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n
- <html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n
- p, li {{ white-space: pre-wrap; }}\n
- </style></head><body style=\" font-family:\'MS Shell Dlg 2\'; font-size:6pt; font-weight:400; font-style:normal;\">\n
- {}</html>
- """.format(self.outPutText)))
- def checkForMessage(self):
- global msg
- global user
- if msg.empty():
- pass
- else:
- userOutput = user.get()
- msgOutput = msg.get()
- chatText = "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:12pt;\">{}: {}</span></p>\n".format(userOutput,msgOutput)
- self.outPutText += chatText
- _translate = QtCore.QCoreApplication.translate
- chatWindow.setWindowTitle(_translate("chatWindow", "MainWindow"))
- self.mainChatEdit.setHtml(_translate("chatWindow", """
- <!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n
- <html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n
- p, li {{ white-space: pre-wrap; }}\n
- </style></head><body style=\" font-family:\'MS Shell Dlg 2\'; font-size:6pt; font-weight:400; font-style:normal;\">\n
- {}</html>
- """.format(self.outPutText)))
- def retranslateUi(self, chatWindow):
- _translate = QtCore.QCoreApplication.translate
- chatWindow.setWindowTitle(_translate("chatWindow", "MainWindow"))
- self.mainChatEdit.setHtml(_translate("chatWindow", """
- <!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n
- <html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n
- p, li { white-space: pre-wrap; }\n
- </style></head><body style=\" font-family:\'MS Shell Dlg 2\'; font-size:6pt; font-weight:400; font-style:normal;\">\n
- </html>
- """))
- self.connectedTo.setText(_translate("chatWindow", "Connected to "))
- # Room Description Window
- class Ui_roomDescription(object):
- def __init__(self):
- global listPropreties
- self.listPropreties = listPropreties
- def getProp(self, name):
- for dict in self.listPropreties:
- if dict["roomName"] == name:
- print(dict)
- else:
- pass
- def setupUi(self, roomDescription, name, dictDescription, dictPeople, dictServer):
- roomDescription.setObjectName("roomDescription")
- roomDescription.resize(500, 250)
- roomDescription.setMinimumSize(QtCore.QSize(0, 250))
- roomDescription.setMaximumSize(QtCore.QSize(500, 250))
- self.centralwidget = QtWidgets.QWidget(roomDescription)
- self.centralwidget.setObjectName("centralwidget")
- self.gridLayout_4 = QtWidgets.QGridLayout(self.centralwidget)
- self.gridLayout_4.setObjectName("gridLayout_4")
- self.groupBox_2 = QtWidgets.QGroupBox(self.centralwidget)
- self.groupBox_2.setTitle("")
- self.groupBox_2.setObjectName("groupBox_2")
- self.gridLayout_2 = QtWidgets.QGridLayout(self.groupBox_2)
- self.gridLayout_2.setContentsMargins(0, 0, 0, 0)
- self.gridLayout_2.setObjectName("gridLayout_2")
- self.peopleDesc = QtWidgets.QLabel(self.groupBox_2)
- self.peopleDesc.setMinimumSize(QtCore.QSize(70, 0))
- self.peopleDesc.setMaximumSize(QtCore.QSize(60, 16777215))
- font = QtGui.QFont()
- font.setBold(True)
- font.setWeight(75)
- self.peopleDesc.setFont(font)
- self.peopleDesc.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop)
- self.peopleDesc.setObjectName("peopleDesc")
- self.gridLayout_2.addWidget(self.peopleDesc, 0, 0, 1, 1)
- self.peopleDescField = QtWidgets.QLabel(self.groupBox_2)
- self.peopleDescField.setMinimumSize(QtCore.QSize(0, 30))
- self.peopleDescField.setFrameShape(QtWidgets.QFrame.StyledPanel)
- self.peopleDescField.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop)
- self.peopleDescField.setObjectName("peopleDescField")
- self.gridLayout_2.addWidget(self.peopleDescField, 0, 1, 1, 1)
- self.gridLayout_4.addWidget(self.groupBox_2, 1, 0, 1, 1)
- self.groupBox = QtWidgets.QGroupBox(self.centralwidget)
- font = QtGui.QFont()
- font.setPointSize(9)
- self.groupBox.setFont(font)
- self.groupBox.setTitle("")
- self.groupBox.setObjectName("groupBox")
- self.gridLayout_5 = QtWidgets.QGridLayout(self.groupBox)
- self.gridLayout_5.setContentsMargins(0, 0, 0, 0)
- self.gridLayout_5.setObjectName("gridLayout_5")
- self.serverDesc = QtWidgets.QLabel(self.groupBox)
- self.serverDesc.setMinimumSize(QtCore.QSize(70, 0))
- self.serverDesc.setMaximumSize(QtCore.QSize(60, 16777215))
- font = QtGui.QFont()
- font.setPointSize(9)
- font.setBold(True)
- font.setWeight(75)
- self.serverDesc.setFont(font)
- self.serverDesc.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop)
- self.serverDesc.setObjectName("serverDesc")
- self.gridLayout_5.addWidget(self.serverDesc, 0, 0, 1, 1)
- self.serverDescField = QtWidgets.QLabel(self.groupBox)
- self.serverDescField.setMinimumSize(QtCore.QSize(0, 30))
- font = QtGui.QFont()
- font.setPointSize(8)
- self.serverDescField.setFont(font)
- self.serverDescField.setFrameShape(QtWidgets.QFrame.StyledPanel)
- self.serverDescField.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop)
- self.serverDescField.setObjectName("serverDescField")
- self.gridLayout_5.addWidget(self.serverDescField, 0, 1, 1, 1)
- self.gridLayout_4.addWidget(self.groupBox, 2, 0, 1, 1)
- self.groupBox_3 = QtWidgets.QGroupBox(self.centralwidget)
- self.groupBox_3.setTitle("")
- self.groupBox_3.setObjectName("groupBox_3")
- self.gridLayout = QtWidgets.QGridLayout(self.groupBox_3)
- self.gridLayout.setContentsMargins(0, 0, 0, 0)
- self.gridLayout.setObjectName("gridLayout")
- self.descriptionDesc = QtWidgets.QLabel(self.groupBox_3)
- self.descriptionDesc.setMinimumSize(QtCore.QSize(70, 60))
- self.descriptionDesc.setMaximumSize(QtCore.QSize(60, 60))
- font = QtGui.QFont()
- font.setPointSize(9)
- font.setBold(True)
- font.setWeight(75)
- self.descriptionDesc.setFont(font)
- self.descriptionDesc.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop)
- self.descriptionDesc.setObjectName("descriptionDesc")
- self.gridLayout.addWidget(self.descriptionDesc, 0, 0, 1, 1)
- self.descriptionDescField = QtWidgets.QLabel(self.groupBox_3)
- self.descriptionDescField.setFrameShape(QtWidgets.QFrame.StyledPanel)
- self.descriptionDescField.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop)
- self.descriptionDescField.setObjectName("descriptionDescField")
- self.gridLayout.addWidget(self.descriptionDescField, 0, 1, 1, 1)
- self.gridLayout_4.addWidget(self.groupBox_3, 0, 0, 1, 1)
- roomDescription.setCentralWidget(self.centralwidget)
- self.menubar = QtWidgets.QMenuBar(roomDescription)
- self.menubar.setGeometry(QtCore.QRect(0, 0, 500, 21))
- self.menubar.setObjectName("menubar")
- roomDescription.setMenuBar(self.menubar)
- self.statusbar = QtWidgets.QStatusBar(roomDescription)
- self.statusbar.setObjectName("statusbar")
- roomDescription.setStatusBar(self.statusbar)
- self.retranslateUi(roomDescription, name, dictDescription, dictPeople, dictServer)
- QtCore.QMetaObject.connectSlotsByName(roomDescription)
- self.getProp(name)
- def retranslateUi(self, roomDescription, name, dictDescription, dictPeople, dictServer):
- _translate = QtCore.QCoreApplication.translate
- roomDescription.setWindowTitle(_translate("roomDescription", "{} Description".format(name)))
- self.peopleDesc.setText(_translate("roomDescription", "People"))
- self.peopleDescField.setText(_translate("roomDescription", dictPeople[name]))
- self.serverDesc.setText(_translate("roomDescription", "Server"))
- self.serverDescField.setText(_translate("roomDescription", dictServer[name]))
- self.descriptionDesc.setText(_translate("roomDescription", "Description"))
- self.descriptionDescField.setText(_translate("roomDescription", dictDescription[name]))
- # Private Room Password prompt pop up
- class Ui_pRoom(object):
- def setupUi(self, pRoom, name):
- pRoom.setObjectName("pRoom")
- pRoom.resize(400, 150)
- pRoom.setMinimumSize(QtCore.QSize(400, 150))
- pRoom.setMaximumSize(QtCore.QSize(400, 150))
- self.centralwidget = QtWidgets.QWidget(pRoom)
- self.centralwidget.setObjectName("centralwidget")
- self.gridLayout = QtWidgets.QGridLayout(self.centralwidget)
- self.gridLayout.setObjectName("gridLayout")
- self.pswd = QtWidgets.QLabel(self.centralwidget)
- self.pswd.setObjectName("pswd")
- self.gridLayout.addWidget(self.pswd, 1, 0, 1, 1)
- self.pRoomPass = QtWidgets.QLineEdit(self.centralwidget)
- self.pRoomPass.setInputMask("")
- self.pRoomPass.setEchoMode(QtWidgets.QLineEdit.Password)
- self.pRoomPass.setObjectName("pRoomPass")
- self.gridLayout.addWidget(self.pRoomPass, 1, 1, 1, 1)
- self.groupBox = QtWidgets.QGroupBox(self.centralwidget)
- self.groupBox.setTitle("")
- self.groupBox.setFlat(True)
- self.groupBox.setObjectName("groupBox")
- self.gridLayout_3 = QtWidgets.QGridLayout(self.groupBox)
- self.gridLayout_3.setObjectName("gridLayout_3")
- self.gridLayout_2 = QtWidgets.QGridLayout()
- self.gridLayout_2.setObjectName("gridLayout_2")
- self.enteringPRoom = QtWidgets.QLabel(self.groupBox)
- font = QtGui.QFont()
- font.setPointSize(12)
- font.setBold(True)
- font.setWeight(75)
- self.enteringPRoom.setFont(font)
- self.enteringPRoom.setAlignment(QtCore.Qt.AlignCenter)
- self.enteringPRoom.setObjectName("enteringPRoom")
- self.gridLayout_2.addWidget(self.enteringPRoom, 0, 0, 1, 1)
- self.gridLayout_3.addLayout(self.gridLayout_2, 0, 0, 1, 1)
- self.gridLayout.addWidget(self.groupBox, 0, 0, 1, 2)
- pRoom.setCentralWidget(self.centralwidget)
- self.menubar = QtWidgets.QMenuBar(pRoom)
- self.menubar.setGeometry(QtCore.QRect(0, 0, 400, 21))
- self.menubar.setObjectName("menubar")
- pRoom.setMenuBar(self.menubar)
- self.statusbar = QtWidgets.QStatusBar(pRoom)
- self.statusbar.setObjectName("statusbar")
- pRoom.setStatusBar(self.statusbar)
- self.retranslateUi(pRoom, name)
- QtCore.QMetaObject.connectSlotsByName(pRoom)
- def retranslateUi(self, pRoom, name):
- _translate = QtCore.QCoreApplication.translate
- pRoom.setWindowTitle(_translate("pRoom", name))
- self.pswd.setText(_translate("pRoom", "Password"))
- self.enteringPRoom.setText(_translate("pRoom", "You are trying to enter a Private Room"))
- # Ui_Loader is the loading window for Avaible Rooms Window
- class Ui_Loader(QMainWindow):
- def __init__(self):
- self.ipAddresses = queue.Queue()
- def setupUi(self, Loader):
- Loader.setObjectName("Loader")
- Loader.resize(350, 150)
- Loader.setMinimumSize(QtCore.QSize(350, 150))
- Loader.setMaximumSize(QtCore.QSize(350, 150))
- self.centralwidget = QtWidgets.QWidget(Loader)
- self.centralwidget.setObjectName("centralwidget")
- self.gridLayout = QtWidgets.QGridLayout(self.centralwidget)
- self.gridLayout.setObjectName("gridLayout")
- self.label = QtWidgets.QLabel(self.centralwidget)
- self.label.setObjectName("label")
- self.gridLayout.addWidget(self.label, 0, 0, 1, 1)
- self.progressBar = QtWidgets.QProgressBar(self.centralwidget)
- self.progressBar.setProperty("value", 0)
- self.progressBar.setObjectName("progressBar")
- self.gridLayout.addWidget(self.progressBar, 1, 0, 1, 1)
- self.pushButton = QtWidgets.QPushButton(self.centralwidget)
- self.pushButton.setObjectName("pushButton")
- self.gridLayout.addWidget(self.pushButton, 2, 0, 1, 1)
- Loader.setCentralWidget(self.centralwidget)
- self.menubar = QtWidgets.QMenuBar(Loader)
- self.menubar.setGeometry(QtCore.QRect(0, 0, 350, 21))
- self.menubar.setObjectName("menubar")
- Loader.setMenuBar(self.menubar)
- self.statusbar = QtWidgets.QStatusBar(Loader)
- self.statusbar.setObjectName("statusbar")
- Loader.setStatusBar(self.statusbar)
- self.retranslateUi(Loader)
- QtCore.QMetaObject.connectSlotsByName(Loader)
- self.timer = QtCore.QTimer()
- self.timer.timeout.connect(lambda: self.handlerTimer(Loader))
- self.timer.start(50)
- self.pushButton.clicked.connect(lambda: self.cancelBtn(Loader))
- portScanner = threading.Thread(target=checkRoomsOnline, args=(self.ipAddresses,))
- portScanner.start()
- getRoomInfos = threading.Thread(target=getRoomInfo, args=(self.ipAddresses,))
- getRoomInfos.start()
- def cancelBtn(self, Loader):
- Loader.hide()
- MainWindow.show()
- self.timer.stop()
- def handlerTimer(self, Loader):
- value = self.progressBar.value()
- if value < 100:
- value = value + 5
- self.progressBar.setValue(value)
- else:
- self.aviableRooms = QtWidgets.QMainWindow()
- self.u = Ui_aviableRooms()
- self.u.setupUi(self.aviableRooms)
- self.aviableRooms.show()
- Loader.hide()
- self.timer.stop()
- def retranslateUi(self, Loader):
- _translate = QtCore.QCoreApplication.translate
- Loader.setWindowTitle(_translate("Loader", "MainWindow"))
- self.label.setText(_translate("Loader", " Scanning network for chat rooms"))
- self.pushButton.setText(_translate("Loader", "Cancel"))
- # Window that contains the list of chat rooms
- class Ui_aviableRooms(QtWidgets.QWidget):
- def __init__(self):
- global dictLabelObj
- global listOfRoomObj
- global listOfConnectedObj
- global listOfOnlineObj
- global dictLabelObj
- global hoverSt
- global clickSt
- super().__init__()
- global listNames
- print(listNames)
- listNamesLen = len(listNames)
- print(listNamesLen)
- self.chatRooms = []
- self.coloredRow = "12"
- self.listOfRoomObj = []
- self.listOfConnectedObj = []
- self.listOfOnlineObj = []
- dictLabelObj = {}
- self.hoverSt = "background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:1 rgba(209, 229, 241, 255));" # Css for label when hovering over rooms
- self.clickSt = "background-color: qlineargradient(spread:pad, x1:0.318, y1:0.363636, x2:1, y2:0, stop:1 rgba(160, 199, 228, 255));" # Css for label when clicked on room
- for name in listNames:
- self.chatRooms.append(name)
- print(self.chatRooms)
- while len(self.chatRooms) < 10:
- self.chatRooms.append("")
- #self.chatRooms = ["Administration","","","","","","","","",""] # List to build up chat room names
- print(self.chatRooms)
- self.isPrivateRoom = ["yes","","","","","","","","",""] # List to build up if chat room is private or not
- indexCount = 0 # Index variable for the for loop
- for rooms in self.chatRooms: # Replace all empty rooms with N/A ( Creates new self.chatRoom )
- if rooms == "":
- self.chatRooms[indexCount] = "N/A"
- pass
- else:
- pass
- indexCount +=1
- self.roomN1,self.roomN2,self.roomN3,self.roomN4,self.roomN5,self.roomN6,self.roomN7,self.roomN8,self.roomN9,self.roomN10 = self.chatRooms
- self.dictLabelNames = {"1":self.roomN1,"2":self.roomN2,"3":self.roomN3,"4":self.roomN4,"5":self.roomN5,"6":self.roomN6,"7":self.roomN7,"8":self.roomN8,"9":self.roomN9,"10":self.roomN10} #RowNumber/RoomName dictionary
- self.dictDescription = {self.roomN1:"1",self.roomN2:"2",self.roomN3:"3",self.roomN4:"4",self.roomN5:"5",self.roomN6:"6",self.roomN7:"7",self.roomN8:"8",self.roomN9:"9",self.roomN10:"10"} #RoomName/Description Dict
- self.dictPeople = {self.roomN1:"1",self.roomN2:"2",self.roomN3:"3",self.roomN4:"4",self.roomN5:"5",self.roomN6:"6",self.roomN7:"7",self.roomN8:"8",self.roomN9:"9",self.roomN10:"10"} #RoomName/ListOfPeople Dict
- self.dictServer = {self.roomN1:"1",self.roomN2:"2",self.roomN3:"3",self.roomN4:"4",self.roomN5:"5",self.roomN6:"6",self.roomN7:"7",self.roomN8:"8",self.roomN9:"9",self.roomN10:"10"} #RoomName/Server Dict
- def eventFilter(self, object, event): # Used for hovering/clicking effects.
- global dictLabelobj
- rowNum = object.objectName()[-1] # Last index of the object name, object names are as follow : object1, object2, etc... So we get the last index (-1) to get the row number since object1 is on first row.
- connectedObj = dictLabelObj["Connected" + rowNum] # We "query" the dictionary using objectname + its row number for all 4 objects.
- onlineObj = dictLabelObj["Online" + rowNum] # ^
- roomObj = dictLabelObj["Room" + rowNum] # ^
- privateObj = dictLabelObj["Private" + rowNum] # ^
- if event.type() == QtCore.QEvent.MouseButtonPress: # On each button press
- if event.button() == QtCore.Qt.LeftButton: # Left click
- try: # Point of this is; when we click on label, it gets the object (label object) and sets it to white. After that, on new variables (privateObj, roomObj etc,) it sets it to blue. When we click again, it sets the OLD clicked object to white.
- # Gather label current label OBJECT from object Dict
- oldConnectedObj = dictLabelObj["Connected" + self.coloredRow]
- oldOnlineObj = dictLabelObj["Online" + self.coloredRow]
- oldRoomObj = dictLabelObj["Room" + self.coloredRow]
- oldPrivateObj = dictLabelObj["Private" + self.coloredRow]
- # Set the 4 label objects to white
- oldConnectedObj.setStyleSheet("")
- oldOnlineObj.setStyleSheet("")
- oldPrivateObj.setStyleSheet("")
- oldRoomObj.setStyleSheet("")
- except:
- pass
- # Set label color to blue (clicked)
- self.coloredRow = rowNum
- privateObj.setStyleSheet(self.clickSt)
- roomObj.setStyleSheet(self.clickSt)
- connectedObj.setStyleSheet(self.clickSt)
- onlineObj.setStyleSheet(self.clickSt)
- pass
- elif event.button() == QtCore.Qt.RightButton: # Right click
- try: # Point of this is; when we click on label, it gets the object (label object) and sets it to white. After that, on new variables (privateObj, roomObj etc,) it sets it to blue. When we click again, it sets the OLD clicked object to white.
- # Gather label current label OBJECT from object Dict
- oldConnectedObj = dictLabelObj["Connected" + self.coloredRow]
- oldOnlineObj = dictLabelObj["Online" + self.coloredRow]
- oldRoomObj = dictLabelObj["Room" + self.coloredRow]
- oldPrivateObj = dictLabelObj["Private" + self.coloredRow]
- # Set the 4 label objects to white
- oldConnectedObj.setStyleSheet("")
- oldOnlineObj.setStyleSheet("")
- oldPrivateObj.setStyleSheet("")
- oldRoomObj.setStyleSheet("")
- except:
- pass
- # Set label color to blue (clicked)
- self.coloredRow = rowNum
- privateObj.setStyleSheet(self.clickSt)
- roomObj.setStyleSheet(self.clickSt)
- connectedObj.setStyleSheet(self.clickSt)
- onlineObj.setStyleSheet(self.clickSt)
- pass
- try:
- name = self.dictLabelNames[str(rowNum)]
- except:
- name = self.dictLabelNames["10"]
- if name == "N/A":
- pass
- else:
- contextMenu = QtWidgets.QMenu(self)
- connect = contextMenu.addAction("Connect")
- description = contextMenu.addAction("Room Description")
- action = contextMenu.exec_(QtGui.QCursor.pos())
- if action == connect:
- name = self.dictLabelNames[str(rowNum)]
- if self.isPrivateRoom[int(rowNum) - 1] == "yes":
- self.pRoom = QtWidgets.QMainWindow()
- self.ui = Ui_pRoom()
- self.ui.setupUi(self.pRoom, name)
- self.pRoom.show()
- else:
- print("not private")
- pass
- elif action == description:
- name = self.dictLabelNames[str(rowNum)]
- self.roomDescription = QtWidgets.QMainWindow()
- self.ui = Ui_roomDescription()
- self.ui.setupUi(self.roomDescription, name, self.dictDescription, self.dictPeople, self.dictServer)
- self.roomDescription.show()
- pass
- if event.type() == QEvent.Enter: # When we hover over a label
- #Set hover color on hover
- privateObj.setStyleSheet(self.hoverSt)
- roomObj.setStyleSheet(self.hoverSt)
- connectedObj.setStyleSheet(self.hoverSt)
- onlineObj.setStyleSheet(self.hoverSt)
- if self.coloredRow == rowNum:
- # If We are on the row that is colored (clicked), dont color it with hover color
- privateObj.setStyleSheet(self.clickSt)
- roomObj.setStyleSheet(self.clickSt)
- connectedObj.setStyleSheet(self.clickSt)
- onlineObj.setStyleSheet(self.clickSt)
- pass
- elif event.type() == QEvent.Leave: # When we leave label table.
- if self.coloredRow == rowNum:
- #We do nothing if the current label row is the clicked row.
- pass
- else:
- # If its anything else, set it to white!
- privateObj.setStyleSheet("")
- roomObj.setStyleSheet("")
- connectedObj.setStyleSheet("")
- onlineObj.setStyleSheet("")
- return False
- def checkPrivate(self, pslot, i):
- if self.isPrivateRoom[i] == "yes":
- pass
- else:
- pslot.hide()
- def assignColorLabels(self):
- for room,connected,online in zip(self.listOfRoomObj,self.listOfConnectedObj,self.listOfOnlineObj):
- room.installEventFilter(self)
- connected.installEventFilter(self)
- online.installEventFilter(self)
- def setupUi(self, aviableRooms):
- # Main Window (avaibleRooms)
- aviableRooms.setObjectName("aviableRooms")
- aviableRooms.resize(300, 350)
- sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
- sizePolicy.setHorizontalStretch(0)
- sizePolicy.setVerticalStretch(0)
- sizePolicy.setHeightForWidth(aviableRooms.sizePolicy().hasHeightForWidth())
- aviableRooms.setSizePolicy(sizePolicy)
- aviableRooms.setMinimumSize(QtCore.QSize(300, 350))
- aviableRooms.setMaximumSize(QtCore.QSize(300, 350))
- # CentralWidget (For avaibleRooms)
- self.centralwidget = QtWidgets.QWidget(aviableRooms)
- self.centralwidget.setObjectName("centralwidget")
- # gridLayout (For CentralWidget)
- self.gridLayout = QtWidgets.QGridLayout(self.centralwidget)
- self.gridLayout.setContentsMargins(0, 0, 0, 0)
- self.gridLayout.setSpacing(0)
- self.gridLayout.setObjectName("gridLayout")
- # ScrollArea (In CentralWidget)
- self.scrollArea = QtWidgets.QScrollArea(self.centralwidget)
- self.scrollArea.setFrameShape(QtWidgets.QFrame.NoFrame)
- self.scrollArea.setWidgetResizable(True)
- self.scrollArea.setObjectName("scrollArea")
- self.scrollAreaWidgetContents = QtWidgets.QWidget()
- self.scrollAreaWidgetContents.setGeometry(QtCore.QRect(0, 0, 311, 442))
- self.scrollAreaWidgetContents.setObjectName("scrollAreaWidgetContents")
- self.formLayout_3 = QtWidgets.QFormLayout(self.scrollAreaWidgetContents)
- self.formLayout_3.setObjectName("formLayout_3")
- self.BACK = QtWidgets.QPushButton(self.scrollAreaWidgetContents)
- self.BACK.setObjectName("BACK")
- self.formLayout_3.setWidget(1, QtWidgets.QFormLayout.SpanningRole, self.BACK)
- self.roomsBox = QtWidgets.QGroupBox(self.scrollAreaWidgetContents)
- sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
- sizePolicy.setHorizontalStretch(0)
- sizePolicy.setVerticalStretch(0)
- sizePolicy.setHeightForWidth(self.roomsBox.sizePolicy().hasHeightForWidth())
- self.roomsBox.setSizePolicy(sizePolicy)
- self.roomsBox.setLayoutDirection(QtCore.Qt.LeftToRight)
- self.roomsBox.setTitle("")
- self.roomsBox.setAlignment(QtCore.Qt.AlignLeading | QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter)
- self.roomsBox.setObjectName("roomsBox")
- self.gridLayout_8 = QtWidgets.QGridLayout(self.roomsBox)
- self.gridLayout_8.setContentsMargins(0, 0, 0, 0)
- self.gridLayout_8.setSpacing(0)
- self.gridLayout_8.setObjectName("gridLayout_8")
- self.gridLayout_7 = QtWidgets.QGridLayout()
- self.gridLayout_7.setObjectName("gridLayout_7")
- self.Online8 = QLabel_alterada(self.roomsBox)
- self.Online8.setFrameShape(QtWidgets.QFrame.StyledPanel)
- self.Online8.setAlignment(QtCore.Qt.AlignCenter)
- self.Online8.setObjectName("Online8")
- dictLabelObj.update({"Online8": self.Online8})
- self.listOfOnlineObj.append(self.Online8)
- self.gridLayout_7.addWidget(self.Online8, 8, 3, 1, 1)
- self.Connected4 = QLabel_alterada(self.roomsBox)
- self.Connected4.setFrameShape(QtWidgets.QFrame.StyledPanel)
- self.Connected4.setAlignment(QtCore.Qt.AlignCenter)
- self.Connected4.setObjectName("Connected4")
- dictLabelObj.update({"Connected4": self.Connected4})
- self.listOfConnectedObj.append(self.Connected4)
- self.gridLayout_7.addWidget(self.Connected4, 4, 2, 1, 1)
- self.Online10 = QLabel_alterada(self.roomsBox)
- self.Online10.setFrameShape(QtWidgets.QFrame.StyledPanel)
- self.Online10.setAlignment(QtCore.Qt.AlignCenter)
- self.Online10.setObjectName("Online10")
- dictLabelObj.update({"Online0": self.Online10})
- self.listOfOnlineObj.append(self.Online10)
- self.gridLayout_7.addWidget(self.Online10, 10, 3, 1, 1)
- self.Room4 = QLabel_alterada(self.roomsBox)
- self.Room4.setMinimumSize(QtCore.QSize(0, 20))
- self.Room4.setFrameShape(QtWidgets.QFrame.StyledPanel)
- self.Room4.setFrameShadow(QtWidgets.QFrame.Plain)
- self.Room4.setAlignment(QtCore.Qt.AlignCenter)
- self.Room4.setObjectName("Room4")
- dictLabelObj.update({"Room4": self.Room4})
- self.listOfRoomObj.append(self.Room4)
- self.gridLayout_7.addWidget(self.Room4, 4, 1, 1, 1)
- self.Online7 = QLabel_alterada(self.roomsBox)
- self.Online7.setFrameShape(QtWidgets.QFrame.StyledPanel)
- self.Online7.setAlignment(QtCore.Qt.AlignCenter)
- self.Online7.setObjectName("Online7")
- dictLabelObj.update({"Online7": self.Online7})
- self.listOfOnlineObj.append(self.Online7)
- self.gridLayout_7.addWidget(self.Online7, 7, 3, 1, 1)
- self.Connected2 = QLabel_alterada(self.roomsBox)
- self.Connected2.setFrameShape(QtWidgets.QFrame.StyledPanel)
- self.Connected2.setAlignment(QtCore.Qt.AlignCenter)
- self.Connected2.setObjectName("Connected2")
- dictLabelObj.update({"Connected2": self.Connected2})
- self.listOfConnectedObj.append(self.Connected2)
- self.gridLayout_7.addWidget(self.Connected2, 2, 2, 1, 1)
- self.Room8 = QLabel_alterada(self.roomsBox)
- self.Room8.setMinimumSize(QtCore.QSize(0, 20))
- self.Room8.setFrameShape(QtWidgets.QFrame.StyledPanel)
- self.Room8.setAlignment(QtCore.Qt.AlignCenter)
- self.Room8.setObjectName("Room8")
- dictLabelObj.update({"Room8": self.Room8})
- self.listOfRoomObj.append(self.Room8)
- self.gridLayout_7.addWidget(self.Room8, 8, 1, 1, 1)
- self.Room3 = QLabel_alterada(self.roomsBox)
- self.Room3.setMinimumSize(QtCore.QSize(0, 20))
- self.Room3.setFrameShape(QtWidgets.QFrame.StyledPanel)
- self.Room3.setAlignment(QtCore.Qt.AlignCenter)
- self.Room3.setObjectName("Room3")
- dictLabelObj.update({"Room3": self.Room3})
- self.listOfRoomObj.append(self.Room3)
- self.gridLayout_7.addWidget(self.Room3, 3, 1, 1, 1)
- self.Room9 = QLabel_alterada(self.roomsBox)
- self.Room9.setMinimumSize(QtCore.QSize(0, 20))
- self.Room9.setFrameShape(QtWidgets.QFrame.StyledPanel)
- self.Room9.setAlignment(QtCore.Qt.AlignCenter)
- self.Room9.setObjectName("Room9")
- dictLabelObj.update({"Room9": self.Room9})
- self.listOfRoomObj.append(self.Room9)
- self.gridLayout_7.addWidget(self.Room9, 9, 1, 1, 1)
- self.Online3 = QLabel_alterada(self.roomsBox)
- self.Online3.setFrameShape(QtWidgets.QFrame.StyledPanel)
- self.Online3.setAlignment(QtCore.Qt.AlignCenter)
- self.Online3.setObjectName("Online3")
- dictLabelObj.update({"Online3": self.Online3})
- self.listOfOnlineObj.append(self.Online3)
- self.gridLayout_7.addWidget(self.Online3, 3, 3, 1, 1)
- self.Connected10 = QLabel_alterada(self.roomsBox)
- self.Connected10.setFrameShape(QtWidgets.QFrame.StyledPanel)
- self.Connected10.setAlignment(QtCore.Qt.AlignCenter)
- self.Connected10.setObjectName("Connected10")
- dictLabelObj.update({"Connected0": self.Connected10})
- self.listOfConnectedObj.append(self.Connected10)
- self.gridLayout_7.addWidget(self.Connected10, 10, 2, 1, 1)
- self.Room6 = QLabel_alterada(self.roomsBox)
- self.Room6.setMinimumSize(QtCore.QSize(0, 20))
- self.Room6.setFrameShape(QtWidgets.QFrame.StyledPanel)
- self.Room6.setAlignment(QtCore.Qt.AlignCenter)
- self.Room6.setObjectName("Room6")
- dictLabelObj.update({"Room6": self.Room6})
- self.listOfRoomObj.append(self.Room6)
- self.gridLayout_7.addWidget(self.Room6, 6, 1, 1, 1)
- self.Room10 = QLabel_alterada(self.roomsBox)
- self.Room10.setMinimumSize(QtCore.QSize(0, 20))
- self.Room10.setFrameShape(QtWidgets.QFrame.StyledPanel)
- self.Room10.setAlignment(QtCore.Qt.AlignCenter)
- self.Room10.setObjectName("Room10")
- self.listOfRoomObj.append(self.Room10)
- dictLabelObj.update({"Room0": self.Room10})
- self.gridLayout_7.addWidget(self.Room10, 10, 1, 1, 1)
- self.Connected9 = QLabel_alterada(self.roomsBox)
- self.Connected9.setFrameShape(QtWidgets.QFrame.StyledPanel)
- self.Connected9.setAlignment(QtCore.Qt.AlignCenter)
- self.Connected9.setObjectName("Connected9")
- dictLabelObj.update({"Connected9": self.Connected9})
- self.listOfConnectedObj.append(self.Connected9)
- self.gridLayout_7.addWidget(self.Connected9, 9, 2, 1, 1)
- self.Online2 = QLabel_alterada(self.roomsBox)
- self.Online2.setFrameShape(QtWidgets.QFrame.StyledPanel)
- self.Online2.setAlignment(QtCore.Qt.AlignCenter)
- self.Online2.setObjectName("Online2")
- dictLabelObj.update({"Online2": self.Online2})
- self.listOfOnlineObj.append(self.Online2)
- self.gridLayout_7.addWidget(self.Online2, 2, 3, 1, 1)
- self.Room7 = QLabel_alterada(self.roomsBox)
- self.Room7.setMinimumSize(QtCore.QSize(0, 20))
- self.Room7.setFrameShape(QtWidgets.QFrame.StyledPanel)
- self.Room7.setAlignment(QtCore.Qt.AlignCenter)
- self.Room7.setObjectName("Room7")
- dictLabelObj.update({"Room7": self.Room7})
- self.listOfRoomObj.append(self.Room7)
- self.gridLayout_7.addWidget(self.Room7, 7, 1, 1, 1)
- self.Connected6 = QLabel_alterada(self.roomsBox)
- self.Connected6.setFrameShape(QtWidgets.QFrame.StyledPanel)
- self.Connected6.setAlignment(QtCore.Qt.AlignCenter)
- self.Connected6.setObjectName("Connected6")
- dictLabelObj.update({"Connected6": self.Connected6})
- self.listOfConnectedObj.append(self.Connected6)
- self.gridLayout_7.addWidget(self.Connected6, 6, 2, 1, 1)
- self.Room2 = QLabel_alterada(self.roomsBox)
- sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
- sizePolicy.setHorizontalStretch(0)
- sizePolicy.setVerticalStretch(0)
- sizePolicy.setHeightForWidth(self.Room2.sizePolicy().hasHeightForWidth())
- self.Room2.setSizePolicy(sizePolicy)
- self.Room2.setMinimumSize(QtCore.QSize(0, 20))
- self.Room2.setFrameShape(QtWidgets.QFrame.StyledPanel)
- self.Room2.setAlignment(QtCore.Qt.AlignCenter)
- self.Room2.setObjectName("Room2")
- dictLabelObj.update({"Room2": self.Room2})
- self.listOfRoomObj.append(self.Room2)
- self.gridLayout_7.addWidget(self.Room2, 2, 1, 1, 1)
- self.Connected7 = QLabel_alterada(self.roomsBox)
- self.Connected7.setFrameShape(QtWidgets.QFrame.StyledPanel)
- self.Connected7.setAlignment(QtCore.Qt.AlignCenter)
- self.Connected7.setObjectName("Connected7")
- dictLabelObj.update({"Connected7": self.Connected7})
- self.listOfConnectedObj.append(self.Connected7)
- self.gridLayout_7.addWidget(self.Connected7, 7, 2, 1, 1)
- self.RoomOnline = QtWidgets.QLabel(self.roomsBox)
- self.RoomOnline.setFrameShape(QtWidgets.QFrame.Panel)
- self.RoomOnline.setFrameShadow(QtWidgets.QFrame.Plain)
- self.RoomOnline.setAlignment(QtCore.Qt.AlignCenter)
- self.RoomOnline.setObjectName("RoomOnline")
- self.gridLayout_7.addWidget(self.RoomOnline, 0, 3, 1, 1)
- self.Connected3 = QLabel_alterada(self.roomsBox)
- self.Connected3.setFrameShape(QtWidgets.QFrame.StyledPanel)
- self.Connected3.setAlignment(QtCore.Qt.AlignCenter)
- self.Connected3.setObjectName("Connected3")
- dictLabelObj.update({"Connected3": self.Connected3})
- self.listOfConnectedObj.append(self.Connected3)
- self.gridLayout_7.addWidget(self.Connected3, 3, 2, 1, 1)
- self.Room1 = QLabel_alterada(self.roomsBox)
- sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
- sizePolicy.setHorizontalStretch(0)
- sizePolicy.setVerticalStretch(0)
- sizePolicy.setHeightForWidth(self.Room1.sizePolicy().hasHeightForWidth())
- self.Room1.setSizePolicy(sizePolicy)
- self.Room1.setMinimumSize(QtCore.QSize(80, 20))
- self.Room1.setFrameShape(QtWidgets.QFrame.StyledPanel)
- self.Room1.setFrameShadow(QtWidgets.QFrame.Plain)
- self.Room1.setMidLineWidth(0)
- self.Room1.setTextFormat(QtCore.Qt.AutoText)
- self.Room1.setAlignment(QtCore.Qt.AlignCenter)
- self.Room1.setWordWrap(False)
- self.Room1.setObjectName("Room1")
- dictLabelObj.update({"Room1": self.Room1})
- self.listOfRoomObj.append(self.Room1)
- self.gridLayout_7.addWidget(self.Room1, 1, 1, 1, 1)
- self.Online4 = QLabel_alterada(self.roomsBox)
- self.Online4.setFrameShape(QtWidgets.QFrame.StyledPanel)
- self.Online4.setAlignment(QtCore.Qt.AlignCenter)
- self.Online4.setObjectName("Online4")
- dictLabelObj.update({"Online4": self.Online4})
- self.listOfOnlineObj.append(self.Online4)
- self.gridLayout_7.addWidget(self.Online4, 4, 3, 1, 1)
- self.Online9 = QLabel_alterada(self.roomsBox)
- self.Online9.setFrameShape(QtWidgets.QFrame.StyledPanel)
- self.Online9.setAlignment(QtCore.Qt.AlignCenter)
- self.Online9.setObjectName("Online9")
- dictLabelObj.update({"Online9": self.Online9})
- self.listOfOnlineObj.append(self.Online9)
- self.gridLayout_7.addWidget(self.Online9, 9, 3, 1, 1)
- self.Online5 = QLabel_alterada(self.roomsBox)
- self.Online5.setFrameShape(QtWidgets.QFrame.StyledPanel)
- self.Online5.setAlignment(QtCore.Qt.AlignCenter)
- self.Online5.setObjectName("Online5")
- dictLabelObj.update({"Online5": self.Online5})
- self.listOfOnlineObj.append(self.Online5)
- self.gridLayout_7.addWidget(self.Online5, 5, 3, 1, 1)
- self.Connected8 = QLabel_alterada(self.roomsBox)
- self.Connected8.setFrameShape(QtWidgets.QFrame.StyledPanel)
- self.Connected8.setAlignment(QtCore.Qt.AlignCenter)
- self.Connected8.setObjectName("Connected8")
- dictLabelObj.update({"Connected8": self.Connected8})
- self.listOfConnectedObj.append(self.Connected8)
- self.gridLayout_7.addWidget(self.Connected8, 8, 2, 1, 1)
- self.RoomName = QtWidgets.QLabel(self.roomsBox)
- self.RoomName.setMinimumSize(QtCore.QSize(20, 0))
- self.RoomName.setFrameShape(QtWidgets.QFrame.Panel)
- self.RoomName.setAlignment(QtCore.Qt.AlignCenter)
- self.RoomName.setObjectName("RoomName")
- self.gridLayout_7.addWidget(self.RoomName, 0, 1, 1, 1)
- self.Connected1 = QLabel_alterada(self.roomsBox)
- self.Connected1.setMinimumSize(QtCore.QSize(80, 0))
- self.Connected1.setFrameShape(QtWidgets.QFrame.StyledPanel)
- self.Connected1.setAlignment(QtCore.Qt.AlignCenter)
- self.Connected1.setObjectName("Connected1")
- dictLabelObj.update({"Connected1": self.Connected1})
- self.listOfConnectedObj.append(self.Connected1)
- self.gridLayout_7.addWidget(self.Connected1, 1, 2, 1, 1)
- self.RoomConnected = QtWidgets.QLabel(self.roomsBox)
- self.RoomConnected.setMinimumSize(QtCore.QSize(0, 20))
- self.RoomConnected.setFrameShape(QtWidgets.QFrame.Panel)
- self.RoomConnected.setAlignment(QtCore.Qt.AlignCenter)
- self.RoomConnected.setObjectName("RoomConnected")
- self.gridLayout_7.addWidget(self.RoomConnected, 0, 2, 1, 1)
- self.Connected5 = QLabel_alterada(self.roomsBox)
- self.Connected5.setFrameShape(QtWidgets.QFrame.StyledPanel)
- self.Connected5.setAlignment(QtCore.Qt.AlignCenter)
- self.Connected5.setObjectName("Connected5")
- dictLabelObj.update({"Connected5": self.Connected5})
- self.listOfConnectedObj.append(self.Connected5)
- self.gridLayout_7.addWidget(self.Connected5, 5, 2, 1, 1)
- self.Online1 = QLabel_alterada(self.roomsBox)
- self.Online1.setMinimumSize(QtCore.QSize(80, 0))
- self.Online1.setFrameShape(QtWidgets.QFrame.StyledPanel)
- self.Online1.setAlignment(QtCore.Qt.AlignCenter)
- self.Online1.setObjectName("Online1")
- dictLabelObj.update({"Online1": self.Online1})
- self.listOfOnlineObj.append(self.Online1)
- self.gridLayout_7.addWidget(self.Online1, 1, 3, 1, 1)
- self.Room5 = QLabel_alterada(self.roomsBox)
- self.Room5.setMinimumSize(QtCore.QSize(0, 20))
- self.Room5.setFrameShape(QtWidgets.QFrame.StyledPanel)
- self.Room5.setAlignment(QtCore.Qt.AlignCenter)
- self.Room5.setObjectName("Room5")
- dictLabelObj.update({"Room5": self.Room5})
- self.listOfRoomObj.append(self.Room5)
- self.gridLayout_7.addWidget(self.Room5, 5, 1, 1, 1)
- self.Online6 = QLabel_alterada(self.roomsBox)
- self.Online6.setFrameShape(QtWidgets.QFrame.StyledPanel)
- self.Online6.setAlignment(QtCore.Qt.AlignCenter)
- self.Online6.setObjectName("Online6")
- dictLabelObj.update({"Online6": self.Online6})
- self.listOfOnlineObj.append(self.Online6)
- self.gridLayout_7.addWidget(self.Online6, 6, 3, 1, 1)
- self.PlaceHolder = QtWidgets.QLabel(self.roomsBox)
- self.PlaceHolder.setMinimumSize(QtCore.QSize(25, 20))
- self.PlaceHolder.setMaximumSize(QtCore.QSize(20, 20))
- self.PlaceHolder.setFrameShape(QtWidgets.QFrame.NoFrame)
- self.PlaceHolder.setLineWidth(0)
- self.PlaceHolder.setText("")
- self.PlaceHolder.setPixmap(QtGui.QPixmap("D:/untitled/Lan Chat/unnamed.png"))
- self.PlaceHolder.setScaledContents(True)
- self.PlaceHolder.setWordWrap(False)
- self.PlaceHolder.setObjectName("PlaceHolder")
- self.PlaceHolder.hide()
- self.gridLayout_7.addWidget(self.PlaceHolder, 0, 0, 1, 1)
- self.Private1 = QtWidgets.QLabel(self.roomsBox)
- self.Private1.setMaximumSize(QtCore.QSize(25, 20))
- self.Private1.setText("")
- self.Private1.setPixmap(QtGui.QPixmap("D:/untitled/Lan Chat/unnamed.png"))
- self.Private1.setScaledContents(True)
- self.Private1.setObjectName("Private1")
- dictLabelObj.update({"Private1":self.Private1})
- self.checkPrivate(self.Private1, 0)
- self.gridLayout_7.addWidget(self.Private1, 1, 0, 1, 1)
- self.Private2 = QtWidgets.QLabel(self.roomsBox)
- self.Private2.setMaximumSize(QtCore.QSize(25, 20))
- self.Private2.setText("")
- self.Private2.setPixmap(QtGui.QPixmap("D:/untitled/Lan Chat/unnamed.png"))
- self.Private2.setScaledContents(True)
- self.Private2.setObjectName("Private2")
- dictLabelObj.update({"Private2":self.Private2})
- self.checkPrivate(self.Private2, 1)
- self.gridLayout_7.addWidget(self.Private2, 2, 0, 1, 1)
- self.Private3 = QtWidgets.QLabel(self.roomsBox)
- self.Private3.setMaximumSize(QtCore.QSize(25, 20))
- self.Private3.setText("")
- self.Private3.setPixmap(QtGui.QPixmap("D:/untitled/Lan Chat/unnamed.png"))
- self.Private3.setScaledContents(True)
- self.Private3.setObjectName("Private3")
- dictLabelObj.update({"Private3":self.Private3})
- self.checkPrivate(self.Private3, 2)
- self.gridLayout_7.addWidget(self.Private3, 3, 0, 1, 1)
- self.Private4 = QtWidgets.QLabel(self.roomsBox)
- self.Private4.setMaximumSize(QtCore.QSize(25, 20))
- self.Private4.setText("")
- self.Private4.setPixmap(QtGui.QPixmap("D:/untitled/Lan Chat/unnamed.png"))
- self.Private4.setScaledContents(True)
- self.Private4.setObjectName("Private4")
- dictLabelObj.update({"Private4":self.Private4})
- self.checkPrivate(self.Private4, 3)
- self.gridLayout_7.addWidget(self.Private4, 4, 0, 1, 1)
- self.Private5 = QtWidgets.QLabel(self.roomsBox)
- self.Private5.setMaximumSize(QtCore.QSize(25, 20))
- self.Private5.setText("")
- self.Private5.setPixmap(QtGui.QPixmap("D:/untitled/Lan Chat/unnamed.png"))
- self.Private5.setScaledContents(True)
- self.Private5.setObjectName("Private5")
- dictLabelObj.update({"Private5":self.Private5})
- self.checkPrivate(self.Private5, 4)
- self.gridLayout_7.addWidget(self.Private5, 5, 0, 1, 1)
- self.Private6 = QtWidgets.QLabel(self.roomsBox)
- self.Private6.setMaximumSize(QtCore.QSize(25, 20))
- self.Private6.setText("")
- self.Private6.setPixmap(QtGui.QPixmap("D:/untitled/Lan Chat/unnamed.png"))
- self.Private6.setScaledContents(True)
- self.Private6.setObjectName("Private6")
- dictLabelObj.update({"Private6":self.Private6})
- self.checkPrivate(self.Private6, 5)
- self.gridLayout_7.addWidget(self.Private6, 6, 0, 1, 1)
- self.Private7 = QtWidgets.QLabel(self.roomsBox)
- self.Private7.setMaximumSize(QtCore.QSize(25, 20))
- self.Private7.setText("")
- self.Private7.setPixmap(QtGui.QPixmap("D:/untitled/Lan Chat/unnamed.png"))
- self.Private7.setScaledContents(True)
- self.Private7.setObjectName("Private7")
- dictLabelObj.update({"Private7":self.Private7})
- self.checkPrivate(self.Private7, 6)
- self.gridLayout_7.addWidget(self.Private7, 7, 0, 1, 1)
- self.Private8 = QtWidgets.QLabel(self.roomsBox)
- self.Private8.setMaximumSize(QtCore.QSize(25, 20))
- self.Private8.setText("")
- self.Private8.setPixmap(QtGui.QPixmap("D:/untitled/Lan Chat/unnamed.png"))
- self.Private8.setScaledContents(True)
- self.Private8.setObjectName("Private8")
- dictLabelObj.update({"Private8":self.Private8})
- self.checkPrivate(self.Private8, 7)
- self.gridLayout_7.addWidget(self.Private8, 8, 0, 1, 1)
- self.Private9 = QtWidgets.QLabel(self.roomsBox)
- self.Private9.setMaximumSize(QtCore.QSize(25, 20))
- self.Private9.setText("")
- self.Private9.setPixmap(QtGui.QPixmap("D:/untitled/Lan Chat/unnamed.png"))
- self.Private9.setScaledContents(True)
- self.Private9.setObjectName("Private9")
- dictLabelObj.update({"Private9":self.Private9})
- self.checkPrivate(self.Private9, 8)
- self.gridLayout_7.addWidget(self.Private9, 9, 0, 1, 1)
- self.Private10 = QtWidgets.QLabel(self.roomsBox)
- self.Private10.setMaximumSize(QtCore.QSize(25, 20))
- self.Private10.setText("")
- self.Private10.setPixmap(QtGui.QPixmap("D:/untitled/Lan Chat/unnamed.png"))
- self.Private10.setScaledContents(True)
- self.Private10.setObjectName("Private10")
- dictLabelObj.update({"Private0":self.Private10})
- self.checkPrivate(self.Private10, 9)
- self.gridLayout_7.addWidget(self.Private10, 10, 0, 1, 1)
- self.gridLayout_8.addLayout(self.gridLayout_7, 0, 0, 1, 1)
- self.formLayout_3.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.roomsBox)
- self.scrollArea.setWidget(self.scrollAreaWidgetContents)
- self.gridLayout.addWidget(self.scrollArea, 0, 0, 1, 1)
- aviableRooms.setCentralWidget(self.centralwidget)
- self.menubar = QtWidgets.QMenuBar(aviableRooms)
- self.menubar.setGeometry(QtCore.QRect(0, 0, 300, 21))
- self.menubar.setObjectName("menubar")
- aviableRooms.setMenuBar(self.menubar)
- self.statusbar = QtWidgets.QStatusBar(aviableRooms)
- self.statusbar.setObjectName("statusbar")
- aviableRooms.setStatusBar(self.statusbar)
- self.BACK.clicked.connect(lambda: self.cancelBtn(aviableRooms))
- self.retranslateUi(aviableRooms)
- QtCore.QMetaObject.connectSlotsByName(aviableRooms)
- self.assignColorLabels()
- # CLICK LABELS CONNECTS -----------------------------
- self.Room1.clicked.connect(partial(self.Clic, 1))
- self.Room2.clicked.connect(partial(self.Clic, 2))
- self.Room3.clicked.connect(partial(self.Clic, 3))
- self.Room4.clicked.connect(partial(self.Clic, 4))
- self.Room5.clicked.connect(partial(self.Clic, 5))
- self.Room6.clicked.connect(partial(self.Clic, 6))
- self.Room7.clicked.connect(partial(self.Clic, 7))
- self.Room8.clicked.connect(partial(self.Clic, 8))
- self.Room9.clicked.connect(partial(self.Clic, 9))
- self.Room10.clicked.connect(partial(self.Clic, 10))
- self.Connected1.clicked.connect(partial(self.Clic, 1))
- self.Connected2.clicked.connect(partial(self.Clic, 2))
- self.Connected3.clicked.connect(partial(self.Clic, 3))
- self.Connected4.clicked.connect(partial(self.Clic, 4))
- self.Connected5.clicked.connect(partial(self.Clic, 5))
- self.Connected6.clicked.connect(partial(self.Clic, 6))
- self.Connected7.clicked.connect(partial(self.Clic, 7))
- self.Connected8.clicked.connect(partial(self.Clic, 8))
- self.Connected9.clicked.connect(partial(self.Clic, 9))
- self.Connected10.clicked.connect(partial(self.Clic, 10))
- self.Online1.clicked.connect(partial(self.Clic, 1))
- self.Online2.clicked.connect(partial(self.Clic, 2))
- self.Online3.clicked.connect(partial(self.Clic, 3))
- self.Online4.clicked.connect(partial(self.Clic, 4))
- self.Online5.clicked.connect(partial(self.Clic, 5))
- self.Online6.clicked.connect(partial(self.Clic, 6))
- self.Online7.clicked.connect(partial(self.Clic, 7))
- self.Online8.clicked.connect(partial(self.Clic, 8))
- self.Online9.clicked.connect(partial(self.Clic, 9))
- self.Online10.clicked.connect(partial(self.Clic, 10))
- #def rightClick(self, rowNum):
- def cancelBtn(self, aviableRooms):
- aviableRooms.close()
- MainWindow.show()
- def Clic(self,rowNum, click):
- name = self.dictLabelNames[str(rowNum)]
- if name == "N/A":
- pass
- else:
- if click == "Single":
- pass
- elif click == "Double":
- if self.isPrivateRoom[int(rowNum)-1] == "yes":
- self.pRoom = QtWidgets.QMainWindow()
- self.ui = Ui_pRoom()
- self.ui.setupUi(self.pRoom,name)
- self.pRoom.show()
- else:
- pass
- else:
- pass
- # ROOMS
- def hi(self):
- print("AAAAAAAAAAAA")
- def retranslateUi(self, aviableRooms):
- _translate = QtCore.QCoreApplication.translate
- aviableRooms.setWindowTitle(_translate("aviableRooms", "MainWindow"))
- self.Online8.setText(_translate("aviableRooms", ""))
- self.Connected4.setText(_translate("aviableRooms", ""))
- self.Online10.setText(_translate("aviableRooms", ""))
- self.Room4.setText(_translate("aviableRooms", self.roomN4))
- self.Online7.setText(_translate("aviableRooms", ""))
- self.Connected2.setText(_translate("aviableRooms", ""))
- self.Room8.setText(_translate("aviableRooms", self.roomN8))
- self.Room3.setText(_translate("aviableRooms", self.roomN3))
- self.Room9.setText(_translate("aviableRooms", self.roomN9))
- self.Online3.setText(_translate("aviableRooms", ""))
- self.Connected10.setText(_translate("aviableRooms", ""))
- self.Room6.setText(_translate("aviableRooms", self.roomN6))
- self.Room10.setText(_translate("aviableRooms", self.roomN10))
- self.Connected9.setText(_translate("aviableRooms", ""))
- self.Online2.setText(_translate("aviableRooms", ""))
- self.Room7.setText(_translate("aviableRooms", self.roomN7))
- self.Connected6.setText(_translate("aviableRooms", ""))
- self.Room2.setText(_translate("aviableRooms", self.roomN2))
- self.Connected7.setText(_translate("aviableRooms", ""))
- self.RoomOnline.setText(_translate("aviableRooms", "Room Status"))
- self.Connected3.setText(_translate("aviableRooms", ""))
- self.Room1.setText(_translate("aviableRooms", self.roomN1))
- self.Online4.setText(_translate("aviableRooms", ""))
- self.Online9.setText(_translate("aviableRooms", ""))
- self.Online5.setText(_translate("aviableRooms", ""))
- self.Connected8.setText(_translate("aviableRooms", ""))
- self.RoomName.setText(_translate("aviableRooms", "Room Name"))
- self.Connected1.setText(_translate("aviableRooms", "2"))
- self.RoomConnected.setText(_translate("aviableRooms", "Members Online"))
- self.Connected5.setText(_translate("aviableRooms", ""))
- self.Online1.setText(_translate("aviableRooms", "Active"))
- self.Room5.setText(_translate("aviableRooms", self.roomN5))
- self.Online6.setText(_translate("aviableRooms", ""))
- self.BACK.setText(_translate("aviableRooms", "Go Back"))
- class Ui_MainWindow(object):
- def setupUi(self, MainWindow):
- MainWindow.setObjectName("MainWindow")
- MainWindow.resize(500, 150)
- MainWindow.setMinimumSize(QtCore.QSize(500, 150))
- MainWindow.setMaximumSize(QtCore.QSize(500, 150))
- self.centralwidget = QtWidgets.QWidget(MainWindow)
- self.centralwidget.setObjectName("centralwidget")
- self.gridLayout = QtWidgets.QGridLayout(self.centralwidget)
- self.gridLayout.setObjectName("gridLayout")
- self.label = QtWidgets.QLabel(self.centralwidget)
- self.label.setObjectName("label")
- self.gridLayout.addWidget(self.label, 0, 0, 1, 1)
- self.buttonCreate = QtWidgets.QPushButton(self.centralwidget)
- self.buttonCreate.setObjectName("buttonCreate")
- self.gridLayout.addWidget(self.buttonCreate, 1, 1, 1, 1)
- self.buttonRooms = QtWidgets.QPushButton(self.centralwidget)
- self.buttonRooms.setObjectName("buttonRooms")
- self.gridLayout.addWidget(self.buttonRooms, 1, 0, 1, 1)
- self.buttonPrivate = QtWidgets.QPushButton(self.centralwidget)
- self.buttonPrivate.setObjectName("buttonPrivate")
- self.gridLayout.addWidget(self.buttonPrivate, 1, 2, 1, 1)
- MainWindow.setCentralWidget(self.centralwidget)
- self.menubar = QtWidgets.QMenuBar(MainWindow)
- self.menubar.setGeometry(QtCore.QRect(0, 0, 500, 21))
- self.menubar.setObjectName("menubar")
- MainWindow.setMenuBar(self.menubar)
- self.statusbar = QtWidgets.QStatusBar(MainWindow)
- self.statusbar.setObjectName("statusbar")
- MainWindow.setStatusBar(self.statusbar)
- self.retranslateUi(MainWindow)
- QtCore.QMetaObject.connectSlotsByName(MainWindow)
- self.buttonRooms.clicked.connect(self.avaibleRoomsWindow)
- self.buttonPrivate.clicked.connect(self.chatWindowPop)
- self.buttonCreate.clicked.connect(self.createRoomPop)
- def chatWindowPop(self):
- self.IpAddressCheck = QtWidgets.QMainWindow()
- self.ui = Ui_IpAddressCheck()
- self.ui.setupUi(self.IpAddressCheck)
- self.IpAddressCheck.show()
- def createRoomPop(self):
- self.createRoomWindow = QtWidgets.QMainWindow()
- self.ui = Ui_createRoomWindow()
- self.ui.setupUi(self.createRoomWindow)
- self.createRoomWindow.show()
- MainWindow.hide()
- def avaibleRoomsWindow(self):
- self.Loader = QtWidgets.QMainWindow()
- self.ui = Ui_Loader()
- self.ui.setupUi(self.Loader)
- self.Loader.show()
- MainWindow.hide()
- def retranslateUi(self, MainWindow):
- _translate = QtCore.QCoreApplication.translate
- MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
- self.label.setText(_translate("MainWindow", "COMPANY NAME LAN CHAT"))
- self.buttonCreate.setText(_translate("MainWindow", "Create a chat room"))
- self.buttonRooms.setText(_translate("MainWindow", "See avaible chat rooms"))
- self.buttonPrivate.setText(_translate("MainWindow", "Private chat session"))
- def backEndConnection():
- global msg
- global user
- global sendMsg
- user = queue.Queue()
- msg = queue.Queue()
- sendMsg = queue.Queue()
- HEADER_LENGTH = 10
- IP = "127.0.0.1"
- PORT = 4040
- my_username = "Kyand"
- client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- client_socket.connect((IP, PORT))
- client_socket.setblocking(False)
- username = my_username.encode('utf-8')
- username_header = f"{len(username):<{HEADER_LENGTH}}".encode('utf-8')
- client_socket.send(username_header + username)
- while True:
- message = ""
- if sendMsg.empty():
- pass
- else:
- message = sendMsg.get()
- if message:
- message = message.encode('utf-8')
- message_header = f"{len(message):<{HEADER_LENGTH}}".encode('utf-8')
- client_socket.send(message_header + message)
- try:
- while True:
- username_header = client_socket.recv(HEADER_LENGTH)
- if not len(username_header):
- #print('Connection closed by the server')
- sys.exit()
- username_length = int(username_header.decode('utf-8').strip())
- username = client_socket.recv(username_length).decode('utf-8')
- user.put(username)
- message_header = client_socket.recv(HEADER_LENGTH)
- message_length = int(message_header.decode('utf-8').strip())
- message = client_socket.recv(message_length).decode('utf-8')
- msg.put(message)
- #print(f'{"oof"} > {"oof"}')
- except IOError as e:
- if e.errno != errno.EAGAIN and e.errno != errno.EWOULDBLOCK:
- #print('Reading error: {}'.format(str(e)))
- sys.exit()
- continue
- except Exception as e:
- #print('Reading error: '.format(str(e)))
- sys.exit()
- if __name__ == "__main__":
- import sys
- app = QtWidgets.QApplication(sys.argv)
- MainWindow = QtWidgets.QMainWindow()
- ui = Ui_MainWindow()
- ui.setupUi(MainWindow)
- MainWindow.show()
- sys.exit(app.exec_())
- #socketThread = threading.Thread(target=backEndConnection)
- #socketThread.start()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement