Qt状态栏颜色

2 python qt qstatusbar

我正在使用Qt和Python,我有一个主窗口,底部有状态栏.我可以使用QLabel在栏中显示消息,并使用类似于"<font color=\"green\">In progress</font>"QLabel文本的内容设置该消息的颜色.

我还想在状态栏中添加一条临时消息,并为该消息指定一种颜色.但是因为这次不是QLabel(我使用的是QStatusBar :: showMessage只需要一个QString)我不能再改变颜色了.上面的标签无法识别,整个字符串"<font color=\"green\">In progress</font>"显示为灰色.

有没有人有任何想法?

tra*_*nic 7

要设置QStatusBar的背景或文本颜色,请在显示消息之前更改它的styleSheet:

    self.status.setStyleSheet("QStatusBar{padding-left:8px;background:rgba(255,0,0,255);color:black;font-weight:bold;}")
    self.status.showMessage("Error Cannot determine filepath", msecs= 5000)
Run Code Online (Sandbox Code Playgroud)

在init上,将QStatusBar的messageChanged(QString)连接到statusChanged()函数.

    def statusChanged(self, args):
        '''If there are no arguments (the message is being removed) 
        change the background back to transparent/ text back to black'''
        if not args:
            self.status.setStyleSheet("QStatusBar{padding-left:8px;background:rgba(0,0,0,0);color:black;font-weight:bold;}") 
Run Code Online (Sandbox Code Playgroud)

Ť


Kar*_*zak 4

不幸的是,不支持富文本格式。很久以前,这甚至被报道为功能请求,但似乎没有得到足够的重视。QStatusBar::showMessage()

我认为最好的选择是坚持使用纯文本消息或直接操纵现有消息 QLabel。这需要一些额外的工作来处理临时状态更改,因此您可以决定是否值得这样做。