我正在使用python 2.7和TK制作一个访问文本文件并使用其中的数据来执行许多操作的gui,但这里的相关内容是发送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()
答案 0 :(得分:-1)
你的第一个问题有点含糊不清,因为我不确定你是在谈论控制进度条的外观还是显示进度的性质。
进度条的性质由其值控制,其mode
选项(determinate
进度条与indeterminate
进度条不同;前者通过{{1}控制},后者只是表明“事情正在发生”。)
进度条的外观由整体主题控制。在Windows和Mac OS X上,默认主题是系统主题,意味着进度条看起来是原生的,无论是。我最近没有尝试过关于Linux的主题,所以我忘记了它们的样子;切换主题:
value