改变ttk.Progressbar元素的颜色在xpnative主题 - 蟒蛇(changing co

2019-08-02 03:41发布

我使用的Python 2.7和TK,使它访问的文本文件,并在其中使用数据做很多事情鬼,但这里的一个相关的发送Google即时通讯消息。 目前,我所拥有的一切工作,我需要一些帮助的一点是,当我打电话给我的模块发送消息,该消息被完全发送,但我希望用户拥有的过程中发生的指示,所以我创建了一个TTK 。进度条。 但有几件事情,我想改善这一点:

1)我想改变实际栏的外观,在查看源文件,我看不到任何选项,当我用Google搜索的问题,我能找到的唯一的解决方法是改变的源代码,我可以肯定,当我跑的文件,这将只能改变它,那么当用户运行它,它会是标准? 最好,我想酒吧是透明的,尽管蓝会的工作,我已经看到有蓝色的窗口机的状态有些人,窗户是我最关心的,所以如果我能得到说,在窗口蓝色的,但本地其他地方,这将是罚款。

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()

Answer 1:

你的第一个问题是有些模棱两可,因为我不知道你是否在谈论控制进度条的外观或它显示进度的性质。

进度条的本质是通过它的价值和它的控制mode选择( determinate进度条来自不同indeterminate的人;前者是通过控制value ,后者只是表明“事情正在发生”)。

进度条的外观是由总主题进行控制。 在Windows和Mac OS X,默认的主题是系统主题意味着进度条会显得人, 不管它是什么 。 我没有在Linux上的主题最近尝试让我忘记了自己的样子存在; 切换主题有:

# Switch to the included 'clam' theme
s = ttk.Style()
s.theme_use('clam')


文章来源: changing colour of ttk.Progressbar elements in the xpnative theme - python