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

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

QT QLabel 배경색상 넣기  (0) 2026.04.29
qt creator ui 파일 관련  (0) 2026.04.29
qt5 gif 애니메이션  (0) 2026.04.28
qt5 다국어 지원 테스트  (0) 2026.04.28
qt5 설치하기 on ubunut 22.04  (0) 2026.04.28
Posted by 구차니
Programming/qt2026. 4. 29. 15:26

음.. stylesheet를 건드리지 않으면 방법이 없나?

일단은... autoFillBackgroun를 체크하지 않아도 되긴 한다.

 

 

title->setAutoFillBackground(true); // IMPORTANT!
QPalette pal = title->palette();
pal.setColor(QPalette::Window, QColor(Qt::black));
title->setPalette(pal);

title->setStyleSheet("background-color: red;")
title->setStyleSheet("background-color: cornsilk;")

[링크 : https://forum.qt.io/topic/4197/qlabel-background-color/10]

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

QPushButton 에서 이미지로 대체하기  (0) 2026.04.29
qt creator ui 파일 관련  (0) 2026.04.29
qt5 gif 애니메이션  (0) 2026.04.28
qt5 다국어 지원 테스트  (0) 2026.04.28
qt5 설치하기 on ubunut 22.04  (0) 2026.04.28
Posted by 구차니
Programming/qt2026. 4. 29. 12:43

ui 파일을 추가하고, slot 추가하려고 하면

 

추가할 수 없다고 에러가 난다. 헤더가 없다는데..

그렇다고 해서 단순(?) 하게 uic 이용해서 생성하기에는 귀찮고

 

pro 프로젝트 관리 파일에

FORMS 부분에 있으면 build 쪽으로 헤더가 생긴다고 하는데

designer 쪽에서 그걸 참조하진 않는듯. 어쩌라고 이따구로 해놓은건지..

FORMS += \
    help.ui \
    maintenance.ui \
    mainwindow.ui \
    selftest.ui \
    setup.ui

 

qmake 해보라는데 이것도 안되고

 

해결책이 딱히 안보이네..

Qt Designer Form 보다는 Qt Designer Form Class 추가하는게 더 나을듯.

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

QPushButton 에서 이미지로 대체하기  (0) 2026.04.29
QT QLabel 배경색상 넣기  (0) 2026.04.29
qt5 gif 애니메이션  (0) 2026.04.28
qt5 다국어 지원 테스트  (0) 2026.04.28
qt5 설치하기 on ubunut 22.04  (0) 2026.04.28
Posted by 구차니
Programming/qt2026. 4. 28. 15:01

QMovie를 통해서 GIF 파일을 재생할 수 있다.

QMovie *Movie=new QMovie(":/image/Loading_icon.gif");
ui->label->setMovie(Movie);
Movie->start();

[링크 : https://blog.naver.com/browniz1004/221304483179]

 

아래의 메소드로 지원여부를 확인할 수 있는데 qt5에서 해보니 gif만 덩그러니..

아니 avi나 mov 이런건 지원안하는건가? movie 라면서?!?!

qDebug() << QMovie::supportedFormats();

[링크 : https://busyman.tistory.com/494]

 

 

그 와중에 함정은

mainwindow.ui 에 label 하나 넣어줘야 한다는거

 

실행파일과 동일한 위치에 test.gif를 위치시켜야 한다.

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

    qDebug() << QMovie::supportedFormats();

    QMovie *Movie=new QMovie("test.gif");
    ui->label->setMovie(Movie);
    Movie->start();
}

 

스샷이니 멈춰있지만 잘~~돈다.

 

+

2026.04.29

QMovie로 fan.gif를 불러와서 ui중 fan_ani label에 붙이고

재생시작하고, 멈추었다가 재개하도록 하는 코드

    movie = new QMovie(":/images/fan.gif");
    ui->fan_ani->setMovie(movie);
    movie->start();

    movie->setPaused(true);
    movie->setPaused(false);

 

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

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

QT QLabel 배경색상 넣기  (0) 2026.04.29
qt creator ui 파일 관련  (0) 2026.04.29
qt5 다국어 지원 테스트  (0) 2026.04.28
qt5 설치하기 on ubunut 22.04  (0) 2026.04.28
Qimage 단색 비트맵  (0) 2026.04.27
Posted by 구차니
Programming/qt2026. 4. 28. 11:38

이거.. 넣었던가.. 자동으로 다국어 지원한다고 하면 들어갔던가 기억이 안나네..

#include <QTranslator>

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

    QTranslator translator;
    const QStringList uiLanguages = QLocale::system().uiLanguages();
    for (const QString &locale : uiLanguages) {
        const QString baseName = "prjname_" + QLocale(locale).name();
        if (translator.load(":/i18n/" + baseName)) {
            a.installTranslator(&translator);
            break;
        }
    }
    MainWindow w;

    w.show();
    return a.exec();
}

 

qt creator 에서

tools - external - linguist - update translation 하면 ts 확장자를 가진 파일들이 생성된다.

 

그리고 그걸 linguist 에서 복수의 파일을 ctrl 누르고 열면 다음과 같이 나오는데

하나의 메시지(원본 텍스트)에 대해서 American(en_US 파일), 한국어(ko_KR 파일) 에 대해서 번역을 진행하고

 

linguist - 파일 - 모두 배포를 눌러주면 확장자가 qm인 파일이 배포되고

 

빌드를 한 후,

아래와 같이 하면 언어 "영어"로 선택되서 실행된다.

LANG=en_US ./prjname
LC_ALL=en_US ./prjname

 

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

qt creator ui 파일 관련  (0) 2026.04.29
qt5 gif 애니메이션  (0) 2026.04.28
qt5 설치하기 on ubunut 22.04  (0) 2026.04.28
Qimage 단색 비트맵  (0) 2026.04.27
qt 위젯 캡쳐  (0) 2026.04.27
Posted by 구차니
Programming/qt2026. 4. 28. 10:28

필요한게 uitools, multimedia, linguist 라서 좀 고생

 

sudo apt install -y qtcreator qtbase5-dev qt5-qmake cmake qttools5-dev-tools qttools5-dev qtmultimedia5-dev

 

어우 속이 다 편안하네. qt6 가 문제인건가..

어짜피 target에서 qt6 쓸수 있는 상황아니면 굳이 qt6을 고집할 필요는 없지 머.

 

와.. 그 개고생했던게 한방에 해결이네

 

[링크 : https://askubuntu.com/questions/1404263/how-do-you-install-qt-on-ubuntu22-04]

[링크 : https://stackoverflow.com/questions/20670457/qt-5-unknown-modules-in-qt-uitools]

[링크 : https://stackoverflow.com/questions/70720437/how-to-install-qmultimedia-on-ubuntu]

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

qt5 gif 애니메이션  (0) 2026.04.28
qt5 다국어 지원 테스트  (0) 2026.04.28
Qimage 단색 비트맵  (0) 2026.04.27
qt 위젯 캡쳐  (0) 2026.04.27
qt layout  (0) 2026.04.22
Posted by 구차니
Programming/qt2026. 4. 27. 15:19

 

 

QImage QImage::convertToFormat(QImage::Format format, Qt::ImageConversionFlags flags = Qt::AutoColor) const &
QImage QImage::convertToFormat(QImage::Format format, Qt::ImageConversionFlags flags = Qt::AutoColor) &&
QImage QImage::convertedTo(QImage::Format format, Qt::ImageConversionFlags flags = Qt::AutoColor) const &

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

 

'(기본값)'으로 표시된 옵션은 목록의 다른 값이 포함되지 않은 경우 설정됩니다(기본값은 0이므로):

색상/모노 기본 설정 ( QBitmap)의 경우 무시됩니다:

상수 값 설명
Qt::AutoColor 0x00000000 (기본값) - 이미지에 depth 1이 있고 흑백 픽셀만 포함된 경우, 픽셀맵은 흑백이 됩니다.
Qt::ColorOnly 0x00000003 픽셀맵이 디더링/변환되어 native display depth.
Qt::MonoOnly 0x00000002 픽셀맵이 흑백이 됩니다. 필요한 경우 선택한 디더링 알고리즘을 사용하여 디더링됩니다.

[링크 : https://doc.qt.io/qt-6/ko/qt.html#ImageConversionFlag-enum]

 

Constant Value Description
QImage::Format_Invalid 0 The image is invalid.
QImage::Format_Mono 1 The image is stored using 1-bit per pixel. Bytes are packed with the most significant bit (MSB) first.

[링크 : https://doc.qt.io/qt-6/qimage.html#Format-enum]

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

qt5 다국어 지원 테스트  (0) 2026.04.28
qt5 설치하기 on ubunut 22.04  (0) 2026.04.28
qt 위젯 캡쳐  (0) 2026.04.27
qt layout  (0) 2026.04.22
qt 다국어지원 관련  (0) 2026.04.22
Posted by 구차니
Programming/qt2026. 4. 27. 14:46

 

[링크 : https://1d1cblog.tistory.com/333]

 

qt4.4

QPixmap QPixmap::grabWindow ( WId window, int x = 0, int y = 0, int width = -1, int height = -1 ) 
QPixmap QPixmap::grabWidget ( QWidget * widget, int x = 0, int y = 0, int width = -1, int height = -1 )  

[링크 : https://radekp.github.io/qtmoko/api/qpixmap.html#grabWindow]

[링크 : https://radekp.github.io/qtmoko/api/qpixmap.html#grabWidget-2]

 

qt 5

QPixmap QWidget::grab(const QRect &rectangle = QRect(QPoint(0, 0), QSize(-1, -1)))

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

 

qt 6?

QPixmap QScreen::grabWindow(WId window = 0, int x = 0, int y = 0, int width = -1, int height = -1)

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

 

 

chatgpt 가라사대. 

pixmap 으로 grab 해서 만들고

그걸 QBuffer를 이용해서 저장을 내보내면 파일로 안만들어도 된다고 한다.

QPixmap pixmap = widget->grab();  // 또는 grabWindow 등

QByteArray byteArray;
QBuffer buffer(&byteArray);
buffer.open(QIODevice::WriteOnly);

// BMP 포맷으로 메모리에 저장
pixmap.save(&buffer, "BMP");

// 이제 byteArray 안에 BMP 바이너리 데이터가 들어 있음

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

qt5 설치하기 on ubunut 22.04  (0) 2026.04.28
Qimage 단색 비트맵  (0) 2026.04.27
qt layout  (0) 2026.04.22
qt 다국어지원 관련  (0) 2026.04.22
qt ui loader  (0) 2026.04.01
Posted by 구차니
Programming/qt2026. 4. 22. 18:18

해상도에 자동으로 늘어나는거 해보고 싶다!

[링크 : https://eskeptor.tistory.com/39]

 

+

2026.04.28

 

 

 

lay out in a grid 했더니 창 크기에 따라서 알아서 커지는데

ui 파일 열어보니 sizeconstrint가 추가되어서 되는 듯?

  <widget class="QWidget" name="centralwidget">
   <layout class="QGridLayout" name="gridLayout_2">
    <item row="0" column="0">
     <layout class="QGridLayout" name="gridLayout">
      <property name="sizeConstraint">
       <enum>QLayout::SetMaximumSize</enum>
      </property>

 

layout 위젯의 경우 Window창이 늘어남에 따라 자동으로 크기가 조절되게 해야할 경우. 위젯이 아닌 배경에서 우클릭후 Lay Out 컨텍스트 메뉴에서 레이아웃을 선택하면 크기가 레이아웃에 따라 자동으로 맞춰진다.

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

 

 

+

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

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

Qimage 단색 비트맵  (0) 2026.04.27
qt 위젯 캡쳐  (0) 2026.04.27
qt 다국어지원 관련  (0) 2026.04.22
qt ui loader  (0) 2026.04.01
qt widget fullscreen  (0) 2026.03.31
Posted by 구차니
Programming/qt2026. 4. 22. 14:31

lrelease 라는 별도 실행파일이 있어야 하는 것 같고

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

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

 

qttools를 받아야 하는것 처럼 보인다.

[링크 : https://fortex66.tistory.com/40]

[링크 : https://github.com/qt/qttools]

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

 

qt6 깔고 유지보수 도구 내에서는 영.. 없네. 먼가 마음에 안들어 -_-

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

qt 위젯 캡쳐  (0) 2026.04.27
qt layout  (0) 2026.04.22
qt ui loader  (0) 2026.04.01
qt widget fullscreen  (0) 2026.03.31
qt media 재생하기  (0) 2026.03.31
Posted by 구차니