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);
    }
}

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

qt widget 에서 배경화면 스타일 시트 적용 안될 경우  (0) 2026.05.20
QT 런타임중 언어 변경  (0) 2026.05.14
QT QMainWindow, QWidget, QDialog  (0) 2026.05.14
QT 창관리  (0) 2026.05.13
QString arg()  (0) 2026.05.13
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' 카테고리의 다른 글

QCombobox + 다국어  (0) 2026.05.21
QT 런타임중 언어 변경  (0) 2026.05.14
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. 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 구차니
Programming/qt2026. 5. 7. 15:13

내가 원하던  mainwindow의 내용을 다른 위젯으로 변경하기

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

[링크 : https://wikidocs.net/156100]

 

새 다이얼로그 창을 열고 숨기기

[링크 : https://toytvstory.tistory.com/1422]


replacewidget()

주로 한개의 위젯을 바꾸지, 창을 바꾸는 용도는 아닌듯?

[링크 : https://stackoverflow.com/questions/35382622/replace-a-widget-in-qt]

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

 

 

Posted by 구차니
Programming/qt2026. 4. 29. 17:27

GPT 가라사대~

stylesheet로 하는 게 장땡이다!

 

checkable은 toggle 로 작동하는 기능이고

autoRepeat는 누르고 있으면 반복적으로 pressed-released-click 으로 인식되는 기능이다.

 

여기를 쓰려면 먼가 이상해지는데.. 테스트 해본 바로는 이걸 쓸바에는

 

styleSheet에 아래껄 넣고 실행해보면

정말 원하는대로 클릭한다고 토글되지도 않고, 클릭하면 이미지가 클릭으로 바뀌고

클릭 영역 벗어나면 자동으로 release 되는 식으로 잘 작동한다.

 

QPushButton {
border: none;
background-image: url(:/images/normal.png);
}


QPushButton:pressed {
background-image: url(:/images/pushed.png);
}

 

근데 hover를 주면 hover가 우선시 되서 pressed가 안뜨네.. 먼가 계륵이다 ㅠㅠ

QPushButton:hover {
background-image: url(:/images/hover.png);
}

 

+

selector 라고해야하나 아무튼 hover 인거랑  hover인데 pressed 인거랑 해서 구분하면 사용가능

QPushButton {
    border: none;
    background-image: url(:/images/normal.png);
}

QPushButton:hover:pressed {
    background-image: url(:/images/pushed.png);
}

QPushButton:hover {
    background-image: url(:/images/hover.png);
}

 

+

2026.05.11

단, 개별 엘리먼트(?) 사이에 , 를 넣으면 작동안함

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

QT QPushButton 의 텍스트 폰트 / 색상 변경하기  (0) 2026.05.11
qt5 창 내용 바꾸기  (0) 2026.05.07
QT QLabel 배경색상 넣기  (0) 2026.04.29
qt creator ui 파일 관련  (0) 2026.04.29
qt5 gif 애니메이션  (0) 2026.04.28
Posted by 구차니