0
誰でもこのコードを教えてもらえますか?このプログラムにP2Pチャットコードを追加するにはどうすればよいですか? 私はLANこのアプリのQtソケットコードを追加して2台のPC間のチャットを可能にする
import sys, os
import socket
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import (QApplication, QMainWindow, QWidget,
QLineEdit, QFileDialog, QInputDialog, QFileDialog,QMessageBox, QMenuBar)
from PyQt5.QtGui import QIcon
from PyQt5.Qt import QPushButton, QTextEdit, QMessageBox
class myApp (QMainWindow):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.main_text = QtWidgets.QTextEdit(self)
self.send_box = QtWidgets.QLineEdit(self)
self.connect_btn = QtWidgets.QPushButton('Connect', self)
self.browse_btn = QtWidgets.QPushButton('Browse',self)
ip_add_box = QtWidgets.QLineEdit(self)
port_box = QtWidgets.QLineEdit(self)
self.main_text.setGeometry(25, 30, 360, 350)
self.send_box.setGeometry(25, 400, 360, 60)
ip_add_box.setGeometry(25, 530, 150, 30)
port_box.setGeometry(180, 530, 90,30)
self.connect_btn.setGeometry(25, 500, 70, 25)
self.browse_btn.setGeometry(100,500,70,25)
self.setGeometry(200,100,400,580)
self.setWindowTitle('My Application')
self.setWindowIcon(QIcon('icon.png'))
# CODE BLOCK FOR EVENTS
self.send_box.returnPressed.connect(self.sendData) # EnterPressed Event for SendBox LineEdit
self.connect_btn.clicked.connect(self.connectNet) # Socket Connect event for the connect Button
self.browse_btn.clicked.connect(self.BrowseFile) # Browse file connect event for Browse Button
self.show()
def sendData(self):
self.main_text.append(self.send_box.text())
self.send_box.clear()
def connectNet(self):
host = 'localhost'
port = 12345
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_address = (host, port)
print ("Connecting to %s port %s" % server_address)
sock.connect(server_address)
try:
message = "Test message. This will be echoed"
print ("Sending %s" % message)
sock.sendall(message)
# Look for the response
amount_received = 0
amount_expected = len(message)
while amount_received < amount_expected:
data = sock.recv(16)
amount_received += len(data)
print ("Received: %s" % data)
finally:
print ("Closing connection to the server")
sock.close()
def BrowseFile (self):
filePath = QtWidgets.QFileDialog.getOpenFileName(self)
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = myApp()
sys.exit(app.exec_())
@eyllanesc お願いします。 – Sabawoon
明白なコードの書式が間違っていたのを修正しました。 –
これを確認してください:http://doc.qt.io/qt-5/qtnetwork-network-chat-example.html – eyllanesc