Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt 如何在QStatusBar中获取彩色瞬态消息?_Qt_Colors_Message_Qstatusbar - Fatal编程技术网

Qt 如何在QStatusBar中获取彩色瞬态消息?

Qt 如何在QStatusBar中获取彩色瞬态消息?,qt,colors,message,qstatusbar,Qt,Colors,Message,Qstatusbar,我需要对Qt5.5应用程序状态栏中闪烁的消息进行颜色编码 我使用的showMessage如下所示: ui->statusBar->showMessage("My Message", 5000); 我想更改单个邮件的颜色。 我发现除了子类化QStatusBar和重写showMessage()之外没有其他方法。 我真的需要这种侵入性的改变吗 我尝试使用富文本,大致如下: ui->statusBar->showMessage(QString("<html><

我需要对Qt5.5应用程序状态栏中闪烁的消息进行颜色编码

我使用的showMessage如下所示:

ui->statusBar->showMessage("My Message", 5000);
我想更改单个邮件的颜色。 我发现除了子类化QStatusBar和重写showMessage()之外没有其他方法。 我真的需要这种侵入性的改变吗

我尝试使用富文本,大致如下:

ui->statusBar->showMessage(QString("<html><head/><body><p style=\"color:red\">%1</p></body></html>").arg("My Message"));
ui->statusBar->showMessage(QString(“

%1

”).arg(“我的消息”);
但它似乎无法识别(打印标签)

更改调色板或设置样式表将不限于当前消息


我还可以尝试什么?

如何在QStatusBar中获取彩色瞬态消息

更改调色板或设置样式表将不限于当前 信息

更改样式表并不一定适用于程序中的所有小部件。您完全可以限制样式表的范围

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QTimer>

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    // the stylesheet can be applied within ui->statusBar hierarchy of 
    // objects, but you can make it even more narrow scope as
    // ui->statusBar->setStyleSheet("QStatusBar{color:red}") if needed
    ui->statusBar->setStyleSheet("color: red");
    ui->statusBar->showMessage("Text!");

    QTimer::singleShot(2000, this, SLOT(tryAnotherColor()));
}

void MainWindow::tryAnotherColor()
{
    ui->statusBar->setStyleSheet("color: blue");
    ui->statusBar->showMessage("More Text!");
}
#包括“mainwindow.h”
#包括“ui_main window.h”
#包括
主窗口::主窗口(QWidget*父窗口):
QMainWindow(父级),
用户界面(新用户界面::主窗口)
{
用户界面->设置用户界面(此);
//样式表可以应用于的ui->statusBar层次结构中
//对象,但您可以将其范围缩小为
//ui->statusBar->setStyleSheet(“QStatusBar{color:red}”),如果需要
用户界面->状态栏->设置样式表(“颜色:红色”);
用户界面->状态栏->显示消息(“文本!”);
QTimer::singleShot(2000,this,SLOT(tryAnotherColor());
}
void主窗口::tryAnotherColor()
{
用户界面->状态栏->设置样式表(“颜色:蓝色”);
用户界面->状态栏->显示消息(“更多文本!”);
}
我尝试使用富文本


我的猜测是,并非所有Qt小部件控件都具有富文本呈现功能,但大多数控件都理解类似CSS的样式表。

我相信也存在同样的问题,但不幸的是,仍然没有解决()