簡體   English   中英

在xpnative主題中更改ttk.Progressbar元素的顏色-python

[英]changing colour of ttk.Progressbar elements in the xpnative theme - python

我正在使用python 2.7和TK來制作一個gui,該gui可以訪問文本文件並使用其中的數據來完成許多事情,但是此處涉及的一個是發送gchat消息。 目前,我可以正常工作了,需要幫助的地方是調用模塊發送消息時,消息可以完美發送,盡管我希望用戶可以指示該過程正在發生,所以我創建了一個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()

您的第一個問題有點模棱兩可,因為我不確定您是在談論控制進度條的外觀還是所顯示進度的性質。

進度條的性質是通過其值和其mode選項控制的( determinate進度條與indeterminate的進度條不同;前者是通過value控制的,后者只是表明“正在發生”)。

進度條的外觀由整體主題控制。 在Windows和Mac OS X上,默認主題是system主題,這意味着進度條將看起來是本地的, 無論是什么 我最近沒有在Linux上嘗試過主題,所以我忘記了那里的主題。 切換主題:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM