Çözüldü Python Tkinter chat programı belirli mesajın özelliklerini değiştirme

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

Lykoss

Decapat
Katılım
23 Mayıs 2021
Mesajlar
957
Çözümler
6
Daha fazla  
Cinsiyet
Erkek
Meslek
Öğrenci
Merhabalar. Alttaki sen yazan kısmın rengini ve konumunu değiştirmek istiyorum. Nasıl yapabilirim?



1662494649017.png


Python:
from socket import *
from threading import *
from tkinter import *

client = socket(AF_INET, SOCK_STREAM)
ip = '127.0.0.1'
port = 55555

client.connect((ip, port))


pencere = Tk()
pencere.geometry("1280x800")
pencere.title('Bağlandı :' + ip + ":" + str(port))


messages = Text(pencere, width=130, height=34)
messages.grid(row=0, column=0, padx=10, pady=10)

yourMessage = Entry(pencere, width=173, fg="green")
yourMessage.insert(0, 'İsminiz')
yourMessage.grid(row=2, column=0, padx=10, pady=10)
yourMessage.focus()
yourMessage.selection_range(0, END)


def sendMessage():
    clientMessage = yourMessage.get()
    messages.insert(END, '\n' + 'Sen: ' + clientMessage)#bunun rengini ve konumunu değiştirmek istiyorum
    client.send(clientMessage.encode('utf8'))
    yourMessage.delete(0, END)

bmessageGonder = Button(pencere, text='Gönder', width=20, height=3, command=sendMessage)
bmessageGonder.grid(row=3, padx=1, pady=10)

def recvMessage():
    while True:
        serverMessage = client.recv(1024).decode('utf8')
        messages.insert(END, '\n' + serverMessage)

recvThread = Thread(target=recvMessage)
recvThread.daemon = True
recvThread.start()

pencere.mainloop()
 
Çözüm
Şu kodu messages.grid kodunun altına ekleyin.
Arkaplan ve text rengini kendiniz ayarlayabilirsiniz.
Python:
messages.tag_config('sen_color', background="yellow", foreground="red")

Şu kodu değiştirin:
Python:
messages.insert(END, '\n' + 'Sen: ' + clientMessage, 'sen_color')

Konum olarak tam nasıl değiştirmek istiyorsunuz?
Şu kodu messages.grid kodunun altına ekleyin.
Arkaplan ve text rengini kendiniz ayarlayabilirsiniz.
Python:
messages.tag_config('sen_color', background="yellow", foreground="red")

Şu kodu değiştirin:
Python:
messages.insert(END, '\n' + 'Sen: ' + clientMessage, 'sen_color')

Konum olarak tam nasıl değiştirmek istiyorsunuz?
 
Çözüm
Şu kodu messages. Grid kodunun altına ekleyin.
Arka plan ve text rengini kendiniz ayarlayabilirsiniz.
Python:
messages.tag_config('sen_color', background="yellow", foreground="red")

Şu kodu değiştirin:
Python:
messages.insert(END, '\n' + 'Sen: ' + clientMessage, 'sen_color')

Konum olarak tam nasıl değiştirmek istiyorsunuz?

Konumu hallettim hocam. " sen" yaptım. Boşluk koydum WhatsApp'daki gibi bizim mesajlarımız sağ tarafta. Teşekkürler.

@Maxtoric peki hocam enter tuşuna basınca mesaj göndermeyi nasıl yapabilirim?
 
Son düzenleme:
Konumu hallettim hocam. " sen" yaptım. Boşluk koydum WhatsApp'daki gibi bizim mesajlarımız sağ tarafta. Teşekkürler.

@Maxtoric peki hocam enter tuşuna basınca mesaj göndermeyi nasıl yapabilirim?
Bilmiyorum hocam. Stacked overwolf sitesinde aratmayı deneyin. Tkinter enter key vs. yazın. Evde olmadığım için sizin için araştıramıyorum
 
@Maxtoric hocam pencerenin boyutu küçüldükçe veya büyüdükçe pencerenin içindeki neslerin de ona göre büyüyüp küçülmesini nasıl ayarlarım?
 
@Maxtoric hocam pencerenin boyutu küçüldükçe veya büyüdükçe pencerenin içindeki neslerin de ona göre büyüyüp küçülmesini nasıl ayarlarım?
grid kodunun parantez içine sticky="NSEW" yazın. Ondan önce şunları ekleyin;

Python:
Grid.rowconfigure(pencere,0,weight=1)
Grid.columnconfigure(pencere,0,weight=1)

Buton için ;

Python:
bmessageGonder = Button(pencere, text='Gönder', width=20, height=3)
bmessageGonder.grid(row=3, padx=1, pady=10, sticky="NSEW")

Kurcalayarak kendinize göre yapabilirsiniz.
 
Grid kodunun parantez içine sticky="nsew" yazın. Ondan önce şunları ekleyin;

Python:
Grid.rowconfigure(pencere,0,weight=1)
Grid.columnconfigure(pencere,0,weight=1)

Buton için;

Python:
bmessageGonder = Button(pencere, text='Gönder', width=20, height=3)
bmessageGonder.grid(row=3, padx=1, pady=10, sticky="NSEW")

Kurcalayarak kendinize göre yapabilirsiniz.

Nesnelerin konumları değişiyor.

1662556641145.png


Konum olarak bu hale nasıl getirebilirim?

1662556789617.png

Böyle ortalanıyor
 
Grid.rowconfigure(pencere,0,weight=0) Grid.columnconfigure(pencere,0,weight=0)
Böyle yapınca istediğim konuma geliyor ama küçülme büyüme olayı olmuyor.
1662568245791.png


Bu şekilde oluyor bende ellemeden. Ortalanınca daha iyi oluyor zaten neden ortalamak istemiyorsunuz?

Grid.rowconfigure(pencere,0,weight=0) Grid.columnconfigure(pencere,0,weight=0)
Böyle yapınca istediğim konuma geliyor ama küçülme büyüme olayı olmuyor.
Python:
messages.grid(row=0, column=0, padx=10, pady=10)

Bu koddaki sayıları değiştirmeyi deneyin.
 
Son düzenleme:

Technopat Haberler

Geri
Yukarı