문제

    QMessageBox::about( this, "About Application",
    "<h4>Application is a one-paragraph blurb</h4>\n\n"
"Copyright 1991-2003 Such-and-such. "
"For technical support, call 1234-56789 or see\n"
"<a href=\"http://www.such-and-such.com\">http://www.such-and-such.com</a>" );

이 코드는 두 가지 예외가있는 정보 상자를 작성하고 있습니다.

1) AAA.png 파일로 메시지 상자의 아이콘을 변경하고 싶습니다.

2) 그리고 링크를 클릭 할 수 있습니다. 하이퍼 링크처럼 보이지만 (파란색이고 밑줄이 든) 마우스 클릭은 작동하지 않습니다.

어떤 아이디어?

도움이 되었습니까?

해결책

나는 당신이 관습을 만들어야한다고 생각합니다 QWidget 위젯에 대해. 이런 식으로, 당신은 당신이 원하는 모든 것을 위젯에 넣을 수 있습니다. 예를 들어, 배치 할 수 있습니다 QLabel 사용 openExternalLinks 클릭 가능한 링크 용 속성.

에 사용자 정의 이미지를 표시합니다 QWidget, 이것 예시 도움이 될 수 있습니다.

다른 팁

아이콘의 경우 응용 프로그램 아이콘을 설정하면됩니다. 이 같은:

QApplication::setWindowIcon(QIcon(":/aaa.png")); // from a resource file

링크를 클릭 할 수있게하려면 QMessageBox::about API 직접.

QMessageBox msgBox;
msgBox.setTextFormat(Qt::RichText); // this does the magic trick and allows you to click the link
msgBox.setText("Text<br /><a href=\"http://www.such-and-such.com\">http://www.such-and-such.com</a>");
msgBox.setIcon(yourIcon);
msgBox.exec();

향후 참조를 위해 문서는 기본 유형을 명시합니다. textformat은 qt :: autotext입니다. 문서는 다음을 말합니다 qt :: autotext는 qt :: richtext로 해석됩니다 qt :: mignberichtext ()가 true를 반환합니다. 그렇지 않으면 qt :: plaintext. 드디어, Mignberichtext는 빠르고 단순한 휴리스틱을 사용합니다. 주로 첫 번째 줄이 중단되기 전에 태그처럼 보이는 것이 있는지 확인합니다. 따라서 첫 번째 줄에 태그가 없으므로 일반 텍스트라고 가정합니다. explictly로 텍스트로 설정하십시오 msgBox.setTextFormat(Qt::RichText); 그에 따라 행동하게합니다.

main.cpp

QApplication app(argc, argv);
app.setWindowIcon(QIcon(":/images/your_icon.png"));

Mainwindow.cpp (하나가있는 경우 슬롯에)

void MainWindow::on_aboutAction_triggered()
{
    QMessageBox::about(0, "window title", "<a href='http://www.jeffersonpalheta.com'>jeffersonpalheta.com</a>");
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top