Qt Widgets에서 QMainWindow::toolButtonStyle 프로그래밍하기

2024-06-15

Qt Widgets에서 QMainWindow::toolButtonStyle 프로그래밍

QMainWindow::toolButtonStyle 함수는 Qt 주요 창 내의 도구 단추 스타일을 설정하는 데 사용됩니다. 이 함수는 도구 단추의 모양, 크기 및 행동을 제어하는 데 도움이 됩니다.

구문

void QMainWindow::setToolButtonStyle(Qt::ToolButtonStyle style);

매개 변수

  • style: 설정할 도구 단추 스타일을 나타내는 Qt::ToolButtonStyle 열거형 값입니다. 가능한 값은 다음과 같습니다.
    • Qt::ToolButtonIconOnly: 도구 단추에 아이콘만 표시됩니다.
    • Qt::ToolButtonMenu: 도구 단추가 메뉴 버튼으로 작동합니다.

예제

다음 코드는 주요 창의 모든 도구 단추 스타일을 Qt::ToolButtonTextOnly로 설정합니다.

QMainWindow window;
window.setToolButtonStyle(Qt::ToolButtonTextOnly);

참고

  • QMainWindow::toolButtonStyle 함수는 주요 창 내의 모든 도구 단추에 영향을 미칩니다. 특정 도구 단추의 스타일을 설정하려면 QToolBar::setToolButtonStyle() 함수를 사용해야 합니다.
  • 도구 단추의 모양과 크기를 더욱 세밀하게 제어하려면 QToolButton::setIconSize()QToolButton::setFixedSize() 함수를 사용할 수 있습니다.

도움이 되었기를 바랍니다! 혹시 다른 Qt Widgets 관련 질문이 있으면 알려주세요.



Qt Widgets에서 QMainWindow::toolButtonStyle 사용 예제

예제 1: 모든 도구 단추를 아이콘만 표시되도록 설정

#include <QApplication>
#include <QMainWindow>
#include <QToolBar>

int main(int argc, char *argv[]) {
    QApplication app(argc, argv);

    QMainWindow window;

    // 도구栏 생성
    QToolBar *toolBar = new QToolBar;

    // 도구 단추 추가
    QToolButton *button1 = new QToolButton;
    QToolButton *button2 = new QToolButton;
    QToolButton *button3 = new QToolButton;

    // 각 단추에 아이콘 설정
    button1->setIcon(QIcon(":/images/file.png"));
    button2->setIcon(QIcon(":/images/edit.png"));
    button3->setIcon(QIcon(":/images/view.png"));

    // 도구栏에 단추 추가
    toolBar->addWidget(button1);
    toolBar->addWidget(button2);
    toolBar->addWidget(button3);

    // 도구栏을 주요 창에 추가
    window.addToolBar(toolBar);

    // 모든 도구 단추를 아이콘만 표시되도록 설정
    window.setToolButtonStyle(Qt::ToolButtonIconOnly);

    window.show();

    return app.exec();
}

예제 2: 특정 도구 단추 스타일 설정

#include <QApplication>
#include <QMainWindow>
#include <QToolBar>

int main(int argc, char *argv[]) {
    QApplication app(argc, argv);

    QMainWindow window;

    // 도구栏 생성
    QToolBar *toolBar = new QToolBar;

    // 도구 단추 추가
    QToolButton *button1 = new QToolButton;
    QToolButton *button2 = new QToolButton;
    QToolButton *button3 = new QToolButton;

    // 각 단추에 아이콘 설정
    button1->setIcon(QIcon(":/images/file.png"));
    button2->setIcon(QIcon(":/images/edit.png"));
    button3->setIcon(QIcon(":/images/view.png"));

    // 도구栏에 단추 추가
    toolBar->addWidget(button1);
    toolBar->addWidget(button2);
    toolBar->addWidget(button3);

    // 도구栏을 주요 창에 추가
    window.addToolBar(toolBar);

    // 첫 번째 도구 단추를 텍스트만 표시되도록 설정
    button1->setToolButtonStyle(Qt::ToolButtonTextOnly);

    // 나머지 도구 단추는 기본 스타일 유지
    button2->setToolButtonStyle(Qt::ToolButtonIconText);
    button3->setToolButtonStyle(Qt::ToolButtonIconText);

    window.show();

    return app.exec();
}
#include <QApplication>
#include <QMainWindow>
#include <QToolBar>

int main(int argc, char *argv[]) {
    QApplication app(argc, argv);

    QMainWindow window;

    // 도구栏 생성
    QToolBar *toolBar = new QToolBar;

    // 도구 단추 추가
    QToolButton *button1 = new QToolButton;
    QToolButton *button2 = new QToolButton;
    QToolButton *button3 = new QToolButton;

    // 각 단추에 아이콘 설정
    button1->setIcon(QIcon(":/images/file.png"));
    button2->setIcon(QIcon(":/images/edit.png"));
    button3->setIcon(QIcon(":/images/view.png"));

    // 도구栏에 단추 추가
    toolBar->addWidget(button1);
    toolBar->addWidget(button2);
    toolBar->addWidget(button3);

    // 도구栏을 주요 창에 추가
    window.addToolBar(toolBar);

    // 모든 도구 단추를 아이콘과 텍스트 표시되도록 설정
    window.setToolButtonStyle(Qt::ToolButtonIconText);

    // 모든 도구 단추 크기를 32x32 픽셀로 설정
    button1->setFixedSize(32, 32);
    button2->setFixedSize(


QMainWindow::toolButtonStyle 대안

QToolBar::setToolButtonStyle()

이 함수는 특정 도구栏에 속한 모든 도구 단추의 스타일을 설정하는 데 사용됩니다. QMainWindow::toolButtonStyle 함수와 달리 이 함수는 특정 도구栏에 영향을 미치므로 더 정교한 제어가 가능합니다.

// 도구栏 생성
QToolBar *toolBar = new QToolBar;

// 도구 단추 추가
QToolButton *button1 = new QToolButton;
QToolButton *button2 = new QToolButton;
QToolButton *button3 = new QToolButton;

// 각 단추에 아이콘 설정
button1->setIcon(QIcon(":/images/file.png"));
button2->setIcon(QIcon(":/images/edit.png"));
button3->setIcon(QIcon(":/images/view.png"));

// 도구栏에 단추 추가
toolBar->addWidget(button1);
toolBar->addWidget(button2);
toolBar->addWidget(button3);

// 도구栏에 속한 모든 도구 단추를 아이콘만 표시되도록 설정
toolBar->setToolButtonStyle(Qt::ToolButtonIconOnly);

이 함수는 개별 도구 단추의 스타일을 설정하는 데 사용됩니다. 가장 세밀한 제어를 원할 경우 이 함수를 사용하는 것이 좋습니다.

// 도구 단추 생성
QToolButton *button = new QToolButton;

// 아이콘 설정
button->setIcon(QIcon(":/images/file.png"));

// 단추 스타일을 텍스트만 표시되도록 설정
button->setToolButtonStyle(Qt::ToolButtonTextOnly);

CSS 스타일 시트 사용

Qt는 CSS 스타일 시트를 사용하여 위젯의 모양을 다양하게 조정할 수 있는 강력한 기능을 제공합니다. 도구 단추의 스타일을 설정하는 데에도 CSS를 사용할 수 있습니다.

다음은 CSS를 사용하여 모든 도구 단추를 텍스트만 표시되도록 설정하는 예제입니다.

QToolButton {
    text-align: center;
    border: 0px;
    padding: 5px;
}

이 CSS 코드를 Qt 애플리케이션에 적용하려면 QApplication::setStyleSheet() 함수를 사용해야 합니다.

QApplication::setStyleSheet("QToolButton { text-align: center; border: 0px; padding: 5px; }");

선택하는 방법

사용할 대안은 특정 요구 사항에 따라 다릅니다.

  • 특정 도구栏에 속한 모든 도구 단추의 스타일을 일관되게 설정하려면 QToolBar::setToolButtonStyle() 함수를 사용하십시오.
  • 더 많은 제어 기능과 유연성을 원하거나 애플리케이션의 다른 부분에서도 CSS를 사용하고 있다면 CSS 스타일 시트를 사용하십시오.