Я работаю над симулятором C ++ / Qt, который объединяет страницу параметров. В конце параметров QLabel
уведомляет пользователя, действительны ли введенные данные. Этот текст должен иметь собственный цвет, поэтому я реализовал это:
ParametersDialog.h
#include <iostream>
#include <QtWidgets>
using namespace std;
class ParametersDialog: public QDialog {
Q_OBJECT
public:
ParametersDialog(QWidget *parent = nullptr);
~ParametersDialog();
...
private:
QLabel *notificationLabel = new QLabel;
...
void notify(string message, string color);
};
ParametersDialog. cpp
#include "<<src_path>>/ParametersDialog.h"
ParametersDialog::ParametersDialog(QWidget *parent): QDialog(parent) {
...
notify("TEST TEST 1 2 1 2", "green");
}
...
void ParametersDialog::notify(string message, string color = "red") {
notificationLabel->setText("<font color=" + color + ">" + message + "</font>");
}
Я не понимаю, почему это дает мне эту ошибку:
D:\dev\_MyCode\SM_Streamer\<<src_path>>\ParametersDialog.cpp:65:79: error: no matching function for call to 'QLabel::setText(std::__cxx11::basic_string<char>)'
notificationLabel->setText("<font color=" + color + ">" + message + "</font>");
^
Я понимаю, что моя конкатенация строк создала элемент basic_string<char>
, который не может быть установлен как QLabel
text.
Какой может быть простейшая реализация моего метода notify
?