Qt로 툴팁을 표시 할 때 조심하십시오.

7433 단어 C++Qt
Qt Creator로 만든 방금의 GUI 어플리케이션은 이런 느낌.

첫 타타키대입니다.

MainWindow.cpp
#include "MainWindow.h"
#include "ui_MainWindow.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}

MainWindow::~MainWindow()
{
    delete ui;
}



툴팁을 표시하면 간단합니다.

MainWindow.cpp
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    setToolTip("Hello, world");
}



서식 있는 텍스트(간단 HTML 태그)로 장식할 수도 있습니다.

MainWindow.cpp
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    setToolTip("<i>Hello</i>, <b>world</b>");
}



그러나 때로는 <, >, & 등을 그대로 표시하고 싶을 수도 있습니다.

MainWindow.cpp
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    QString s = "<i>Hello</i>, <b>world</b>";
    setToolTip(s.toHtmlEscaped());
}



HTML 이스케이프하면 기호도 표시됩니다. 하지만 기다려주세요. 왠지 도중에 개행이 들어 버립니다!

개행하지 않고 한 줄로 표시하고 싶습니다. 그럴 때는 한 번 걸어야 합니다.

MainWindow.cpp
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    QString s = "<i>Hello</i>, <b>world</b>";
    s = "<p style='white-space:pre'>" + s.toHtmlEscaped() + "</p>";
    setToolTip(s);
}



귀찮습니다. 어쩐지 버그 같은 생각도 합니다만, 그러한 사양인 것 같습니다.
htp // c. qt. 이오/qt-5/q와 l p. HTML



워드랩 하고 싶지 않으면 <p style='white-space:pre'> 로 둘러싸라, 그렇다고 합니다.

좋은 웹페이지 즐겨찾기