Я использую python 2.7 и TK для создания графического интерфейса, который обращается к текстовым файлам и использует содержащиеся в них данные для выполнения многих задач, но здесь уместно отправить сообщение gchat. В настоящее время у меня все работает, мне нужна помощь, когда я вызываю свой модуль для отправки сообщения, сообщение отправляется отлично, хотя я хотел, чтобы пользователь имел указание на происходящий процесс, поэтому я создал ttk .индикатор. но есть несколько вещей, которые я хотел бы улучшить в этом:
1) Я хотел бы изменить внешний вид фактической панели, при просмотре исходных файлов я не видел никаких вариантов, и когда я погуглил проблему, единственное решение, которое я смог найти, это изменить исходный код, я почти уверен, что это изменит его только при запуске с моими файлами, тогда, когда пользователь запустит его, это будет стандарт? предпочтительно, я бы хотел, чтобы панель была прозрачной, хотя синий цвет будет работать, я видел, как некоторые люди имеют синий цвет в качестве состояния в оконных машинах, окна - моя главная забота, поэтому, если бы я мог сказать, синий в окнах, но родной в другом месте, это было бы хорошо.
2) этот, надеюсь, немного проще, но когда кнопка нажата, она принимает значения из пользовательского ввода, которые все еще могут быть изменены, возможно, изменяя результат функции, есть ли способ остановить весь ввод в окно tk, затем возобновить после завершения функции?
ниже то, что у меня есть до сих пор, спасибо за помощь
self.progressbar = ttk.Progressbar(self.gcTableButtonsFrame, length = 70, orient=HORIZONTAL, mode ='determinate')
self.progressbar.grid(column = 0, row = 0, sticky = 'n s')
#we then pass through the extension and the string 'test' through this fnction from the gchat module which will then send a
#gchat message to the extension passed through
self.bytes = 0
self.maxbytes = 0
self.start()
self.t = thread.start_new_thread(gchat.sendGChatMessage,(text, "test"))
except IndexError:
tkMessageBox.showinfo("Invalid Entry", "Please first select an Entry to send to")
def start(self):
self.progressbar["value"] = 0
self.maxbytes = 50000
self.progressbar["maximum"] = 50000
self.read_bytes()
def read_bytes(self):
'''simulate reading 500 bytes; update progress bar'''
selection2 = self.gcTable.selection()
self.bytes += 700
self.progressbar["value"] = self.bytes
if self.bytes < self.maxbytes:
# read more bytes after 100 ms
Tk.after(self.mainPyWindow, 100, self.read_bytes)
else:
tkMessageBox.showinfo("Message Sent", "A GChat message has been sent to " + self.gcTable.item(selection2, 'values')[1])
self.progressbar.destroy()