python - 制作看起来像苹果窗口的基于 tkinter 的聊天的困难
问题描述
我在制作圆形按钮并使其看起来不错时遇到了麻烦。
我需要帮助来尝试制作一个看起来尽可能接近苹果窗口(mac os)的 tkinter 聊天。我已经在另一个文件上完成了所有套接字,我只需要让它看起来更好。到目前为止,这是我的代码:
from tkinter import *
import tkinter as tk
root=Tk()
root.title('Chat server')
root.geometry("600x600")
#####
####
person = input('Who are you chatting with: ')
label = Label (root, text='Chat with ' + person )
label.grid(row=2,column=1)
frame=Frame(root, width=600, height=600, bg='blue')
frame.grid(row=3,column=1)
root.mainloop()
如果你想要套接字代码:
服务器:
import socket
from tkinter import *
root=Tk()
root.title('Chat server')
root.geometry("600x600")
frame=Frame(root, width=600, height=200, bg='blue')
s=socket.socket()
print('Socket created')
port=12345
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR,1)
s.bind(('',port))
print("socket bound to %s" %(port))
history=[]
while True:
s.listen(5)
print("socket is listening")
while True:
g, addr = s.accept()
print('Got connection from', addr)
print('Connected')
break
while True:
x = input('Friend: ')
g.send(x.encode())
data = g.recv(1024)
history.append[data]
print("Friend: ", repr(data))
root.mainloop()
继承人客户:
# client.py
import socket
host='192.168.1.17' # server side ip address
port=12345
print('Finding...')
s=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((host,port))
while 1:
message=input("Say something to Friend: : ")
s.send(message.encode())
data = s.recv(1024)
print('Friend: ', repr(data))
s.close()
解决方案
因此,据我所知,Tkinter 使用可用操作系统的默认皮肤。所以当你在mac上运行你的python代码时,它看起来更接近MacOs、IOs。但是,您可以将自定义图形放在按钮等上并“伪造”MacOS 外观。看看这个 Stackoverflow 答案:
推荐阅读
- java - Spring Batch PathMatchingResourcePatternResolver.getResources() 不适用于 https url
- asp.net-core-mvc - 将授权策略应用于整个控制器时忽略消费属性
- javascript - Nuxt/Vue - 缩放内容以适应父 div
- flutter - 颤振标题不会改变
- python-3.x - 将多个文件从云存储加载到不同表中的大查询
- vba - PowerPoint vba 使用形状对象而不是形状名称对形状进行分组
- sql - 尝试通过 EntityManager 执行具有多个 CREATE VIEW 语句的脚本时出现 SQL 语法错误
- javascript - 使用 for...in 循环时如何中断递归
- flutter - 如何在富文本中获得一些空间?
- json - 为什么 JSON 不能容忍最后一个元素后面的逗号?