Programming/qt2026. 6. 4. 11:49

도움은 크게 안되었지만 아이디어를 얻은 페이지

[링크 : https://stackoverflow.com/questions/59594800/confining-background-color-to-triangular-tab-on-qtabbar]

 

Step 1. widget에 Tab Widget을 드래그 한다.

 

Step 2. Tab Widget 사이즈 조절. 만만한게 바로 grid 커져라 얍!

 

Step 3. 탭하나 추가하기

원하는 탭을 하나 선택하고 

 

상위 QTabWidget 에서 우클릭해서 Insert Page - After Current Page

 

그러면 tab_3 추가

 

 

gui 상에서 우클릭해도 바로 되긴한다.

Posted by 구차니
Programming/qt2026. 6. 2. 15:52

gpt 가라사대~

아래와 같이 QT_TRANSLATE_NOOP()을 이용해서 추가하면

GUI 에서 내용이 바뀌기 때문에 여러개 메시지를 넣고 출력하지 않도록 할 필요 없이

내부적으로 tr()을 이용해 끌어오면 될 듯 하다.

static const char *dummy[] = {
    QT_TRANSLATE_NOOP("Language", "Korean"),
    QT_TRANSLATE_NOOP("Language", "English"),
    QT_TRANSLATE_NOOP("Language", "Japanese")
};

 

아래 정의 된 것 처럼, scope와 메시지로 되어있는데

#define QT_TRANSLATE_NOOP(scope, x) x

 

scope는 qt에서 생성한 class 이름으로 하면, 별도의 번역으로 분리되지 않고 하나로 잘 뭉쳐서 나오게 된다.

'Programming > qt' 카테고리의 다른 글

qt QTabWidget 사용  (0) 2026.06.04
QCombobox + 다국어  (0) 2026.05.21
qt widget 에서 배경화면 스타일 시트 적용 안될 경우  (0) 2026.05.20
QT 런타임중 언어 변경  (0) 2026.05.14
QT QMainWindow, QWidget, QDialog  (0) 2026.05.14
Posted by 구차니
Programming/qt2026. 5. 21. 14:57

combobox 추가하고

 

추가된 애를 더블 클릭하면

 

Edit Combobox 라고 뜨는데

여기에 한줄씩 추가해서 넣으면 된다.

 

그나저나.. 왜 프로퍼티 창에서 바로 넣을수 있는 곳은 없는걸까?

[링크 : https://dibrary.tistory.com/21]

 

아래는 GPT가 짜준거

일단 값이 변경되는 이벤트에서 언어 파일을 읽게 하고,

changeEvent()를 오버라이드 해서 언어 변경 이벤트에 대해서 적용하고

combobox의 시그날 발생을 잠시 막고(갱신되면서 0번 인덱스로 가는것 방지)

이전의 인덱스를 복구해주고, 시그널 발생을 다시 가능하게 해주는 식으로 끝. 천잰데?

protected:
    void changeEvent(QEvent *event) override;

 

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->s
// Connect combobox signal
    connect(ui->comboBox, QOverload<int>::of(&QComboBox::currentIndexChanged), this, &Widget::on_comboBox_currentIndexChanged);
}

void Widget::changeEvent(QEvent *event)
{
    if (event->type() == QEvent::LanguageChange) {
        int currentIndex = ui->comboBox->currentIndex();
        ui->comboBox->blockSignals(true);
        ui->retranslateUi(this);
        ui->comboBox->setCurrentIndex(currentIndex);
        ui->comboBox->blockSignals(false);
    }
    QWidget::changeEvent(event);
}

void Widget::on_comboBox_currentIndexChanged(int index)
{
    QString langFile;
    switch(index) {
        case 0: langFile = "untitled_ko_KR"; break;
        case 1: langFile = "untitled_en_US"; break;
        case 2: langFile = "untitled_el_GR"; break;
        case 3: langFile = "untitled_fr_FR"; break;
        case 4: langFile = "untitled_es_ES"; break;
        case 5: langFile = "untitled_pt_PT"; break; // Note: combo says polish but translations exist for pt_PT
        case 6: langFile = "untitled_sk_SK"; break;
        case 7: langFile = "untitled_ru_RU"; break;
        default: langFile = "untitled_en_US"; break;
    }
    
    if (m_translator.load(":/i18n/" + langFile)) {
        qApp->installTranslator(&m_translator);
    }
}
Posted by 구차니
Programming/qt2026. 5. 20. 12:17

antigravity 가지고 물어보니 이거 하나 넣으라니 정말 되네.

 

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    setAttribute(Qt::WA_StyledBackground);
}

 

 

Qt::WA_StyledBackground 93 Indicates the widget should be drawn using a styled background.

[링크 : https://doc.qt.io/qt-6/qt.html]

[링크 : https://runebook.dev/ko/docs/qt/stylesheet-reference]

 

QWidget은 원래 배경 색상만 지원하도록 만든 클래스인가 보네..

[링크 : https://doc.qt.io/qt-6/stylesheet-reference.html]

'Programming > qt' 카테고리의 다른 글

qt 다국어지원 - 보이지 않는 메시지 추가하기  (0) 2026.06.02
QCombobox + 다국어  (0) 2026.05.21
QT 런타임중 언어 변경  (0) 2026.05.14
QT QMainWindow, QWidget, QDialog  (0) 2026.05.14
QT 창관리  (0) 2026.05.13
Posted by 구차니
Programming/qt2026. 5. 14. 17:49

아직 테스트는 못해봄.

일단 실행시에 LANG 으로 바꾸는건 해봤는데

실행중에 바꾸어야 할 것 같아서 찾아봄.

 

기존 translator을 제거(QApplication::removeTranslator)하고, 다시 install(위 적용 참조)한다. 
      
          app.removeTranslator(&translator);
          translator.load("lang/ko_kr");
          app.installTranslator(&translator);
      
    installTranslator하면, QEvent::LanguageChange이벤트가 발생한다. 이 이벤트로 번역문자열이 새로운 translator에 의해 적용되도록 한다. 
         
          void MainWindow::changeEvent(QEvent* event)
          {
              if (event->type() == QEvent::LanguageChange)
              {
                  // 디자이너에 의해 생성된 문자열
                  ui.retranslateUi(this);
            
                  // 코드에서 삽입한 문자열
                  retranslate();
              }
              QMainWindow::changeEvent(event);
          }

[링크 : https://dorigom.tistory.com/359]

'Programming > qt' 카테고리의 다른 글

QCombobox + 다국어  (0) 2026.05.21
qt widget 에서 배경화면 스타일 시트 적용 안될 경우  (0) 2026.05.20
QT QMainWindow, QWidget, QDialog  (0) 2026.05.14
QT 창관리  (0) 2026.05.13
QString arg()  (0) 2026.05.13
Posted by 구차니
Programming/qt2026. 5. 14. 15:30

 

QMainWindow

 -  내부는 QWidget 으로 채워질수 있음

 + setWindowModality(Qt::WindowModal)

 + show()

 + raise() 로 띄움

 QDialog

 -  별도 창에 표시되는 취상위 위젯

 + setWindowModality(Qt::WindowModal)

 + exec() 로 띄움

 - QWidget 기반

QWidget

 - 어떻게 보면 얘가 근본?

 [링크 : https://ggangtalife.tistory.com/entry/PyQt5-클래스-QMainWindow-QDialog-QWidget-차이점]

 

다이얼로그

 - modal 속성으로 주로 사용(제어권 독점) 

 - 확인/취소 누르는 용도

[링크 : https://coding-kindergarten.tistory.com/171]

'Programming > qt' 카테고리의 다른 글

qt widget 에서 배경화면 스타일 시트 적용 안될 경우  (0) 2026.05.20
QT 런타임중 언어 변경  (0) 2026.05.14
QT 창관리  (0) 2026.05.13
QString arg()  (0) 2026.05.13
qt 동적 크기  (0) 2026.05.12
Posted by 구차니
Programming/qt2026. 5. 13. 15:24

show() 보이기

hide() 숨기기

raise() 가장 위로 창 옮기기

activateWindow() 윈도우 기준 입력 활성화(포커스)

setFocus() 위젯 기준 입력 활성화

'Programming > qt' 카테고리의 다른 글

QT 런타임중 언어 변경  (0) 2026.05.14
QT QMainWindow, QWidget, QDialog  (0) 2026.05.14
QString arg()  (0) 2026.05.13
qt 동적 크기  (0) 2026.05.12
QT QPushButton 의 텍스트 폰트 / 색상 변경하기  (0) 2026.05.11
Posted by 구차니
Programming/qt2026. 5. 13. 14:15

cstring에서는 없는것 같은데. 어떻게 보면 python 스타일과 비슷한

인자를 받아서 포맷팅하는 방법이 존재한다.

 

int i;                // current file's number
int total;            // number of files to process
QStringView fileName; // current file's name

QString status = QString("Processing file %1 of %2: %3")
                .arg(i).arg(total).arg(fileName);

[링크 : https://norux.me/33]

[링크 : https://doc.qt.io/qt-6/qstring.html#arg]

'Programming > qt' 카테고리의 다른 글

QT QMainWindow, QWidget, QDialog  (0) 2026.05.14
QT 창관리  (0) 2026.05.13
qt 동적 크기  (0) 2026.05.12
QT QPushButton 의 텍스트 폰트 / 색상 변경하기  (0) 2026.05.11
qt5 창 내용 바꾸기  (0) 2026.05.07
Posted by 구차니
Programming/qt2026. 5. 12. 14:15

MainWindow에 하나의 QLabel만 있다면

MainWindow - Lay out - Lay Out Horizontally / Vertically 중에 아무거나

QLabel 에서 scaledContents 체크해주면 끝

 

'Programming > qt' 카테고리의 다른 글

QT 창관리  (0) 2026.05.13
QString arg()  (0) 2026.05.13
QT QPushButton 의 텍스트 폰트 / 색상 변경하기  (0) 2026.05.11
qt5 창 내용 바꾸기  (0) 2026.05.07
qt QPushButton 에서 이미지로 대체하기 (hover)  (0) 2026.04.29
Posted by 구차니
Programming/qt2026. 5. 11. 15:50

결국은 또 스타일시트 도배?

일단 객체의 이름을 지어주고

 

스타일시트에다가 굵게, 크게, 흰색으로 넣어주었다.

그러면. padding left 등도 지정이 가능하겠는데?

QPushButton#backBtn {
    font:bold;
    font-size: 36px;
    color: white;
    padding-left:40px;
}

 

오.. 되는데 이상하다?

 

왜 밀리긴 한데 잘리지?

[링크 : https://forum.qt.io/topic/75603/how-to-set-size-and-font-for-a-qpushbutton/2]

 

프로그램으로는 직접 <font> 태그 먹이는것 같은데 qt designer에서는 안되네

[링크 : https://mr-doosun.tistory.com/10]

'Programming > qt' 카테고리의 다른 글

QString arg()  (0) 2026.05.13
qt 동적 크기  (0) 2026.05.12
qt5 창 내용 바꾸기  (0) 2026.05.07
qt QPushButton 에서 이미지로 대체하기 (hover)  (0) 2026.04.29
QT QLabel 배경색상 넣기  (0) 2026.04.29
Posted by 구차니