diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..081bf21 --- /dev/null +++ b/.gitignore @@ -0,0 +1,35 @@ +# Qt Creator +*.pro.user* +.qtcreator/ +build*/ +*.o +*.obj +moc_* +ui_* +qrc_* +Makefile* +.qmake.stash +QTCart +*.exe +*.out +*.app +*.qtds + +# Python +.venv/ +venv/ +__pycache__/ +*.py[cod] +*$py.class +.env +.pytest_cache/ + +# IDE & System +.vscode/ +.idea/ +.DS_Store +[Tt]humbs.db + +QT-Main/Makefile +QT-Main/build/ +QT-Server/build/ \ No newline at end of file diff --git a/QTCart/QTCart.pro b/QT-Main/QTCart.pro similarity index 52% rename from QTCart/QTCart.pro rename to QT-Main/QTCart.pro index 691670e..a4de5a8 100644 --- a/QTCart/QTCart.pro +++ b/QT-Main/QTCart.pro @@ -1,30 +1,46 @@ -QT += core gui +QT += core gui network serialport greaterThan(QT_MAJOR_VERSION, 4): QT += widgets CONFIG += c++17 -# You can make your code fail to compile if it uses deprecated APIs. -# In order to do so, uncomment the following line. -#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 - SOURCES += \ + barcodescanner.cpp \ main.cpp \ mainwidget.cpp \ pagecart.cpp \ + pageguide.cpp \ + pagepay.cpp \ + pagepay_card.cpp \ + pagetotalpay.cpp \ pagewelcome.cpp HEADERS += \ + barcodescanner.h \ mainwidget.h \ pagecart.h \ + pageguide.h \ + pagepay.h \ + pagepay_card.h \ + pagetotalpay.h \ pagewelcome.h FORMS += \ mainwidget.ui \ pagecart.ui \ + pageguide.ui \ + pagepay.ui \ + pagepay_card.ui \ + pagetotalpay.ui \ pagewelcome.ui # Default rules for deployment. qnx: target.path = /tmp/$${TARGET}/bin else: unix:!android: target.path = /opt/$${TARGET}/bin !isEmpty(target.path): INSTALLS += target + +DISTFILES += + +RESOURCES += \ + etc_image/etc_image.qrc \ + item_image/item_image.qrc diff --git a/QT-Main/barcodescanner.cpp b/QT-Main/barcodescanner.cpp new file mode 100644 index 0000000..c033667 --- /dev/null +++ b/QT-Main/barcodescanner.cpp @@ -0,0 +1,108 @@ +#include "barcodescanner.h" +#include +#include +#include +#include +#include +#include + +BarcodeScanner::BarcodeScanner(QObject *parent) + : QObject(parent), + manager(new QNetworkAccessManager(this)) +{ + connect(manager, &QNetworkAccessManager::finished, + this, &BarcodeScanner::onNetworkReply); +} + +void BarcodeScanner::setApiBaseUrl(const QString &ip, int port) +{ + m_apiBaseUrl = QString("http://%1:%2").arg(ip).arg(port); + qDebug() << "[Scanner] API Base URL set to:" << m_apiBaseUrl; +} + +// 상품 추가 +void BarcodeScanner::fetchItemDetails(const QString& itemId) +{ + QString path = QString("%1/cart/add/%2").arg(m_apiBaseUrl).arg(itemId); + QUrl url(path); + + QNetworkRequest request(url); + request.setHeader(QNetworkRequest::ContentTypeHeader, "application/json"); + + manager->post(request, QByteArray()); + + qDebug() << "=================================================="; + qDebug() << "[Scanner] Requesting ADD -> ID:" << itemId; + qDebug() << "[Scanner] URL:" << url.toString(); +} + +// 상품 제거 +void BarcodeScanner::removeItem(const QString& itemId) +{ + QString path = QString("%1/cart/remove/%2").arg(m_apiBaseUrl).arg(itemId); + QUrl url(path); + + QNetworkRequest request(url); + request.setHeader(QNetworkRequest::ContentTypeHeader, "application/json"); + + manager->post(request, QByteArray()); + + qDebug() << "=================================================="; + qDebug() << "[Scanner] Requesting REMOVE -> ID:" << itemId; + qDebug() << "[Scanner] URL:" << url.toString(); +} + +void BarcodeScanner::onNetworkReply(QNetworkReply *reply) +{ + if (reply->error() != QNetworkReply::NoError) { + qDebug() << "[Scanner] Network Error:" << reply->errorString(); + emit fetchFailed(reply->errorString()); + reply->deleteLater(); + return; + } + + QByteArray data = reply->readAll(); + qDebug() << "[Scanner] Raw Response Data:" << data; + + QJsonDocument doc = QJsonDocument::fromJson(data); + if (!doc.isObject()) { + qDebug() << "[Scanner] Invalid JSON response"; + reply->deleteLater(); + return; + } + + QJsonObject obj = doc.object(); + QString action = obj["action"].toString(); + + qDebug() << "[Scanner] Parsed Action:" << action; + + // 데이터 유효성 검사 + if (action == "add") { + Item item; + + if (obj.contains("item")) item.name = obj["item"].toString(); + else if (obj.contains("name")) item.name = obj["name"].toString(); + else item.name = "알수없음"; + + if (obj.contains("id")) { + item.id = obj["id"].toVariant().toString(); + } + + if (obj.contains("price")) item.price = obj["price"].toDouble(); + + double expectedWeight = 0.0; + if (obj.contains("expected_weight")) { + expectedWeight = obj["expected_weight"].toDouble(); + item.weight = expectedWeight; + } + + qDebug() << "[Scanner] Item Parsed: " << item.name << ", " << item.price; + + emit itemFetched(item, expectedWeight); + } + else if (action == "remove") { + qDebug() << "[Scanner] Remove confirmed."; + } + + reply->deleteLater(); +} \ No newline at end of file diff --git a/QT-Main/barcodescanner.h b/QT-Main/barcodescanner.h new file mode 100644 index 0000000..dfda33c --- /dev/null +++ b/QT-Main/barcodescanner.h @@ -0,0 +1,40 @@ +#ifndef BARCODESCANNER_H +#define BARCODESCANNER_H + +#include +#include +#include +#include + +class Item { +public: + QString id = ""; + QString name = ""; + double price = 0.0; + double weight = 0.0; + int stock = 0; +}; + +class BarcodeScanner : public QObject +{ + Q_OBJECT +public: + explicit BarcodeScanner(QObject *parent = nullptr); + + void setApiBaseUrl(const QString &ip, int port); + void fetchItemDetails(const QString& itemId); + void removeItem(const QString& itemId); + +signals: + void itemFetched(const Item &item, double cartWeight); + void fetchFailed(const QString &error); + +private slots: + void onNetworkReply(QNetworkReply *reply); + +private: + QNetworkAccessManager *manager; + QString m_apiBaseUrl; +}; + +#endif // BARCODESCANNER_H \ No newline at end of file diff --git a/QT-Main/etc_image.qrc b/QT-Main/etc_image.qrc new file mode 100644 index 0000000..7646d2b --- /dev/null +++ b/QT-Main/etc_image.qrc @@ -0,0 +1 @@ + diff --git a/QT-Main/etc_image/card.png b/QT-Main/etc_image/card.png new file mode 100644 index 0000000..d000482 Binary files /dev/null and b/QT-Main/etc_image/card.png differ diff --git a/QT-Main/etc_image/cart.png b/QT-Main/etc_image/cart.png new file mode 100644 index 0000000..d7d1810 Binary files /dev/null and b/QT-Main/etc_image/cart.png differ diff --git a/QT-Main/etc_image/cart_handcream.jpg b/QT-Main/etc_image/cart_handcream.jpg new file mode 100644 index 0000000..3df779a Binary files /dev/null and b/QT-Main/etc_image/cart_handcream.jpg differ diff --git a/QT-Main/etc_image/cart_iphone.jpg b/QT-Main/etc_image/cart_iphone.jpg new file mode 100644 index 0000000..db697db Binary files /dev/null and b/QT-Main/etc_image/cart_iphone.jpg differ diff --git a/QT-Main/etc_image/cart_puzzle.png b/QT-Main/etc_image/cart_puzzle.png new file mode 100644 index 0000000..d900ff3 Binary files /dev/null and b/QT-Main/etc_image/cart_puzzle.png differ diff --git a/QT-Main/etc_image/cart_snack(1).jpg b/QT-Main/etc_image/cart_snack(1).jpg new file mode 100644 index 0000000..9bb46ea Binary files /dev/null and b/QT-Main/etc_image/cart_snack(1).jpg differ diff --git a/QT-Main/etc_image/cart_snack(2).png b/QT-Main/etc_image/cart_snack(2).png new file mode 100644 index 0000000..16266ac Binary files /dev/null and b/QT-Main/etc_image/cart_snack(2).png differ diff --git a/QT-Main/etc_image/cart_snack(3).jpg b/QT-Main/etc_image/cart_snack(3).jpg new file mode 100644 index 0000000..86556fb Binary files /dev/null and b/QT-Main/etc_image/cart_snack(3).jpg differ diff --git a/QT-Main/etc_image/cart_snack(4).jpg b/QT-Main/etc_image/cart_snack(4).jpg new file mode 100644 index 0000000..45b4eca Binary files /dev/null and b/QT-Main/etc_image/cart_snack(4).jpg differ diff --git a/QT-Main/etc_image/cart_snack(5).jpg b/QT-Main/etc_image/cart_snack(5).jpg new file mode 100644 index 0000000..ea7f4ea Binary files /dev/null and b/QT-Main/etc_image/cart_snack(5).jpg differ diff --git a/QT-Main/etc_image/cart_snack(6).jpg b/QT-Main/etc_image/cart_snack(6).jpg new file mode 100644 index 0000000..a9bb52e Binary files /dev/null and b/QT-Main/etc_image/cart_snack(6).jpg differ diff --git a/QT-Main/etc_image/cart_snack(7).jpg b/QT-Main/etc_image/cart_snack(7).jpg new file mode 100644 index 0000000..b321e6f Binary files /dev/null and b/QT-Main/etc_image/cart_snack(7).jpg differ diff --git a/QT-Main/etc_image/cart_snack(8).jpg b/QT-Main/etc_image/cart_snack(8).jpg new file mode 100644 index 0000000..9dd9140 Binary files /dev/null and b/QT-Main/etc_image/cart_snack(8).jpg differ diff --git a/QT-Main/etc_image/counter.png b/QT-Main/etc_image/counter.png new file mode 100755 index 0000000..2766169 Binary files /dev/null and b/QT-Main/etc_image/counter.png differ diff --git a/QT-Main/etc_image/etc_image.qrc b/QT-Main/etc_image/etc_image.qrc new file mode 100644 index 0000000..35f3682 --- /dev/null +++ b/QT-Main/etc_image/etc_image.qrc @@ -0,0 +1,37 @@ + + + card.png + cart.png + counter.png + food.png + home.png + kitty.jpg + search.png + wind.png + map.pgm + guide_map.png + map_handcream.png + map_phone.png + mappin.png + map_snack.png + map_toy.png + map_pay.png + map_cream.png + map_toy_2.png + map_phone_1.png + map_door.png + + + cart_puzzle.png + cart_snack(1).jpg + cart_snack(2).png + cart_snack(3).jpg + cart_snack(4).jpg + cart_snack(5).jpg + cart_snack(6).jpg + cart_snack(7).jpg + cart_snack(8).jpg + cart_handcream.jpg + cart_iphone.jpg + + diff --git a/QT-Main/etc_image/food.png b/QT-Main/etc_image/food.png new file mode 100644 index 0000000..15ae143 Binary files /dev/null and b/QT-Main/etc_image/food.png differ diff --git a/QT-Main/etc_image/guide_map.png b/QT-Main/etc_image/guide_map.png new file mode 100644 index 0000000..9615392 Binary files /dev/null and b/QT-Main/etc_image/guide_map.png differ diff --git a/QT-Main/etc_image/home.png b/QT-Main/etc_image/home.png new file mode 100644 index 0000000..14c7289 Binary files /dev/null and b/QT-Main/etc_image/home.png differ diff --git a/QT-Main/etc_image/kitty.jpg b/QT-Main/etc_image/kitty.jpg new file mode 100644 index 0000000..9db3e2a Binary files /dev/null and b/QT-Main/etc_image/kitty.jpg differ diff --git a/QT-Main/etc_image/map.pgm b/QT-Main/etc_image/map.pgm new file mode 100644 index 0000000..fbe705b Binary files /dev/null and b/QT-Main/etc_image/map.pgm differ diff --git a/QT-Main/etc_image/map_cream.png b/QT-Main/etc_image/map_cream.png new file mode 100644 index 0000000..ad68164 Binary files /dev/null and b/QT-Main/etc_image/map_cream.png differ diff --git a/QT-Main/etc_image/map_door.png b/QT-Main/etc_image/map_door.png new file mode 100644 index 0000000..41163fe Binary files /dev/null and b/QT-Main/etc_image/map_door.png differ diff --git a/QT-Main/etc_image/map_handcream.png b/QT-Main/etc_image/map_handcream.png new file mode 100644 index 0000000..40312ba Binary files /dev/null and b/QT-Main/etc_image/map_handcream.png differ diff --git a/QT-Main/etc_image/map_pay.png b/QT-Main/etc_image/map_pay.png new file mode 100644 index 0000000..55cf082 Binary files /dev/null and b/QT-Main/etc_image/map_pay.png differ diff --git a/QT-Main/etc_image/map_phone.png b/QT-Main/etc_image/map_phone.png new file mode 100644 index 0000000..aac163d Binary files /dev/null and b/QT-Main/etc_image/map_phone.png differ diff --git a/QT-Main/etc_image/map_phone_1.png b/QT-Main/etc_image/map_phone_1.png new file mode 100644 index 0000000..aea75ab Binary files /dev/null and b/QT-Main/etc_image/map_phone_1.png differ diff --git a/QT-Main/etc_image/map_snack.png b/QT-Main/etc_image/map_snack.png new file mode 100644 index 0000000..317e5f0 Binary files /dev/null and b/QT-Main/etc_image/map_snack.png differ diff --git a/QT-Main/etc_image/map_toy.png b/QT-Main/etc_image/map_toy.png new file mode 100644 index 0000000..da80579 Binary files /dev/null and b/QT-Main/etc_image/map_toy.png differ diff --git a/QT-Main/etc_image/map_toy_2.png b/QT-Main/etc_image/map_toy_2.png new file mode 100644 index 0000000..62e7260 Binary files /dev/null and b/QT-Main/etc_image/map_toy_2.png differ diff --git a/QT-Main/etc_image/mappin.png b/QT-Main/etc_image/mappin.png new file mode 100644 index 0000000..732bf8a Binary files /dev/null and b/QT-Main/etc_image/mappin.png differ diff --git a/QT-Main/etc_image/puzzle.jpg b/QT-Main/etc_image/puzzle.jpg new file mode 100644 index 0000000..e339d97 Binary files /dev/null and b/QT-Main/etc_image/puzzle.jpg differ diff --git a/QT-Main/etc_image/search.png b/QT-Main/etc_image/search.png new file mode 100644 index 0000000..d0076d4 Binary files /dev/null and b/QT-Main/etc_image/search.png differ diff --git a/QT-Main/etc_image/wind.png b/QT-Main/etc_image/wind.png new file mode 100644 index 0000000..4bb51b4 Binary files /dev/null and b/QT-Main/etc_image/wind.png differ diff --git a/QT-Main/item_image/apple.jpg b/QT-Main/item_image/apple.jpg new file mode 100644 index 0000000..708d49b Binary files /dev/null and b/QT-Main/item_image/apple.jpg differ diff --git a/QT-Main/item_image/banana.jpg b/QT-Main/item_image/banana.jpg new file mode 100644 index 0000000..4a0a5eb Binary files /dev/null and b/QT-Main/item_image/banana.jpg differ diff --git a/QT-Main/item_image/cart_handcream.jpg b/QT-Main/item_image/cart_handcream.jpg new file mode 100644 index 0000000..3df779a Binary files /dev/null and b/QT-Main/item_image/cart_handcream.jpg differ diff --git a/QT-Main/item_image/cart_iphone.jpg b/QT-Main/item_image/cart_iphone.jpg new file mode 100644 index 0000000..db697db Binary files /dev/null and b/QT-Main/item_image/cart_iphone.jpg differ diff --git a/QT-Main/item_image/cart_snack.jpg b/QT-Main/item_image/cart_snack.jpg new file mode 100644 index 0000000..c8e58dd Binary files /dev/null and b/QT-Main/item_image/cart_snack.jpg differ diff --git a/QT-Main/item_image/fire.jpg b/QT-Main/item_image/fire.jpg new file mode 100644 index 0000000..ebf2b34 Binary files /dev/null and b/QT-Main/item_image/fire.jpg differ diff --git a/QT-Main/item_image/item_image.qrc b/QT-Main/item_image/item_image.qrc new file mode 100644 index 0000000..f79ebd4 --- /dev/null +++ b/QT-Main/item_image/item_image.qrc @@ -0,0 +1,10 @@ + + + apple.jpg + banana.jpg + cart_handcream.jpg + cart_iphone.jpg + cart_snack.jpg + fire.jpg + + diff --git a/QT-Main/main.cpp b/QT-Main/main.cpp new file mode 100644 index 0000000..c70e47b --- /dev/null +++ b/QT-Main/main.cpp @@ -0,0 +1,28 @@ +#include "mainwidget.h" +#include +#include + +int main(int argc, char *argv[]) +{ + // (선택) DPI 흔들림 줄이기 — QApplication 생성 전에 + QCoreApplication::setAttribute(Qt::AA_Use96Dpi); + + QApplication a(argc, argv); + + // (선택) 스타일/폰트 통일 + QApplication::setStyle("Fusion"); + // QApplication::setFont(QFont("Noto Sans CJK KR", 10)); + + MainWidget w; + + // ✅ 800x480 고정 + w.setFixedSize(800, 480); + + // ✅ 타이틀바까지 꽉 채우고 싶으면 FullScreen + w.showFullScreen(); + + // (대안) 창모드로 크게만: w.show(); + // (대안) 최대화: w.showMaximized(); + + return a.exec(); +} diff --git a/QT-Main/mainwidget.cpp b/QT-Main/mainwidget.cpp new file mode 100644 index 0000000..a8f43e6 --- /dev/null +++ b/QT-Main/mainwidget.cpp @@ -0,0 +1,281 @@ +#include "mainwidget.h" +#include "ui_mainwidget.h" +#include +#include +#include +#include +#include +#include +#include +#include + +MainWidget::MainWidget(QWidget *parent) + : QWidget(parent) + , ui(new Ui::MainWidget) + , m_isCheckingWeight(false) +{ + ui->setupUi(this); + qApp->installEventFilter(this); + + m_udpSocket = new QUdpSocket(this); + m_udpSocket->bind(QHostAddress::Any, QT_LISTEN_PORT, QUdpSocket::ShareAddress); + connect(m_udpSocket, &QUdpSocket::readyRead, this, &MainWidget::onUdpReadyRead); + + m_networkManager = new QNetworkAccessManager(this); + connect(m_networkManager, &QNetworkAccessManager::finished, this, &MainWidget::onCheckWeightResponse); + + pPageWelcome = new PageWelcome(this); + pPageCart = new PageCart(this); + pPageCart->setApiConfig(API_SERVER_IP, API_SERVER_PORT); + pPageGuide = new PageGuide(this); + pPagePay = new PagePay(this); + pPageCard = new pagepay_card(this); + pPageTotalPay= new PageTotalPay(this); + + ui->pstackedWidget->addWidget(pPageWelcome); + ui->pstackedWidget->addWidget(pPageCart); + ui->pstackedWidget->addWidget(pPageGuide); + ui->pstackedWidget->addWidget(pPagePay); + ui->pstackedWidget->addWidget(pPageCard); + ui->pstackedWidget->addWidget(pPageTotalPay); + ui->pstackedWidget->setCurrentWidget(pPageWelcome); + + connect(pPageWelcome, &PageWelcome::startRequested, this, &MainWidget::slotShowCartPage); + + connect(pPageGuide, &PageGuide::requestGoal, this, &MainWidget::onGoalRequestReceived); + connect(pPageGuide, &PageGuide::requestStop, this, &MainWidget::onStopRequestReceived); + connect(this, SIGNAL(robotArrivedSignal()), pPageGuide, SLOT(onRobotArrived())); + connect(pPageGuide, SIGNAL(backToCartClicked()), this, SLOT(slotShowCartPage())); + + connect(pPageCart, SIGNAL(guideModeClicked()), this, SLOT(slotShowGuidePage())); + connect(pPageCart, &PageCart::requestCheckout, this, &MainWidget::onCheckoutRequested); + connect(pPageCart, SIGNAL(goWelcome()), this, SLOT(slotShowWelcomePage())); + + connect(pPagePay, SIGNAL(creditCardClicked()), this, SLOT(slotShowPayCardPage())); + connect(pPagePay, SIGNAL(backCartClicked()), this, SLOT(slotShowCartPage())); + + connect(pPageCard, SIGNAL(goTotalPayClicked()), this, SLOT(slotShowTotalPayPage_2())); + connect(pPageTotalPay, &PageTotalPay::backToStartClicked, this, &MainWidget::slotShowWelcomePage); + + connect(ui->pstackedWidget, &QStackedWidget::currentChanged, this, &MainWidget::onPageChanged); + onPageChanged(ui->pstackedWidget->currentIndex()); +} + +MainWidget::~MainWidget() +{ + delete ui; +} + +void MainWidget::sendUdpData(const QString &cmd) +{ + QByteArray data = cmd.toUtf8(); + m_udpSocket->writeDatagram(data, QHostAddress(ROS_SERVER_IP), ROS_SERVER_PORT); + qDebug() << "[UDP Send]" << cmd << "to" << ROS_SERVER_IP; +} + +void MainWidget::onCheckoutRequested(double expectedWeight) +{ + if (m_isCheckingWeight) { + qDebug() << "Check skipped: Already verifying weight..."; + return; + } + m_isCheckingWeight = true; // Lock 설정 + + QString urlStr = QString("http://%1:%2/cart/check_weight") + .arg(API_SERVER_IP) + .arg(API_SERVER_PORT); + + QUrl url(urlStr); + QNetworkRequest request(url); + + // GET 요청 전송 (응답은 onCheckWeightResponse 에서 처리) + m_networkManager->get(request); + + qDebug() << "[API Request] Check Weight ->" << urlStr; +} + +// ROS에서 온 UDP 수신 +void MainWidget::onUdpReadyRead() +{ + while (m_udpSocket->hasPendingDatagrams()) { + QNetworkDatagram datagram = m_udpSocket->receiveDatagram(); + QString msg = QString::fromUtf8(datagram.data()).trimmed(); + + qDebug() << "[UDP Recv]" << msg; + + if (msg == "STATUS:ARRIVED") { + emit robotArrivedSignal(); + } + else if (msg == "STATUS:WEIGHT_OK") { + // [성공] 무게가 일치함 -> 결제 페이지로 이동 + proceedToPayPage(); + } + else if (msg == "ERROR:WEIGHT_MISMATCH") { // 데이터 파싱 (콜론 : 으로 나눔) + QStringList parts = msg.split(":"); + + double expected = 0.0; + double real = 0.0; + double diff = 0.0; + + // 데이터가 같이 왔는지 확인 (안 왔으면 0.0으로 표시됨) + if (parts.size() >= 5) { + expected = parts[2].toDouble(); + real = parts[3].toDouble(); + diff = parts[4].toDouble(); + } + + // 요청하신 팝업 코드 적용 + QString alertMsg = QString("상품 무게가 일치하지 않습니다.\n\n" + "예상 무게: %1 g\n" + "실제 무게: %2 g\n" + "차이: %3 g\n\n" + "카트의 물건을 확인해주세요.") + .arg(expected, 0, 'f', 1) + .arg(real, 0, 'f', 1) + .arg(diff, 0, 'f', 1); + + QMessageBox::warning(this, "출발 불가", alertMsg); + } + } +} + +void MainWidget::proceedToPayPage() +{ + auto cartLines = pPageCart->getCartLines(); + QVector payLines; + payLines.reserve(cartLines.size()); + + for (const auto &c : cartLines) { + PagePay::PayLine p; + p.name = c.name; + p.qty = c.qty; + p.unitPrice = c.unitPrice; + payLines.push_back(p); + } + + pPagePay->setPayItems(payLines); + ui->pstackedWidget->setCurrentWidget(pPagePay); +} + +void MainWidget::onGoalRequestReceived(double x, double y) +{ + QString cmd = QString("GOAL:%1,%2").arg(x).arg(y); + sendUdpData(cmd); +} + +void MainWidget::onStopRequestReceived() +{ + sendUdpData("STOP"); +} + +// 페이지 변경 시 모드 변경 +void MainWidget::onPageChanged(int index) +{ + QWidget *currentWidget = ui->pstackedWidget->widget(index); + int mode = 0; + + if (currentWidget == pPageWelcome) mode = 0; // 정지 + else if (currentWidget == pPageCart) mode = 1; // 따라가기 + else if (currentWidget == pPageGuide) mode = 2; // 안내모드 + else if (currentWidget == pPagePay) mode = 0; // 결제 중 정지 + else mode = 0; + + sendRobotMode(mode); +} + +void MainWidget::sendRobotMode(int mode) +{ + sendUdpData(QString("MODE:%1").arg(mode)); +} + +void MainWidget::on_pPBStartClicked() { ui->pstackedWidget->setCurrentWidget(pPageCart); } +void MainWidget::slotShowCartPage() { ui->pstackedWidget->setCurrentWidget(pPageCart); } +void MainWidget::slotShowGuidePage() { ui->pstackedWidget->setCurrentWidget(pPageGuide); } +void MainWidget::slotShowPayCardPage(){ ui->pstackedWidget->setCurrentWidget(pPageCard); } +void MainWidget::slotShowTotalPayPage_2() { ui->pstackedWidget->setCurrentWidget(pPageTotalPay); } + +void MainWidget::slotShowWelcomePage() +{ + ui->pstackedWidget->setCurrentWidget(pPageWelcome); + pPageCart->resetCart(); +} + +void MainWidget::slotShowPayPage() +{ + auto cartLines = pPageCart->getCartLines(); + QVector payLines; + payLines.reserve(cartLines.size()); + + for (const auto &c : cartLines) { + PagePay::PayLine p; + p.name = c.name; + p.qty = c.qty; + p.unitPrice = c.unitPrice; + payLines.push_back(p); + } + + pPagePay->setPayItems(payLines); + ui->pstackedWidget->setCurrentWidget(pPagePay); +} + +bool MainWidget::eventFilter(QObject *obj, QEvent *event) +{ + if (event->type() == QEvent::KeyPress) { + auto *ke = static_cast(event); + if (ke->key() == Qt::Key_F12) { + qApp->quit(); + return true; + } + } + return QWidget::eventFilter(obj, event); +} + +void MainWidget::onCheckWeightResponse(QNetworkReply *reply) +{ + // 요청한 URL이 check_weight 인지 확인 (다른 API 요청과 섞이지 않게) + if (!reply->request().url().toString().contains("/cart/check_weight")) { + return; + } + + if (reply->error()) { + qDebug() << "API Error:" << reply->errorString(); + QMessageBox::critical(this, "통신 오류", "서버와 통신할 수 없습니다.\n" + reply->errorString()); + reply->deleteLater(); + m_isCheckingWeight = false; + return; + } + + QByteArray data = reply->readAll(); + QJsonDocument doc = QJsonDocument::fromJson(data); + QJsonObject obj = doc.object(); + + // Python 서버 응답 필드: expected_weight, real_weight, diff, movable + bool movable = obj["movable"].toBool(); + double expected = obj["expected_weight"].toDouble(); + double real = obj["real_weight"].toDouble(); + double diff = obj["diff"].toDouble(); + + qDebug() << "[API Response] Movable:" << movable << "Diff:" << diff; + + if (movable) { + // [성공] 오차 범위 내 -> 결제 페이지로 이동 + proceedToPayPage(); + } else { + // [실패] 오차 범위 초과 -> 팝업 띄우기 + QString msg = QString("상품 무게가 일치하지 않습니다.\n\n" + "예상 무게: %1 g\n" + "실제 무게: %2 g\n" + "차이: %3 g\n\n" + "카트의 물건을 확인해주세요.") + .arg(expected, 0, 'f', 1) + .arg(real, 0, 'f', 1) + .arg(diff, 0, 'f', 1); + + QMessageBox::warning(this, "출발 불가", msg); + } + + reply->deleteLater(); + + m_isCheckingWeight = false; + +} \ No newline at end of file diff --git a/QT-Main/mainwidget.h b/QT-Main/mainwidget.h new file mode 100644 index 0000000..f4c1287 --- /dev/null +++ b/QT-Main/mainwidget.h @@ -0,0 +1,87 @@ +#ifndef MAINWIDGET_H +#define MAINWIDGET_H + +#include +#include + +#include +#include +#include +#include +#include + +#define ROS_SERVER_IP "192.168.123.42" +#define ROS_SERVER_PORT 55555 + +#define API_SERVER_IP "192.168.123.43" +#define API_SERVER_PORT 8000 + +#define QT_LISTEN_PORT 55555 + +#include "pagewelcome.h" +#include "pagecart.h" +#include "pageguide.h" +#include "pagepay.h" +#include "pagepay_card.h" +#include "pagetotalpay.h" + +QT_BEGIN_NAMESPACE +namespace Ui { class MainWidget; } +QT_END_NAMESPACE + +class MainWidget : public QWidget +{ + Q_OBJECT + +public: + explicit MainWidget(QWidget *parent = nullptr); + ~MainWidget(); + +signals: + void robotArrivedSignal(); + +private: + Ui::MainWidget *ui; + QUdpSocket *m_udpSocket; + + QNetworkAccessManager *m_networkManager; + + PageWelcome *pPageWelcome; + PageCart *pPageCart; + PageGuide *pPageGuide; + PagePay *pPagePay; + pagepay_card *pPageCard; + PageTotalPay *pPageTotalPay; + + bool m_isCheckingWeight; + + void sendUdpData(const QString &cmd); + void sendRobotMode(int mode); // 모드 전송 (0:정지, 1:따라가기, 2:안내) + +protected: + bool eventFilter(QObject *obj, QEvent *event) override; + +private slots: + void onUdpReadyRead(); // UDP 수신부 (무게 검증 결과 처리) + + void onCheckWeightResponse(QNetworkReply *reply); + + void on_pPBStartClicked(); + void slotShowPayPage(); + + void slotShowCartPage(); + void slotShowGuidePage(); + void slotShowPayCardPage(); + void slotShowTotalPayPage_2(); + void slotShowWelcomePage(); + + void onCheckoutRequested(double expectedWeight); + + void proceedToPayPage(); + + void onGoalRequestReceived(double x, double y); + void onStopRequestReceived(); + void onPageChanged(int index); +}; + +#endif // MAINWIDGET_H \ No newline at end of file diff --git a/QTCart/mainwidget.ui b/QT-Main/mainwidget.ui similarity index 92% rename from QTCart/mainwidget.ui rename to QT-Main/mainwidget.ui index 5335990..1843e5f 100644 --- a/QTCart/mainwidget.ui +++ b/QT-Main/mainwidget.ui @@ -6,8 +6,8 @@ 0 0 - 685 - 463 + 565 + 348 diff --git a/QT-Main/pagecart.cpp b/QT-Main/pagecart.cpp new file mode 100644 index 0000000..565fd74 --- /dev/null +++ b/QT-Main/pagecart.cpp @@ -0,0 +1,408 @@ +#include "pagecart.h" +#include "ui_pagecart.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +static QString moneyKR(qint64 v) +{ + const QLocale loc(QLocale::Korean, QLocale::SouthKorea); + return loc.toString(v) + "원"; +} + +static QString imageForName(const QString& name) +{ + if(name=="홈런볼 초코맛") return ":/cart_snack(1).jpg"; + if(name=="허니버터칩") return ":/cart_snack(2).png"; + if(name=="오레오 초콜릿크림") return ":/cart_snack(3).jpg"; + if(name=="빼빼로 아몬드") return ":/cart_snack(4).jpg"; + if(name=="빈츠") return ":/cart_snack(5).jpg"; + if(name=="예감 치즈그르탕") return ":/cart_snack(6).jpg"; + if(name=="오!감자 감자그라탕") return ":/cart_snack(7).jpg"; + if(name=="포카칩 오리지널") return ":/cart_snack(8).jpg"; + if(name=="아이폰 15 프로") return ":/cart_iphone.jpg"; + if(name=="핸드크림") return ":/cart_handcream.jpg"; + if(name=="크리스마스 퍼즐") return ":/cart_puzzle.png"; + return ""; +} + +PageCart::PageCart(QWidget *parent) + : QWidget(parent), + ui(new Ui::PageCart) +{ + ui->setupUi(this); + + // 그림자 효과 + auto makeShadow = [](QObject *parent){ + auto *s = new QGraphicsDropShadowEffect(parent); + s->setBlurRadius(18); + s->setOffset(0, 4); + s->setColor(QColor(0, 0, 0, 60)); + return s; + }; + ui->tableCart->setStyleSheet( + "QTableWidget::item { padding: 0px; margin: 0px; }" + "QTableWidget { border: none; }" + ); + + if (ui->widget_2) ui->widget_2->setGraphicsEffect(makeShadow(ui->widget_2)); + if (ui->widget) ui->widget->setGraphicsEffect(makeShadow(ui->widget)); + + ui->tableCart->setSelectionMode(QAbstractItemView::NoSelection); + ui->tableCart->setEditTriggers(QAbstractItemView::NoEditTriggers); + ui->tableCart->setShowGrid(false); + + // 바코드 입력용 숨김 QLineEdit + m_editBarcode = new QLineEdit(this); + m_editBarcode->setVisible(false); + m_editBarcode->setFocusPolicy(Qt::StrongFocus); + m_editBarcode->setFocus(); + connect(m_editBarcode, SIGNAL(returnPressed()), this, SLOT(onBarcodeEntered())); + + qApp->installEventFilter(this); + + m_scanner = new BarcodeScanner(this); + connect(m_scanner, &BarcodeScanner::itemFetched, this, &PageCart::handleItemFetched); + connect(m_scanner, &BarcodeScanner::fetchFailed, this, &PageCart::handleFetchFailed); + + // 테이블 컬럼 설정 + ui->tableCart->setColumnCount(7); + ui->tableCart->horizontalHeader()->setVisible(false); + ui->tableCart->verticalHeader()->setVisible(false); + ui->tableCart->horizontalHeader()->setSectionResizeMode(0, QHeaderView::ResizeToContents); + ui->tableCart->horizontalHeader()->setSectionResizeMode(1, QHeaderView::Stretch); + + ui->tableCart->setColumnWidth(0, 54); + ui->tableCart->setColumnWidth(2, 52); + ui->tableCart->setColumnWidth(3, 42); + ui->tableCart->setColumnWidth(5, 76); + ui->tableCart->setColumnWidth(6, 46); + + updateTotal(); + + if (ui->btnHome) { + connect(ui->btnHome, &QPushButton::clicked, this, [this](){ + emit goWelcome(); + }); + } +} + +PageCart::~PageCart() +{ + delete ui; +} + +// MainWidget으로부터 API 설정 주입 +void PageCart::setApiConfig(const QString &ip, int port) +{ + if (m_scanner) { + m_scanner->setApiBaseUrl(ip, port); + } + resetCart(); +} + +// 카트 행 추가 +void PageCart::addRowForItem(const QString& id, const QString& name, int unitPrice, int qty, double weight) +{ + int row = ui->tableCart->rowCount(); + ui->tableCart->insertRow(row); + ui->tableCart->setRowHeight(row, 60); + + m_unitPrice.append(unitPrice); + + ItemInfo info; + info.id = id; + info.name = name; + info.price = unitPrice; + info.weight = weight; + m_items.append(info); + + auto makeCenterCell = [&](QWidget *child) -> QWidget* { + QWidget *w = new QWidget(ui->tableCart); + auto *lay = new QHBoxLayout(w); + lay->setContentsMargins(0, 0, 0, 0); + lay->setSpacing(0); + lay->setAlignment(Qt::AlignCenter); + lay->addWidget(child); + return w; + }; + auto makeRightCell = [&](QWidget *child) -> QWidget* { + QWidget *w = new QWidget(ui->tableCart); + auto *lay = new QHBoxLayout(w); + lay->setContentsMargins(0, 0, 0, 0); + lay->setSpacing(0); + lay->addStretch(); + lay->addWidget(child); + return w; + }; + + // 이미지 + QLabel *img = new QLabel(ui->tableCart); + img->setFixedSize(44, 44); + img->setAlignment(Qt::AlignCenter); + QPixmap px(imageForName(name)); + if (!px.isNull()) { + img->setPixmap(px.scaled(44, 44, Qt::KeepAspectRatioByExpanding, Qt::SmoothTransformation)); + } + ui->tableCart->setCellWidget(row, 0, makeCenterCell(img)); + ui->tableCart->setItem(row, 1, new QTableWidgetItem(name)); + + QPushButton *btnPlus = new QPushButton("+", ui->tableCart); + btnPlus->setFixedSize(26, 30); + btnPlus->setStyleSheet("QPushButton { background-color: rgb(37,99,235); color: white; border-radius: 10px; font-weight: bold; }"); + ui->tableCart->setCellWidget(row, 2, makeCenterCell(btnPlus)); + connect(btnPlus, &QPushButton::clicked, this, &PageCart::onPlusClicked); + + QTableWidgetItem *qtyItem = new QTableWidgetItem(QString::number(qty)); + qtyItem->setTextAlignment(Qt::AlignCenter); + ui->tableCart->setItem(row, 3, qtyItem); + + QPushButton *btnMinus = new QPushButton("-", ui->tableCart); + btnMinus->setFixedSize(30, 30); + btnMinus->setStyleSheet("QPushButton { background-color: rgb(154,153,150); color: white; border-radius: 10px; font-weight: bold; }"); + ui->tableCart->setCellWidget(row, 4, makeCenterCell(btnMinus)); + connect(btnMinus, &QPushButton::clicked, this, &PageCart::onMinusClicked); + + QTableWidgetItem *priceItem = new QTableWidgetItem(moneyKR(0)); + priceItem->setTextAlignment(Qt::AlignRight | Qt::AlignVCenter); + ui->tableCart->setItem(row, 5, priceItem); + + // 삭제 버튼 + QPushButton *btnDelete = new QPushButton("X", ui->tableCart); + btnDelete->setFixedSize(30, 30); + btnDelete->setStyleSheet("QPushButton { background-color: rgb(224,27,36); color: white; border-radius: 10px; font-weight: bold; }"); + ui->tableCart->setCellWidget(row, 6, makeRightCell(btnDelete)); + connect(btnDelete, &QPushButton::clicked, this, &PageCart::onDeleteClicked); + + updateRowAmount(row); +} + +void PageCart::onPlusClicked() +{ + QPushButton *btn = qobject_cast(sender()); + if (!btn) return; + + int row = getRowFromButton(btn); + if (row < 0 || row >= m_items.size()) return; + + QString itemId = m_items[row].id; + m_scanner->fetchItemDetails(itemId); +} + +void PageCart::onMinusClicked() +{ + QPushButton *btn = qobject_cast(sender()); + if (!btn) return; + + int row = getRowFromButton(btn); + if (row < 0 || row >= m_items.size()) return; + + QString itemId = m_items[row].id; + m_scanner->removeItem(itemId); + + int currentQty = ui->tableCart->item(row, 3)->text().toInt(); + int newQty = currentQty - 1; + + if (newQty <= 0) { + m_unitPrice.removeAt(row); + m_items.removeAt(row); + ui->tableCart->removeRow(row); + } else { + ui->tableCart->item(row, 3)->setText(QString::number(newQty)); + updateRowAmount(row); + } + updateTotal(); +} + +void PageCart::onDeleteClicked() +{ + QPushButton *btn = qobject_cast(sender()); + if (!btn) return; + + int row = getRowFromButton(btn); + if (row < 0 || row >= m_items.size()) return; + + QString itemId = m_items[row].id; + int qty = ui->tableCart->item(row, 3)->text().toInt(); + + for (int i = 0; i < qty; ++i) { + m_scanner->removeItem(itemId); + } + + m_unitPrice.removeAt(row); + m_items.removeAt(row); + ui->tableCart->removeRow(row); + updateTotal(); +} + +void PageCart::updateRowAmount(int row) +{ + if (row < 0 || row >= m_unitPrice.size()) return; + int qty = ui->tableCart->item(row, 3)->text().toInt(); + int amount = m_unitPrice[row] * qty; + ui->tableCart->item(row, 5)->setText(moneyKR(amount)); +} + +void PageCart::updateTotal() +{ + int totalCount = 0; + int totalPrice = 0; + + for (int r = 0; r < ui->tableCart->rowCount(); ++r) { + auto *qtyItem = ui->tableCart->item(r, 3); + if (!qtyItem) continue; + int qty = qtyItem->text().toInt(); + totalCount += qty; + int unit = (r < m_unitPrice.size()) ? m_unitPrice[r] : 0; + totalPrice += unit * qty; + } + + if (ui->lblTotalPrice_2) + ui->lblTotalPrice_2->setText(moneyKR(totalPrice)); + if (ui->lblCartTitle) + ui->lblCartTitle->setText(QString("Cart (%1 products)").arg(totalCount)); +} + +void PageCart::onBarcodeEntered() +{ + QString code = m_editBarcode->text().trimmed(); + m_editBarcode->clear(); + if (code.isEmpty()) return; + m_scanner->fetchItemDetails(code); +} + +bool PageCart::eventFilter(QObject *obj, QEvent *event) +{ + Q_UNUSED(obj); + if (event->type() == QEvent::KeyPress) { + QKeyEvent *keyEvent = static_cast(event); + if (keyEvent->key() == Qt::Key_Return || keyEvent->key() == Qt::Key_Enter) { + if (!m_barcodeData.isEmpty()) { + m_scanner->fetchItemDetails(m_barcodeData); + m_barcodeData.clear(); + } + return true; + } + else if (!keyEvent->text().isEmpty() && + !(keyEvent->modifiers() & (Qt::ShiftModifier | Qt::ControlModifier | Qt::AltModifier))) { + m_barcodeData.append(keyEvent->text()); + return true; + } + } + return QWidget::eventFilter(obj, event); +} + +void PageCart::handleItemFetched(const Item &item) +{ + QString strId = item.id; + + int rowFound = -1; + for (int r = 0; r < ui->tableCart->rowCount(); ++r) { + if (m_items[r].id == strId || m_items[r].name == item.name) { + rowFound = r; + break; + } + } + + if (rowFound == -1) { + int unit = static_cast(std::lround(item.price)); + addRowForItem(strId, item.name, unit, 1, item.weight); + } else { + int qty = ui->tableCart->item(rowFound, 3)->text().toInt(); + ui->tableCart->item(rowFound, 3)->setText(QString::number(qty + 1)); + + m_items[rowFound].id = strId; + m_items[rowFound].weight = item.weight; + + updateRowAmount(rowFound); + } + updateTotal(); +} + +void PageCart::handleFetchFailed(const QString &err) +{ + qDebug() << "Barcode fetch failed:" << err; + QMessageBox::warning(this, "스캔 실패", "상품 정보를 불러오지 못했습니다.\n" + err); +} + +void PageCart::on_btnGuide_clicked() { emit guideModeClicked(); } + +void PageCart::on_pushButton_clicked() { resetCart(); } + +QVector PageCart::getCartLines() const +{ + QVector out; + for (int r = 0; r < ui->tableCart->rowCount(); ++r) { + auto *nameItem = ui->tableCart->item(r, 1); + auto *qtyItem = ui->tableCart->item(r, 3); + if (!nameItem || !qtyItem) continue; + int qty = qtyItem->text().toInt(); + if (qty <= 0) continue; + int unitPrice = (r < m_unitPrice.size()) ? m_unitPrice[r] : 0; + out.push_back({ nameItem->text(), qty, unitPrice }); + } + return out; +} + +void PageCart::resetCart() +{ + ui->tableCart->setRowCount(0); + m_unitPrice.clear(); + m_items.clear(); + updateTotal(); +} + +int PageCart::getRowFromButton(QWidget *btn) +{ + if (!btn) return -1; + int rowCount = ui->tableCart->rowCount(); + for (int r = 0; r < rowCount; ++r) { + int targetCols[] = {2, 4, 6}; + for (int c : targetCols) { + QWidget *cellWidget = ui->tableCart->cellWidget(r, c); + if (cellWidget && (cellWidget == btn || cellWidget->isAncestorOf(btn))) { + return r; + } + } + } + return -1; +} + +double PageCart::getTotalWeight() const +{ + double totalWeight = 0.0; + // m_items와 테이블의 행은 동기화되어 있다고 가정 + for(int i = 0; i < m_items.size(); ++i) { + if (i >= ui->tableCart->rowCount()) break; + + QTableWidgetItem *itemQty = ui->tableCart->item(i, 3); + if (itemQty) { + int qty = itemQty->text().toInt(); + totalWeight += (m_items[i].weight * qty); + } + } + return totalWeight; +} + +void PageCart::on_btnCheckout_clicked() +{ + if (ui->tableCart->rowCount() == 0) { + QMessageBox::information(this, "알림", "장바구니가 비어있습니다."); + return; + } + + // [수정] 예상 무게를 계산하여 MainWidget으로 전달 + double expected = getTotalWeight(); + qDebug() << "Request Checkout - Expected Weight:" << expected; + emit requestCheckout(expected); +} \ No newline at end of file diff --git a/QT-Main/pagecart.h b/QT-Main/pagecart.h new file mode 100644 index 0000000..56228dd --- /dev/null +++ b/QT-Main/pagecart.h @@ -0,0 +1,84 @@ +#ifndef PAGECART_H +#define PAGECART_H + +#include +#include +#include +#include + +#include "barcodescanner.h" + +namespace Ui { class PageCart; } + +struct ItemInfo { + QString id; + QString name; + int price; + double weight; +}; + +class PageCart : public QWidget +{ + Q_OBJECT + +public: + explicit PageCart(QWidget *parent = nullptr); + ~PageCart(); + + struct CartLine { + QString name; + int qty; + int unitPrice; + }; + + QVector getCartLines() const; + + // MainWidget에서 API 설정 받기 + void setApiConfig(const QString &ip, int port); + + double getTotalWeight() const; + +public slots: + void resetCart(); + +signals: + void guideModeClicked(); + void goWelcome(); + void requestCheckout(double totalWeight); + +private slots: + void onPlusClicked(); + void onMinusClicked(); + void onDeleteClicked(); + void onBarcodeEntered(); + + void handleItemFetched(const Item &item); + void handleFetchFailed(const QString &err); + + void on_pushButton_clicked(); // 카트 비우기 + void on_btnCheckout_clicked(); // 결제 버튼 + void on_btnGuide_clicked(); // 안내 버튼 + +protected: + bool eventFilter(QObject *obj, QEvent *event) override; + +private: + Ui::PageCart *ui; + + QVector m_items; + QVector m_unitPrice; + + QLineEdit *m_editBarcode = nullptr; + QString m_barcodeData; + BarcodeScanner *m_scanner = nullptr; + + void addRowForItem(const QString& id, const QString& name, int unitPrice, int qty, double weight); + void updateRowAmount(int row); + void updateTotal(); + int getRowFromButton(QWidget *btn); +}; + + + + +#endif // PAGECART_H diff --git a/QT-Main/pagecart.ui b/QT-Main/pagecart.ui new file mode 100644 index 0000000..ddae55a --- /dev/null +++ b/QT-Main/pagecart.ui @@ -0,0 +1,478 @@ + + + PageCart + + + + 0 + 0 + 800 + 480 + + + + Form + + + background-color: rgb(242, 244, 245); + + + + + + + QFrame::Shape::StyledPanel + + + QFrame::Shadow::Raised + + + + + 10 + 60 + 531 + 371 + + + + background-color: rgb(255, 255, 255); +border-radius: 16px; + + + + + + 10 + 120 + 511 + 241 + + + + + + + 50 + 70 + 71 + 31 + + + + font: 14pt "Ubuntu Mono"; + + + Product + + + + + + 230 + 70 + 71 + 31 + + + + font: 14pt "Ubuntu Mono"; + + + Count + + + + + + 415 + 70 + 71 + 31 + + + + font: 14pt "Ubuntu Mono"; + + + Price + + + + + + 0 + 0 + 531 + 61 + + + + background-color: rgb(255, 255, 255); + +border-style: solid; +border-top: 1px solid rgb(255, 255, 255); +border-left: 1px solid rgb(255, 255, 255); +border-right: 1px solid rgb(255, 255, 255); +border-bottom: 1px solid rgb(200, 200, 200); + +border-radius: 0px; + + + + QFrame::Shape::StyledPanel + + + QFrame::Shadow::Raised + + + + + 10 + 10 + 81 + 31 + + + + font: 700 23pt "Umpush"; + + +border-style: solid; +border-top: 1px solid rgb(255, 255, 255); +border-left: 1px solid rgb(255, 255, 255); +border-right: 1px solid rgb(255, 255, 255); +border-bottom: 1px solid rgb(255, 255, 255); + +border-radius: 0px; + + + + Cart + + + + + + 90 + 20 + 151 + 17 + + + + font: 13pt "Umpush"; + + +border-style: solid; +border-top: 1px solid rgb(255, 255, 255); +border-left: 1px solid rgb(255, 255, 255); +border-right: 1px solid rgb(255, 255, 255); +border-bottom: 1px solid rgb(255, 255, 255); + +border-radius: 0px; + + + + + + + + + + 410 + 10 + 111 + 41 + + + + QPushButton { + background-color: rgb(224, 27, 36); + font: 300 12pt "Umpush"; + color: rgb(255, 255, 255); + border: none; + border-radius: 14px; + padding: 10px 18px; +} +QPushButton:hover { + background-color: rgb(192, 28, 40); +} +QPushButton:pressed { + background-color: rgb(120, 0, 10); +} +QPushButton:disabled { + background-color: rgb(120, 120, 120); + color: rgb(230, 230, 230); +} + + + + clear cart + + + + + + + + 550 + 60 + 191 + 261 + + + + background-color: rgb(255, 255, 255); + + + + + 0 + 180 + 351 + 81 + + + + background-color: rgb(255, 255, 255); + +border-style: solid; +border-top: 1px solid rgb(200, 200, 200); +border-left: 1px solid rgb(255, 255, 255); +border-right: 1px solid rgb(255, 255, 255); +border-bottom: 1px solid rgb(255, 255, 255); + +border-radius: 0px; + + + + QFrame::Shape::StyledPanel + + + QFrame::Shadow::Raised + + + + + 3 + 21 + 181 + 41 + + + + background-color: rgb(53, 132, 228); +color: rgb(255, 255, 255); +border: none; +border-radius: 14px; +padding: 10px 18px; + + + + 결제하기 + + + + + + + 0 + 30 + 321 + 31 + + + + image: url(:/new/prefix1/Gemini_Generated_Image_u34sf6u34sf6u34s.png); + + + + + + + + + 10 + 20 + 111 + 31 + + + + font: 700 18pt "Umpush"; +background-color: rgb(255, 255, 255); +border: none; +border-radius: 16px; + + + + 총 금액 + + + + + + 20 + 100 + 161 + 51 + + + + font: 700 21pt "Umpush"; +background-color: rgb(255, 255, 255); +border: none; +border-radius: 16px; + + + + + + + + + + + 640 + 10 + 41 + 41 + + + + + 30 + 30 + + + + font: 23pt "Ria Sans"; +image: url(:/etc/search.png); +border-radius: 0px; +background-color: rgb(242, 244, 245); + + + + + + + + 28 + 80 + + + + + + + 700 + 10 + 41 + 41 + + + + + 30 + 30 + + + + font: 23pt "Ria Sans"; +image: url(:/etc/home.png); +border-radius: 0px; +padding: 0px 0px; +background-color: rgb(242, 244, 245); + + + + + + + + 28 + 80 + + + + + + + 330 + 20 + 121 + 20 + + + + font: 13pt "Ubuntu Condensed"; +color: rgb(0, 0, 0); + +color: rgb(154, 153, 150); + + + O Checkout + + + + + + 470 + 19 + 111 + 17 + + + + font: 13pt "Ubuntu Condensed"; +color: rgb(154, 153, 150); +background-color: #F2F4F7; + + + O Payment + + + + + + 220 + 19 + 111 + 17 + + + + font: 13pt "Ubuntu Condensed"; +background-color: #F2F4F7; +background-color: #F2F4F7; + + + O Cart + + + + + + 550 + 330 + 191 + 101 + + + + image: url(:/etc/counter.png); +border-radius: 16px; + + + + + + + + + + + + + diff --git a/QT-Main/pageguide.cpp b/QT-Main/pageguide.cpp new file mode 100644 index 0000000..9045db1 --- /dev/null +++ b/QT-Main/pageguide.cpp @@ -0,0 +1,180 @@ +#include "pageguide.h" +#include "ui_pageguide.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include + +PageGuide::PageGuide(QWidget *parent) + : QWidget(parent) + , ui(new Ui::PageGuide) +{ + ui->setupUi(this); + + QPixmap pm(":/etc/guide_map.png"); + if(!pm.isNull()) { + m_treePixmap = pm; + ui->lblmap->setPixmap(pm); + ui->lblmap->setScaledContents(true); + } + ui->lblmap->setStyleSheet("border-radius:14px; background:#ffffff; border: none;"); + + // 버튼 연결 + connect(ui->btnBackToCart, &QPushButton::clicked, this, &PageGuide::onBackToCartClicked); + connect(ui->btnpuzzle, &QPushButton::clicked, this, &PageGuide::onPuzzleClicked); + connect(ui->btncream, &QPushButton::clicked, this, &PageGuide::onCreamClicked); + connect(ui->btnsnack, &QPushButton::clicked, this, &PageGuide::onSnackClicked); + connect(ui->btnpay, &QPushButton::clicked, this, &PageGuide::onPayClicked); + connect(ui->btnphone, &QPushButton::clicked, this, &PageGuide::onbtnphoneClicked); +} + +PageGuide::~PageGuide() +{ + delete ui; +} + +void PageGuide::resizeEvent(QResizeEvent *e) +{ + QWidget::resizeEvent(e); + applyTreePixmap(); +} + +void PageGuide::applyTreePixmap() +{ + if (m_treePixmap.isNull() || !ui->lblmap) return; + QSize target = ui->lblmap->size(); + QPixmap scaled = m_treePixmap.scaled(target, Qt::KeepAspectRatio, Qt::SmoothTransformation); + ui->lblmap->setPixmap(scaled); +} + +void PageGuide::onBackToCartClicked() +{ + emit backToCartClicked(); +} + +void PageGuide::onPuzzleClicked() +{ + emit requestGoal(-0.1, -2.4); + showMovePopup("01코너 식품"); +} + +void PageGuide::onSnackClicked() +{ + emit requestGoal(3.0, 0.55); + showMovePopup("02코너 장난감"); +} + +void PageGuide::onCreamClicked() +{ + emit requestGoal(2.6, -6.5); + showMovePopup("03코너 생필품"); +} + +void PageGuide::onbtnphoneClicked() +{ + emit requestGoal(-0.1, -5.0); + showMovePopup("04코너 전자제품"); +} + +void PageGuide::onPayClicked() +{ + emit requestGoal(-0.07, -6.7); + showMovePopup("결제 구역"); +} + +void PageGuide::showMovePopup(const QString &zoneText) +{ + // 이미 떠있는 팝업이 있다면 닫기 + if (m_currentPopup) { + m_currentPopup->close(); + delete m_currentPopup; + m_currentPopup = nullptr; + } + + QWidget *parentW = this->window(); + m_currentPopup = new QDialog(parentW); + QDialog &dlg = *m_currentPopup; + + dlg.setWindowFlags(Qt::FramelessWindowHint | Qt::Dialog); + dlg.setModal(true); + dlg.setAttribute(Qt::WA_DeleteOnClose); + dlg.setStyleSheet("QDialog { background: transparent; }"); + dlg.setFixedSize(520, 260); + + // 팝업이 닫힐 때 포인터 초기화 + connect(&dlg, &QDialog::destroyed, this, [this](){ + m_currentPopup = nullptr; + }); + + // 중앙 정렬 + const QPoint parentTopLeft = parentW->mapToGlobal(QPoint(0, 0)); + const int x = parentTopLeft.x() + (parentW->width() - dlg.width()) / 2; + const int y = parentTopLeft.y() + (parentW->height() - dlg.height()) / 2; + dlg.move(x, y); + + // 카드 스타일 UI 구성 + QFrame *card = new QFrame(&dlg); + card->setObjectName("popupCard"); + card->setStyleSheet("#popupCard { background: rgb(246, 245, 244); border-radius: 16px; }"); + + auto *shadow = new QGraphicsDropShadowEffect(card); + shadow->setBlurRadius(30); + shadow->setOffset(0, 8); + shadow->setColor(QColor(0, 0, 0, 80)); + card->setGraphicsEffect(shadow); + + QVBoxLayout *root = new QVBoxLayout(&dlg); + root->setContentsMargins(0, 0, 0, 0); + root->addWidget(card); + + QVBoxLayout *lay = new QVBoxLayout(card); + lay->setContentsMargins(28, 24, 28, 24); + lay->setSpacing(14); + + QLabel *title = new QLabel(QString("%1로 이동 중입니다").arg(zoneText), card); + title->setAlignment(Qt::AlignCenter); + title->setStyleSheet("font-size:24px; font-weight:900; color:#111827;"); + + QLabel *desc = new QLabel("확인을 누르면 이동을 중단합니다.", card); + desc->setAlignment(Qt::AlignCenter); + desc->setStyleSheet("font-size:16px; font-weight:700; color:#6B7280;"); + + QPushButton *stopBtn = new QPushButton("확인(이동 중단)", card); + stopBtn->setFixedHeight(48); + stopBtn->setMinimumWidth(220); + stopBtn->setStyleSheet( + "QPushButton{ background:#EF4444; color:white; border:none; border-radius:12px; " + "font-size:18px; font-weight:900; padding:8px 18px; }" + "QPushButton:hover{ background:#DC2626; }" + "QPushButton:pressed{ background:#B91C1C; }" + ); + + lay->addStretch(); + lay->addWidget(title); + lay->addWidget(desc); + lay->addSpacing(8); + lay->addWidget(stopBtn, 0, Qt::AlignHCenter); + lay->addStretch(); + + // 안내 중지 버튼 -> MainWidget에 신호 + connect(stopBtn, &QPushButton::clicked, this, [this, &dlg](){ + emit requestStop(); + dlg.accept(); + }); + + dlg.show(); +} + +// 도착 알림 -> 팝업 끄기 +void PageGuide::onRobotArrived() +{ + if (m_currentPopup) { + qDebug() << "PageGuide: Robot Arrived! Closing popup."; + m_currentPopup->accept(); + } +} diff --git a/QT-Main/pageguide.h b/QT-Main/pageguide.h new file mode 100644 index 0000000..c39a10e --- /dev/null +++ b/QT-Main/pageguide.h @@ -0,0 +1,46 @@ +#ifndef PAGEGUIDE_H +#define PAGEGUIDE_H + +#include +#include +#include + +namespace Ui { class PageGuide; } + +class PageGuide : public QWidget +{ + Q_OBJECT + +public: + explicit PageGuide(QWidget *parent = nullptr); + ~PageGuide(); + +public slots: + void onRobotArrived(); + +signals: + void backToCartClicked(); + void requestGoal(double x, double y); + void requestStop(); + +protected: + void resizeEvent(QResizeEvent *e) override; + +private slots: + void onBackToCartClicked(); + void onPuzzleClicked(); + void onCreamClicked(); + void onSnackClicked(); + void onPayClicked(); + void onbtnphoneClicked(); + +private: + Ui::PageGuide *ui; + QPixmap m_treePixmap; + QDialog *m_currentPopup = nullptr; + + void applyTreePixmap(); + void showMovePopup(const QString &zoneText); +}; + +#endif // PAGEGUIDE_H \ No newline at end of file diff --git a/QT-Main/pageguide.ui b/QT-Main/pageguide.ui new file mode 100644 index 0000000..922effe --- /dev/null +++ b/QT-Main/pageguide.ui @@ -0,0 +1,438 @@ + + + PageGuide + + + + 0 + 0 + 800 + 480 + + + + Form + + + + + + /* ===== 카드(프레임) ===== */ +QFrame#frameCornerList { + background-color: rgb(255, 255, 255); + border-radius: 16px; + border: 1px solid rgb(229, 231, 235); /* 연회색 */ +} + +/* 제목 라벨 */ +QLabel#lblCornerTitle { + background: transparent; + color: rgb(17, 24, 39); /* 진한 글씨 */ + font-size: 20px; + font-weight: 800; +} + +/* ===== 리스트 위젯 ===== */ +QListWidget#listCorners { + background: transparent; + border: none; + outline: 0; + padding: 6px; +} + +/* 스크롤바 깔끔하게 (선택) */ +QListWidget#listCorners QScrollBar:vertical { + width: 10px; + background: transparent; +} +QListWidget#listCorners QScrollBar::handle:vertical { + background: rgb(209, 213, 219); + border-radius: 5px; + min-height: 20px; +} +QListWidget#listCorners QScrollBar::add-line:vertical, +QListWidget#listCorners QScrollBar::sub-line:vertical { + height: 0px; +} + +/* ===== 아이템(행) 스타일 ===== */ +QListWidget#listCorners::item { + background-color: rgb(249, 250, 251); /* 살짝 회색 */ + border: 1px solid rgb(229, 231, 235); + border-radius: 12px; + + padding: 14px 16px; /* 안쪽 여백 */ + margin: 6px 4px; /* 아이템 간 간격 */ + + color: rgb(17, 24, 39); + font-size: 16px; + font-weight: 700; +} + + + + + + QFrame::Shape::StyledPanel + + + QFrame::Shadow::Raised + + + + + 90 + 350 + 61 + 51 + + + + border-image: url(:/etc/map_pay.png); + + + + + + + + + 390 + 150 + 61 + 61 + + + + border-image: url(:/etc/map_toy_2.png); + +QPushButton#Region1:hover{ + background-color: rgb(222, 221, 218); +}; +QPushButton#Region1:pressed{ + background-color: rgb(222, 221, 218); +} + + + + + + + + + 190 + 170 + 61 + 71 + + + + border-image: url(:/etc/map_snack.png); + + + + + + + + + 550 + 10 + 201 + 41 + + + + background-color: rgb(53, 132, 228); +color: rgb(255, 255, 255); +border: none; +border-radius: 14px; +padding: 10px 18px; +font: 14pt "Ubuntu"; + + + 장바구니로 돌아가기 + + + + + + 10 + 10 + 121 + 31 + + + + font: 700 22pt "Ubuntu"; +color: rgb(46, 194, 126); + + + 안내 지도 + + + + + + 20 + 70 + 521 + 341 + + + + + 780 + 800 + + + + border-image: url(:/etc/guide_map.png); + +border-style: solid; +border-top: 3px solid rgb(200, 200, 200); +border-left: 3px solid rgb(200, 200, 200); +border-right: 3px solid rgb(200, 200, 200); +border-bottom: 3px solid rgb(200, 200, 200); + + + + + + + + + + + + + + 140 + 20 + 391 + 20 + + + + font: 300 italic 11pt "Ubuntu"; +color: rgb(224, 27, 36); + + + **지도의 아이콘을 터치하면 해당 구역으로 안내가 시작됩니다 + + + + + + 100 + 290 + 51 + 51 + + + + border-image: url(:/etc/map_phone_1.png); + + + + + + + + + 390 + 350 + 51 + 51 + + + + border-image: url(:/etc/map_cream.png); + + + + + + + + + 180 + 180 + 21 + 17 + + + + font: 700 14pt "Ubuntu"; +color: rgb(255, 255, 255); +background-color: rgb(224, 27, 36); + + + 01 + + + + + + 380 + 140 + 21 + 17 + + + + font: 700 14pt "Ubuntu"; +color: rgb(255, 255, 255); +background-color: rgb(224, 27, 36); + + + 02 + + + + + + 370 + 350 + 21 + 20 + + + + font: 700 14pt "Ubuntu"; +color: rgb(255, 255, 255); +background-color: rgb(224, 27, 36); + + + 03 + + + + + + 80 + 290 + 21 + 17 + + + + font: 700 14pt "Ubuntu"; +color: rgb(255, 255, 255); +background-color: rgb(224, 27, 36); + + + 04 + + + + + + 560 + 60 + 191 + 361 + + + + QFrame::Shape::StyledPanel + + + QFrame::Shadow::Raised + + + + + 60 + 0 + 81 + 31 + + + + +font: 700 16pt "Ubuntu"; + + + 물품위치 + + + + + + 0 + 30 + 191 + 341 + + + + font: 11pt "Ubuntu"; + + + + 01코너 식품 + + + + + 02코너 장난감 + + + + + 03코너 생필품 + + + + + 04코너 전자제품 + + + + + 05코너 계산대 + + + + + + + + 70 + 360 + 21 + 17 + + + + font: 700 14pt "Ubuntu"; +color: rgb(255, 255, 255); +background-color: rgb(224, 27, 36); + + + 05 + + + lblmap + btnpay + btnpuzzle + btnsnack + btnBackToCart + label + label_3 + btnphone + btncream + label_4 + label_5 + label_6 + label_7 + frameCornerList + label_8 + + + + + + + diff --git a/QT-Main/pagepay.cpp b/QT-Main/pagepay.cpp new file mode 100644 index 0000000..84a7a9c --- /dev/null +++ b/QT-Main/pagepay.cpp @@ -0,0 +1,179 @@ +#include "pagepay.h" +#include "ui_pagepay.h" +#include +#include +#include +#include +#include + +static QString moneyKR(qint64 v) +{ + // ✅ 무조건 "1,234" 형식으로 나오게(환경 영향 최소화) + const QLocale loc(QLocale::Korean, QLocale::SouthKorea); + return loc.toString(v) + "원"; +} + +PagePay::PagePay(QWidget *parent) + : QWidget(parent) + , ui(new Ui::PagePay) +{ + ui->setupUi(this); + + auto makeShadow = [](QObject *parent){ + auto *s = new QGraphicsDropShadowEffect(parent); + s->setBlurRadius(18); + s->setOffset(0, 4); + s->setColor(QColor(0, 0, 0, 60)); + return s; + }; + + // 그림자 + if (ui->frame_2) ui->frame_2->setGraphicsEffect(makeShadow(ui->frame_2)); + if (ui->widget) ui->widget->setGraphicsEffect(makeShadow(ui->widget)); + + // ✅ 버튼 연결 (새 UI 기준) + if (ui->btnBack) connect(ui->btnBack, &QPushButton::clicked, this, &PagePay::onBackPressed); + if (ui->btnNext) connect(ui->btnNext, &QPushButton::clicked, this, &PagePay::onNextPressed); + + // 테이블 세팅 + setupUiTable(); + + // 카드 아이콘(임시 이미지) + if (ui->lblCardIcon) { + QPixmap px(":/etc/card.png"); + if (!px.isNull()) { + ui->lblCardIcon->setPixmap(px.scaled(180, 180, Qt::KeepAspectRatio, Qt::SmoothTransformation)); + ui->lblCardIcon->setAlignment(Qt::AlignCenter); + } else { + ui->lblCardIcon->setText("CARD"); + ui->lblCardIcon->setAlignment(Qt::AlignCenter); + } + } + + // frame 스타일 + if (ui->frame_2) { + ui->frame_2->setStyleSheet("QFrame { background: white; border-radius: 16px; }"); + } + + // 안내 문구 (너 UI가 lblCarGuide면 그대로, lblCardGuide면 그걸로) + if (ui->lblCarGuide) { + ui->lblCarGuide->setText("카드를 투입구에 넣어주세요"); + } + // 만약 실제로 lblCardGuide라면 위 대신 아래를 쓰면 됨: + // if (ui->lblCardGuide) ui->lblCardGuide->setText("카드를 투입구에 넣어주세요"); + + // 처음엔 비어있으니 기본 표시 + refreshTableAndTotal(); +} + + +PagePay::~PagePay() +{ + delete ui; +} + +void PagePay::setupUiTable() +{ + ui->tablePayItems->horizontalHeader()->setVisible(false); + ui->tablePayItems->verticalHeader()->setVisible(false); + + ui->tablePayItems->setEditTriggers(QAbstractItemView::NoEditTriggers); + ui->tablePayItems->setSelectionMode(QAbstractItemView::NoSelection); + ui->tablePayItems->setShowGrid(false); + + // ✅ 5컬럼: [물품][간격][갯수][간격][가격] + ui->tablePayItems->setColumnCount(5); + + auto *hh = ui->tablePayItems->horizontalHeader(); + hh->setSectionResizeMode(0, QHeaderView::Stretch); // 물품은 남는 폭 다 먹기 + hh->setSectionResizeMode(1, QHeaderView::Fixed); // 간격 + hh->setSectionResizeMode(2, QHeaderView::Fixed); // 갯수 + hh->setSectionResizeMode(3, QHeaderView::Fixed); // 간격 + hh->setSectionResizeMode(4, QHeaderView::Fixed); // 가격 + + // ✅ 800x480 최적값(기본) + int gapW = 12; // 물품-갯수 / 갯수-가격 사이 간격 + int qtyW = 60; // "3개" 정도 충분 + int priceW = 110; // "13000원" 정도 충분 + + // ✅ 테이블 폭에 따라 살짝 자동 보정 (작아지면 더 줄임) + int tableW = ui->tablePayItems->viewport()->width(); + if (tableW > 0) { + // 물품 칼럼 최소폭을 남기기 위해, 너무 좁으면 qty/price/gap를 줄여줌 + int fixed = gapW*2 + qtyW + priceW; + int nameMin = 160; // 물품명 최소로 확보(원하면 140~200 조절) + + if (tableW - fixed < nameMin) { + // 줄일 여지가 있는 것들부터 줄임 + gapW = 8; + qtyW = 52; + priceW = 78; + } + } + + ui->tablePayItems->setColumnWidth(1, gapW); + ui->tablePayItems->setColumnWidth(2, qtyW); + ui->tablePayItems->setColumnWidth(3, gapW); + ui->tablePayItems->setColumnWidth(4, priceW); + + // (옵션) 글자와 셀 padding 조금 줄여서 7인치에 더 꽉 차게 + ui->tablePayItems->setStyleSheet( + "QTableWidget::item { padding-left: 4px; padding-right: 4px; }" + ); +} + + +void PagePay::setPayItems(const QVector& lines) +{ + m_lines = lines; + refreshTableAndTotal(); +} + +void PagePay::refreshTableAndTotal() +{ + ui->tablePayItems->setRowCount(0); + + int totalPrice = 0; + + for (int i = 0; i < m_lines.size(); ++i) { + const auto &it = m_lines[i]; + + int row = ui->tablePayItems->rowCount(); + ui->tablePayItems->insertRow(row); + ui->tablePayItems->setRowHeight(row, 40); // ✅ 7인치면 40~44 추천 + + // (0) 물품 + auto *nameItem = new QTableWidgetItem(it.name); + nameItem->setTextAlignment(Qt::AlignVCenter | Qt::AlignLeft); + ui->tablePayItems->setItem(row, 0, nameItem); + + // (2) 갯수 + auto *qtyItem = new QTableWidgetItem(QString("%1개").arg(it.qty)); + qtyItem->setTextAlignment(Qt::AlignCenter); + ui->tablePayItems->setItem(row, 2, qtyItem); + + // (4) 가격 + int linePrice = it.unitPrice * it.qty; + totalPrice += linePrice; + + auto *priceItem = new QTableWidgetItem(moneyKR(linePrice)); + priceItem->setTextAlignment(Qt::AlignRight | Qt::AlignVCenter); + ui->tablePayItems->setItem(row, 4, priceItem); + } + + if (ui->lblTotalPriceValue) + ui->lblTotalPriceValue->setText(moneyKR(totalPrice)); + + ui->btnNext->setEnabled(!m_lines.isEmpty()); +} + + +void PagePay::onBackPressed() +{ + emit backCartClicked(); // ✅ PageCart로 +} + +void PagePay::onNextPressed() +{ + emit creditCardClicked(); // ✅ pagepay_card로 +} diff --git a/QT-Main/pagepay.h b/QT-Main/pagepay.h new file mode 100644 index 0000000..5cd5f74 --- /dev/null +++ b/QT-Main/pagepay.h @@ -0,0 +1,43 @@ +#ifndef PAGEPAY_H +#define PAGEPAY_H + +#include +#include +#include + +namespace Ui { class PagePay; } + +class PagePay : public QWidget +{ + Q_OBJECT +public: + explicit PagePay(QWidget *parent = nullptr); + ~PagePay(); + + struct PayLine { + QString name; + int qty = 0; + int unitPrice = 0; + + }; + + void setPayItems(const QVector& lines); + +signals: + void backCartClicked(); // <- 이전 (PageCart로) + void creditCardClicked(); // 다음 (pagepay_card로) + +private slots: + void onBackPressed(); + void onNextPressed(); + +private: + void setupUiTable(); + void refreshTableAndTotal(); + +private: + Ui::PagePay *ui; + QVector m_lines; +}; + +#endif // PAGEPAY_H diff --git a/QT-Main/pagepay.ui b/QT-Main/pagepay.ui new file mode 100644 index 0000000..4ebbec9 --- /dev/null +++ b/QT-Main/pagepay.ui @@ -0,0 +1,358 @@ + + + PagePay + + + + 0 + 0 + 800 + 480 + + + + Form + + + background-color: #F2F4F7; + + + + + + QFrame::Shape::StyledPanel + + + QFrame::Shadow::Raised + + + + + 460 + 370 + 281 + 61 + + + + background-color: rgb(53, 132, 228); +color: rgb(255, 255, 255); +border: none; +border-radius: 14px; +padding: 10px 18px; +font: 14pt "Ubuntu"; + + + 다음으로 넘어가기 + + + + + + 610 + 10 + 95 + 41 + + + + background-color: rgb(154, 153, 150); +color: rgb(255, 255, 255); +border: none; +border-radius: 14px; +padding: 10px 18px; + + + 이전 화면 + + + + + + 460 + 90 + 281 + 271 + + + + background-color: rgb(255, 255, 255); +border-radius: 16px; + + + QFrame::Shape::StyledPanel + + + QFrame::Shadow::Raised + + + + + 30 + -10 + 201 + 211 + + + + image: url(:/etc/card.png); + + + + + + + + + 50 + 200 + 241 + 41 + + + + font: 500 12pt "Ubuntu"; + + + 카드를 투입구에 넣어주세요 + + + + + + + 330 + 19 + 121 + 20 + + + + font: 13pt "Ubuntu Condensed"; +color: rgb(0, 0, 0); +background-color: #F2F4F7; + + + + O Checkout + + + + + + 220 + 20 + 111 + 17 + + + + font: 13pt "Ubuntu Condensed"; +color: rgb(154, 153, 150); +background-color: #F2F4F7; + + + O Cart + + + + + + 20 + 50 + 301 + 31 + + + + font: 13pt "Ubuntu Condensed"; +color: rgb(0, 0, 0) + + + 아래 구매 내역을 확인해주세요 + + + + + + 10 + 90 + 441 + 341 + + + + background-color: rgb(255, 255, 255); +border-radius: 16px; + + + + + 10 + 10 + 141 + 41 + + + + font: 500 20pt "Ubuntu"; + + + 구매 내역 + + + + + + 10 + 50 + 91 + 41 + + + + font: 15pt "Ubuntu Mono"; + + + Prdoucts + + + + + + 230 + 50 + 91 + 41 + + + + font: 15pt "Ubuntu Mono"; + + + Count + + + + + + 385 + 50 + 91 + 41 + + + + font: 15pt "Ubuntu Mono"; + + + Price + + + + + + 0 + 90 + 441 + 191 + + + + background-color: rgb(255, 255, 255); +border-radius: 0px; +font: 300 13pt "Umpush"; +border-top: 1px solid #cfcfcf; +border-bottom: 0px; +border-left: 0px; +border-right: 0px; + + + + + + 0 + 290 + 451 + 51 + + + + background-color: rgb(255, 255, 255); +border-style: solid; +border-top: 1px solid rgb(200, 200, 200); +border-left: 1px solid rgb(255, 255, 255); +border-right: 1px solid rgb(255, 255, 255); +border-bottom: 1px solid rgb(255, 255, 255); +border-radius: 0px; + + + QFrame::Shape::StyledPanel + + + QFrame::Shadow::Raised + + + + + 20 + 10 + 121 + 31 + + + + font: 700 16pt "Umpush"; +background-color: rgb(255, 255, 255); +border: none; + + + + 총 결제금액 + + + + + + 240 + 10 + 101 + 41 + + + + border: none; +font: 15pt "Umpush"; +color: rgb(28, 113, 216); + + + + + + + + + + + 460 + 20 + 111 + 17 + + + + font: 13pt "Ubuntu Condensed"; +color: rgb(154, 153, 150); +background-color: #F2F4F7; + + + O Payment + + + + + + + + + diff --git a/QT-Main/pagepay_card.cpp b/QT-Main/pagepay_card.cpp new file mode 100644 index 0000000..7566434 --- /dev/null +++ b/QT-Main/pagepay_card.cpp @@ -0,0 +1,213 @@ +#include "pagepay_card.h" +#include "ui_pagepay_card.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// ⏳ 텍스트를 Pixmap으로 렌더링 +static QPixmap textToPixmap(const QString &text, int fontPx) +{ + QFont f; + f.setPixelSize(fontPx); + + const int size = fontPx * 2; + QPixmap pm(size, size); + pm.fill(Qt::transparent); + + QPainter p(&pm); + p.setRenderHint(QPainter::Antialiasing, true); + p.setRenderHint(QPainter::TextAntialiasing, true); + p.setFont(f); + p.setPen(Qt::black); + p.drawText(pm.rect(), Qt::AlignCenter, text); + return pm; +} + +// Pixmap을 고정 캔버스 안에서 회전 +static QPixmap rotatedPixmap(const QPixmap &src, qreal angleDeg) +{ + QPixmap out(src.size()); + out.fill(Qt::transparent); + + QPainter p(&out); + p.setRenderHint(QPainter::Antialiasing, true); + p.setRenderHint(QPainter::SmoothPixmapTransform, true); + + const QPointF c(out.width() / 2.0, out.height() / 2.0); + p.translate(c); + p.rotate(angleDeg); + p.translate(-c); + p.drawPixmap(0, 0, src); + + return out; +} + +pagepay_card::pagepay_card(QWidget *parent) + : QWidget(parent) + , ui(new Ui::pagepay_card) +{ + ui->setupUi(this); +} + +pagepay_card::~pagepay_card() +{ + delete ui; +} + +void pagepay_card::showEvent(QShowEvent *e) +{ + QWidget::showEvent(e); + + // 페이지가 뜬 뒤 모달 띄우기 + QTimer::singleShot(0, this, [this]() { + showPaymentModal(); + }); +} + +void pagepay_card::showPaymentModal() +{ + QWidget *parentW = this->window(); + if (!parentW) parentW = this; + + // ✅ 팝업 자체를 카드 크기로만 만들기 (전체 덮지 않음) + QDialog *dlg = new QDialog(parentW); + dlg->setWindowFlags(Qt::Dialog | Qt::FramelessWindowHint); + dlg->setModal(true); + dlg->setAttribute(Qt::WA_DeleteOnClose); + dlg->setFixedSize(520, 260); + + // ✅ 부모(800x480) 기준 "정중앙" 위치 + const int x = (parentW->width() - dlg->width()) / 2; + const int y = (parentW->height() - dlg->height()) / 2; + dlg->move(x, y); + + // ===== 다이얼로그 루트 레이아웃 ===== + auto *dlgLay = new QVBoxLayout(dlg); + dlgLay->setContentsMargins(0,0,0,0); + dlgLay->setSpacing(0); + + // ===== 카드 프레임 (둥근 모서리) ===== + QFrame *card = new QFrame(dlg); + card->setObjectName("card"); + card->setStyleSheet( + "#card { background: white; border-radius: 16px; }" + ); + dlgLay->addWidget(card); + + // ===== 카드 내부 스택 ===== + QStackedWidget *stack = new QStackedWidget(card); + QVBoxLayout *cardLay = new QVBoxLayout(card); + cardLay->setContentsMargins(24,24,24,24); + cardLay->addWidget(stack); + + // --- processing --- + QWidget *wProc = new QWidget(card); + QVBoxLayout *pLay = new QVBoxLayout(wProc); + pLay->setContentsMargins(0,0,0,0); + pLay->setSpacing(12); + + QLabel *spinner = new QLabel(wProc); + spinner->setAlignment(Qt::AlignCenter); + spinner->setStyleSheet("background: transparent;"); + + const QPixmap baseHourglass = textToPixmap("⏳", 52); + spinner->setPixmap(baseHourglass); + + QLabel *title = new QLabel("카드를 뽑지말아주세요", wProc); + title->setAlignment(Qt::AlignCenter); + title->setStyleSheet("font-size: 22px; font-weight: 800; color: #111827;"); + + QLabel *desc = new QLabel("결제가 진행중입니다", wProc); + desc->setAlignment(Qt::AlignCenter); + desc->setStyleSheet("font-size: 14px; color: #6B7280;"); + + QLabel *countLbl = new QLabel("5", wProc); + countLbl->setAlignment(Qt::AlignCenter); + countLbl->setStyleSheet("font-size: 64px; font-weight: 900; color: #2563EB; margin-top: 6px;"); + + pLay->addStretch(); + pLay->addWidget(spinner); + pLay->addWidget(title); + pLay->addWidget(desc); + pLay->addWidget(countLbl); + pLay->addStretch(); + + // --- complete --- + QWidget *wDone = new QWidget(card); + QVBoxLayout *dLay = new QVBoxLayout(wDone); + dLay->setContentsMargins(0,0,0,0); + dLay->setSpacing(16); + + QLabel *check = new QLabel("✓", wDone); + check->setAlignment(Qt::AlignCenter); + check->setStyleSheet("font-size: 72px; font-weight: 900; color: #22C55E;"); + + QLabel *doneTxt = new QLabel("결제가 완료되었습니다", wDone); + doneTxt->setAlignment(Qt::AlignCenter); + doneTxt->setStyleSheet("font-size: 22px; font-weight: 800; color: #111827;"); + + QPushButton *btnOk = new QPushButton("확인", wDone); + btnOk->setFixedHeight(44); + btnOk->setFixedWidth(180); + btnOk->setStyleSheet( + "QPushButton{background:#2563EB;color:white;border:none;border-radius:12px;font-size:16px;font-weight:800; padding: 0 18px;}" + "QPushButton:hover{background:#1D4ED8;}" + "QPushButton:pressed{background:#1E40AF;}" + ); + + dLay->addStretch(); + dLay->addWidget(check); + dLay->addWidget(doneTxt); + dLay->addWidget(btnOk, 0, Qt::AlignHCenter); + dLay->addStretch(); + + stack->addWidget(wProc); + stack->addWidget(wDone); + stack->setCurrentWidget(wProc); + + // ===== (A) ⏳ 회전 타이머 (느리게) ===== + auto angle = QSharedPointer::create(0.0); + QTimer *spinTimer = new QTimer(dlg); + spinTimer->setInterval(30); // ✅ 16ms(빠름) -> 30ms(느리게) + + QObject::connect(spinTimer, &QTimer::timeout, dlg, [=]() mutable { + *angle += 2.0; // ✅ 4.0(빠름) -> 2.0(느리게) + if (*angle >= 360.0) *angle -= 360.0; + spinner->setPixmap(rotatedPixmap(baseHourglass, *angle)); + }); + spinTimer->start(); + + // ===== (B) 5초 카운트다운 ===== + auto count = QSharedPointer::create(5); + QTimer *t = new QTimer(dlg); + t->setInterval(1000); + + QObject::connect(t, &QTimer::timeout, dlg, [=]() mutable { + (*count)--; + if (*count >= 0) countLbl->setText(QString::number(*count)); + + if (*count <= 0) { + t->stop(); + spinTimer->stop(); + stack->setCurrentWidget(wDone); + } + }); + + QObject::connect(btnOk, &QPushButton::clicked, dlg, [this, dlg]() { + dlg->accept(); + emit goTotalPayClicked(); + }); + + t->start(); + dlg->exec(); +} + diff --git a/QT-Main/pagepay_card.h b/QT-Main/pagepay_card.h new file mode 100644 index 0000000..7587c95 --- /dev/null +++ b/QT-Main/pagepay_card.h @@ -0,0 +1,32 @@ +#ifndef PAGEPAY_CARD_H +#define PAGEPAY_CARD_H + +#include + +namespace Ui { +class pagepay_card; +} + +class QShowEvent; + +class pagepay_card : public QWidget +{ + Q_OBJECT +public: + explicit pagepay_card(QWidget *parent = nullptr); + ~pagepay_card(); + +signals: + void goTotalPayClicked(); + +protected: + void showEvent(QShowEvent *e) override; + +private: + void showPaymentModal(); + +private: + Ui::pagepay_card *ui; +}; + +#endif // PAGEPAY_CARD_H diff --git a/QTCart/ppagewelcome.ui b/QT-Main/pagepay_card.ui similarity index 53% rename from QTCart/ppagewelcome.ui rename to QT-Main/pagepay_card.ui index 3822a55..57dbe98 100644 --- a/QTCart/ppagewelcome.ui +++ b/QT-Main/pagepay_card.ui @@ -1,18 +1,21 @@ - pPageWelcome - + pagepay_card + 0 0 - 400 - 300 + 800 + 480 Form + + background-color: rgb(36, 31, 49); + diff --git a/QT-Main/pagepayment.cpp b/QT-Main/pagepayment.cpp new file mode 100644 index 0000000..6cfbf3d --- /dev/null +++ b/QT-Main/pagepayment.cpp @@ -0,0 +1,14 @@ +#include "pagepayment.h" +#include "ui_pagepayment.h" + +pagepayment::pagepayment(QWidget *parent) + : QWidget(parent) + , ui(new Ui::pagepayment) +{ + ui->setupUi(this); +} + +pagepayment::~pagepayment() +{ + delete ui; +} diff --git a/QT-Main/pagepayment.h b/QT-Main/pagepayment.h new file mode 100644 index 0000000..848e4a6 --- /dev/null +++ b/QT-Main/pagepayment.h @@ -0,0 +1,22 @@ +#ifndef PAGEPAYMENT_H +#define PAGEPAYMENT_H + +#include + +namespace Ui { +class pagepayment; +} + +class pagepayment : public QWidget +{ + Q_OBJECT + +public: + explicit pagepayment(QWidget *parent = nullptr); + ~pagepayment(); + +private: + Ui::pagepayment *ui; +}; + +#endif // PAGEPAYMENT_H diff --git a/QT-Main/pagepayment.ui b/QT-Main/pagepayment.ui new file mode 100644 index 0000000..2e172b2 --- /dev/null +++ b/QT-Main/pagepayment.ui @@ -0,0 +1,30 @@ + + + PagePayment + + + + 0 + 0 + 400 + 300 + + + + Form + + + + + 230 + 140 + 160 + 80 + + + + + + + + diff --git a/QT-Main/pagetotalpay.cpp b/QT-Main/pagetotalpay.cpp new file mode 100644 index 0000000..7e56d2a --- /dev/null +++ b/QT-Main/pagetotalpay.cpp @@ -0,0 +1,211 @@ +#include "pagetotalpay.h" +#include "ui_pagetotalpay.h" + +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +PageTotalPay::PageTotalPay(QWidget *parent) + : QWidget(parent) + , ui(new Ui::PageTotalPay) +{ + ui->setupUi(this); + + if (objectName().isEmpty()) + setObjectName("PageTotalPay"); + + // ✅ 여기 추가 + setStyleSheet("QWidget#PageTotalPay { background-color: rgb(34,197,94); }"); + + + // ✅ Scene/View + m_scene = new QGraphicsScene(this); + + m_view = new QGraphicsView(this); + m_view->setScene(m_scene); + m_view->setFrameShape(QFrame::NoFrame); + m_view->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); + m_view->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); + m_view->setStyleSheet("background: transparent;"); + m_view->setAlignment(Qt::AlignCenter); + + // 클릭 이벤트를 view/viewport에서도 잡기 + m_view->viewport()->installEventFilter(this); + m_view->installEventFilter(this); + + // ✅ content 위젯(아이콘+텍스트) + m_content = new QWidget(); + m_content->setAttribute(Qt::WA_TranslucentBackground); + m_content->installEventFilter(this); + + auto *lay = new QVBoxLayout(m_content); + lay->setContentsMargins(0, 0, 0, 0); + lay->setSpacing(28); + lay->setAlignment(Qt::AlignCenter); + + QLabel *lblIcon = new QLabel(m_content); + lblIcon->setFixedSize(140, 140); + lblIcon->setAlignment(Qt::AlignCenter); + lblIcon->setPixmap(makeCheckIcon(128)); + lblIcon->setStyleSheet("background: transparent;"); + + QLabel *lblTitle = new QLabel("구매해주셔서 감사합니다", m_content); + lblTitle->setAlignment(Qt::AlignCenter); + lblTitle->setStyleSheet( + "background: transparent;" + "color: rgb(0,0,0);" + "font-weight: 900;" + "font-size: 44px;" + ); + + QLabel *lblSub = new QLabel("화면을 다시 눌러 시작하기", m_content); + lblSub->setAlignment(Qt::AlignCenter); + lblSub->setStyleSheet( + "background: transparent;" + "color: rgb(0,0,0);" + "font-weight: 700;" + "font-size: 22px;" + ); + + lay->addWidget(lblIcon, 0, Qt::AlignCenter); + lay->addWidget(lblTitle, 0, Qt::AlignCenter); + lay->addWidget(lblSub, 0, Qt::AlignCenter); + + // ✅ proxy로 올리기(스케일 애니메이션 대상) + m_proxy = m_scene->addWidget(m_content); + m_proxy->setTransformOriginPoint(m_proxy->boundingRect().center()); + + // ✅ 레이아웃 붙이기 (중요: 기존 레이아웃 있으면 거기에 붙임) + if (this->layout()) { + this->layout()->setContentsMargins(0,0,0,0); + this->layout()->addWidget(m_view); + } else { + auto *root = new QVBoxLayout(this); + root->setContentsMargins(0,0,0,0); + root->addWidget(m_view); + } + + // ✅❗️여기가 너 코드에서 크래시 난 부분: m_pulseAnim을 반드시 생성해야 함 + m_pulseAnim = new QVariantAnimation(this); + + // ✅ 코사인 루프 (자연스럽게 1.0 -> 1.15 -> 1.0, 점프 없음) + m_pulseAnim->setStartValue(0.0); + m_pulseAnim->setEndValue(2.0 * M_PI); + m_pulseAnim->setDuration(2000); + m_pulseAnim->setLoopCount(-1); + m_pulseAnim->setEasingCurve(QEasingCurve::Linear); + + connect(m_pulseAnim, &QVariantAnimation::valueChanged, this, [this](const QVariant &v){ + const qreal t = v.toReal(); + const qreal amp = 0.15; + const qreal scale = 1.0 + amp * 0.5 * (1.0 - qCos(t)); + if (m_proxy) m_proxy->setScale(scale); + }); + + m_pulseAnim->start(); + + // ✅ viewport size가 0일 수 있으니 show 이후에 중앙 정렬 + QTimer::singleShot(0, this, [this](){ centerProxy(); }); +} + +PageTotalPay::~PageTotalPay() +{ + delete ui; +} + +QPixmap PageTotalPay::makeCheckIcon(int sizePx) const +{ + const int pad = 6; + QPixmap pm(sizePx + pad*2, sizePx + pad*2); + pm.fill(Qt::transparent); + + QPainter p(&pm); + p.setRenderHint(QPainter::Antialiasing, true); + + // ✅ 초록색 (Tailwind green-500 비슷) + QColor green(34, 197, 94); + + // circle stroke + QPen pen(green); // ✅ 여기! + pen.setWidthF(sizePx * 0.07); + pen.setCapStyle(Qt::RoundCap); + pen.setJoinStyle(Qt::RoundJoin); + p.setPen(pen); + p.setBrush(Qt::NoBrush); + + QRectF rc(pad, pad, sizePx, sizePx); + p.drawEllipse(rc); + + // check + p.setPen(Qt::NoPen); + p.setBrush(green); + p.drawEllipse(rc); + + // 체크: 흰색 + QPen pen2(Qt::white); + pen2.setWidthF(sizePx * 0.09); + pen2.setCapStyle(Qt::RoundCap); + pen2.setJoinStyle(Qt::RoundJoin); + p.setPen(pen2); + p.setBrush(Qt::NoBrush); + + QPointF a(rc.left() + sizePx*0.28, rc.top() + sizePx*0.55); + QPointF b(rc.left() + sizePx*0.46, rc.top() + sizePx*0.70); + QPointF c(rc.left() + sizePx*0.74, rc.top() + sizePx*0.36); + + p.drawLine(a, b); + p.drawLine(b, c); + + return pm; +} + + +void PageTotalPay::centerProxy() +{ + if (!m_view || !m_scene || !m_proxy) return; + + const QSize vsz = m_view->viewport()->size(); + if (vsz.width() <= 0 || vsz.height() <= 0) return; // ✅ 0이면 아직 표시 전 + + m_scene->setSceneRect(0, 0, vsz.width(), vsz.height()); + + const QPointF origin = m_proxy->boundingRect().center(); + m_proxy->setTransformOriginPoint(origin); + + const QPointF sceneCenter = m_scene->sceneRect().center(); + m_proxy->setPos(sceneCenter - origin); +} + +void PageTotalPay::resizeEvent(QResizeEvent *e) +{ + QWidget::resizeEvent(e); + centerProxy(); +} + +bool PageTotalPay::eventFilter(QObject *obj, QEvent *event) +{ + if (event->type() == QEvent::MouseButtonPress) { + emit backToStartClicked(); + return true; + } + return QWidget::eventFilter(obj, event); +} + +void PageTotalPay::mousePressEvent(QMouseEvent *e) +{ + emit backToStartClicked(); + QWidget::mousePressEvent(e); +} diff --git a/QT-Main/pagetotalpay.h b/QT-Main/pagetotalpay.h new file mode 100644 index 0000000..7fcd2fd --- /dev/null +++ b/QT-Main/pagetotalpay.h @@ -0,0 +1,46 @@ +#ifndef PAGETOTALPAY_H +#define PAGETOTALPAY_H + +#include +#include + +class QGraphicsView; +class QGraphicsScene; +class QGraphicsProxyWidget; +class QVariantAnimation; + +namespace Ui { +class PageTotalPay; +} + +class PageTotalPay : public QWidget +{ + Q_OBJECT +public: + explicit PageTotalPay(QWidget *parent = nullptr); + ~PageTotalPay(); + +signals: + void backToStartClicked(); // ✅ 어디든 클릭하면 Welcome으로 돌아가기 + +protected: + void resizeEvent(QResizeEvent *e) override; + bool eventFilter(QObject *obj, QEvent *event) override; + void mousePressEvent(QMouseEvent *e) override; + +private: + QPixmap makeCheckIcon(int sizePx) const; + void centerProxy(); + +private: + Ui::PageTotalPay *ui = nullptr; + + QGraphicsView *m_view = nullptr; + QGraphicsScene *m_scene = nullptr; + QGraphicsProxyWidget *m_proxy = nullptr; + + QWidget *m_content = nullptr; + QVariantAnimation *m_pulseAnim = nullptr; +}; + +#endif // PAGETOTALPAY_H diff --git a/QT-Main/pagetotalpay.ui b/QT-Main/pagetotalpay.ui new file mode 100644 index 0000000..d13fb90 --- /dev/null +++ b/QT-Main/pagetotalpay.ui @@ -0,0 +1,73 @@ + + + PageTotalPay + + + + 0 + 0 + 800 + 480 + + + + Form + + + background-color: rgb(51, 209, 122); + + + + + + QFrame::Shape::StyledPanel + + + QFrame::Shadow::Raised + + + + + 260 + 200 + 67 + 17 + + + + + + + + + + 270 + 230 + 67 + 17 + + + + + + + + + + 250 + 140 + 111 + 17 + + + + + + + + + + + + + diff --git a/QT-Main/pagewelcome.cpp b/QT-Main/pagewelcome.cpp new file mode 100644 index 0000000..af81408 --- /dev/null +++ b/QT-Main/pagewelcome.cpp @@ -0,0 +1,223 @@ +#include "pagewelcome.h" +#include "ui_pagewelcome.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +PageWelcome::PageWelcome(QWidget *parent) + : QWidget(parent) + , ui(new Ui::PageWelcome) +{ + ui->setupUi(this); + + // ✅ 버튼 연결 + connect(ui->start_button, &QPushButton::clicked, + this, &PageWelcome::onStartClicked); + + // ✅ 이미지 로드/세팅(한 번만) + loadPixmapsOnce(); + + // ✅ UI 레이아웃 적용된 다음 기본 Y 저장 + 중앙 정렬 + QTimer::singleShot(0, this, [this]() { + + if (ui->start_image && m_baseYStartImage < 0) + m_baseYStartImage = ui->start_image->y(); + + if (ui->qtcart_text && m_baseYTitle < 0) + m_baseYTitle = ui->qtcart_text->y(); + + if (ui->start_text && m_baseYStartText < 0) + m_baseYStartText = ui->start_text->y(); + + if (ui->start_button && m_baseYStartBtn < 0) + m_baseYStartBtn = ui->start_button->y(); + + resetWelcome(); + }); +} + +PageWelcome::~PageWelcome() +{ + if (m_anim) { + m_anim->stop(); + delete m_anim; + m_anim = nullptr; + } + delete ui; +} + +void PageWelcome::loadPixmapsOnce() +{ + if (m_pixLoaded) return; + m_pixLoaded = true; + + QPixmap cartPx(":/etc/cart.png"); + QPixmap windPx(":/etc/wind.png"); + + if (ui->cart_image) { + ui->cart_image->setPixmap(cartPx); + ui->cart_image->setScaledContents(true); + ui->cart_image->setAttribute(Qt::WA_TranslucentBackground); + ui->cart_image->show(); + } + + if (ui->wind_image) { + ui->wind_image->setPixmap(windPx); + ui->wind_image->setScaledContents(true); + ui->wind_image->setAttribute(Qt::WA_TranslucentBackground); + ui->wind_image->show(); + } + + if (ui->start_image) ui->start_image->show(); +} + +void PageWelcome::showEvent(QShowEvent *e) +{ + QWidget::showEvent(e); + + QTimer::singleShot(0, this, [this]() { + resetWelcome(); + }); +} + +void PageWelcome::hideEvent(QHideEvent *e) +{ + QWidget::hideEvent(e); + + // ✅ 페이지가 숨겨질 때 애니메이션 남아있으면 정리(안전) + if (m_anim) { + m_anim->stop(); + m_anim->deleteLater(); + m_anim = nullptr; + } +} + +void PageWelcome::resizeEvent(QResizeEvent *e) +{ + QWidget::resizeEvent(e); + + // ✅ 떠나지 않은 상태면 리사이즈 때도 가운데 유지 + if (!m_leaving) { + centerStartImage(); // ✅ 기존 유지 + centerWelcomeWidgets(); // ✅ 추가 + } +} + +void PageWelcome::resetWelcome() +{ + // ✅ 상태 초기화 + m_leaving = false; + + // ✅ 버튼 다시 누르게 + if (ui->start_button) { + ui->start_button->setEnabled(true); + } + + // ✅ 애니메이션 남아있으면 정리 + if (m_anim) { + m_anim->stop(); + m_anim->deleteLater(); + m_anim = nullptr; + } + + // ✅ 위젯 다시 보이기 + if (ui->start_image) ui->start_image->show(); + if (ui->cart_image) ui->cart_image->show(); + if (ui->wind_image) ui->wind_image->show(); + + // 레이아웃 반영 후 이동 + QTimer::singleShot(0, this, [this]() { + if (ui->start_image && m_baseYStartImage < 0) m_baseYStartImage = ui->start_image->y(); + if (ui->qtcart_text && m_baseYTitle < 0) m_baseYTitle = ui->qtcart_text->y(); + if (ui->start_text && m_baseYStartText < 0) m_baseYStartText = ui->start_text->y(); + if (ui->start_button&& m_baseYStartBtn < 0) m_baseYStartBtn = ui->start_button->y(); + + centerStartImage(); // ✅ 기존 유지 + centerWelcomeWidgets(); // ✅ 추가 + }); +} + +// ✅ 기존 함수는 그대로: start_image만 가운데 +void PageWelcome::centerStartImage() +{ + if (!ui->start_image) return; + + QWidget *parentW = ui->start_image->parentWidget(); + if (!parentW) parentW = this; + + const int pw = parentW->width(); + const int w = ui->start_image->width(); + const int x = (pw - w) / 2; + + int y = (m_baseYStartImage >= 0) ? m_baseYStartImage : ui->start_image->y(); + + ui->start_image->move(x, y); +} + +// ✅ 추가: qcart_text, start_text, start_button도 “X만” 중앙정렬 +void PageWelcome::centerWelcomeWidgets() +{ + QWidget *parentW = this; // 보통 PageWelcome 전체 기준이 가장 깔끔함 + const int pw = parentW->width(); + + auto centerXKeepY = [&](QWidget *w, int baseY){ + if (!w) return; + const int x = (pw - w->width()) / 2; + const int y = (baseY >= 0) ? baseY : w->y(); + w->move(x, y); + }; + + centerXKeepY(ui->qtcart_text, m_baseYTitle); + centerXKeepY(ui->start_text, m_baseYStartText); + centerXKeepY(ui->start_button, m_baseYStartBtn); +} + +void PageWelcome::onStartClicked() +{ + if (m_leaving) return; + m_leaving = true; + + if (ui->start_button) + ui->start_button->setEnabled(false); + + if (!ui->start_image) { + emit startRequested(); + emit startClicked(); + return; + } + + QWidget *parentW = ui->start_image->parentWidget(); + if (!parentW) parentW = this; + + const QPoint startPos = ui->start_image->pos(); + const int y = startPos.y(); + + // ✅ 오른쪽 화면 밖으로 슈웅~ + const int endX = parentW->width() + ui->start_image->width() + 20; + const QPoint endPos(endX, y); + + // ✅ 멤버로 애니메이션 보관(돌아올 때 stop/정리 가능) + m_anim = new QPropertyAnimation(ui->start_image, "pos", this); + m_anim->setDuration(700); + m_anim->setEasingCurve(QEasingCurve::InOutCubic); + m_anim->setStartValue(startPos); + m_anim->setEndValue(endPos); + + connect(m_anim, &QPropertyAnimation::finished, this, [this]() { + if (m_anim) { + m_anim->deleteLater(); + m_anim = nullptr; + } + emit startRequested(); + emit startClicked(); + }); + + m_anim->start(); +} diff --git a/QT-Main/pagewelcome.h b/QT-Main/pagewelcome.h new file mode 100644 index 0000000..5e4795c --- /dev/null +++ b/QT-Main/pagewelcome.h @@ -0,0 +1,56 @@ +#ifndef PAGEWELCOME_H +#define PAGEWELCOME_H + +#include + +class QPropertyAnimation; +class QShowEvent; +class QHideEvent; +class QResizeEvent; + +namespace Ui { +class PageWelcome; +} + +class PageWelcome : public QWidget +{ + Q_OBJECT + +public: + explicit PageWelcome(QWidget *parent = nullptr); + ~PageWelcome(); + +signals: + void startClicked(); + void startRequested(); + +protected: + void showEvent(QShowEvent *e) override; + void hideEvent(QHideEvent *e) override; + void resizeEvent(QResizeEvent *e) override; + +private slots: + void onStartClicked(); + +private: + void loadPixmapsOnce(); + void centerStartImage(); // ✅ 기존: start_image만 가운데 + void centerWelcomeWidgets(); // ✅ 추가: 텍스트/버튼도 가운데 + void resetWelcome(); + +private: + Ui::PageWelcome *ui; + + bool m_leaving = false; + bool m_pixLoaded = false; + + // ✅ 각 위젯의 "기본 Y"를 기억해두고 X만 중앙정렬 + int m_baseYStartImage = -1; + int m_baseYTitle = -1; // qcart_text + int m_baseYStartText = -1; // start_text + int m_baseYStartBtn = -1; // start_button + + QPropertyAnimation *m_anim = nullptr; +}; + +#endif // PAGEWELCOME_H diff --git a/QT-Main/pagewelcome.ui b/QT-Main/pagewelcome.ui new file mode 100644 index 0000000..3e2878c --- /dev/null +++ b/QT-Main/pagewelcome.ui @@ -0,0 +1,163 @@ + + + PageWelcome + + + + 0 + 0 + 800 + 480 + + + + + 11 + 0 + + + + + false + + + + Form + + + background-color: rgb(255, 255, 255); + + + + + + QFrame::Shape::StyledPanel + + + QFrame::Shadow::Raised + + + + + 0 + 340 + 781 + 22 + + + + background-color: rgb(255, 255, 255); + + + + 시작하기 버튼을 눌러 쇼핑을 시작하세요 + + + Qt::AlignmentFlag::AlignCenter + + + + + + 300 + 80 + 211 + 171 + + + + background-color: rgb(255, 255, 255); + + + + + 90 + 30 + 121 + 101 + + + + background-color: rgb(255, 255, 255); + + + + + + + + + 0 + 70 + 61 + 71 + + + + background-color: rgb(255, 255, 255); + + + + + + + + + + 5 + 250 + 771 + 77 + + + + Qt::LayoutDirection::LeftToRight + + + font: 700 40pt "Ria Sans"; +color: rgb(87, 227, 137); +background-color: rgb(255, 255, 255); + + + + QT CART + + + Qt::AlignmentFlag::AlignCenter + + + + + + 260 + 390 + 261 + 30 + + + + font: 700 11pt "Ria Sans"; +QPushButton { + background-color: rgb(224, 27, 36); /* ✅ 기본 상태: 더 진한 빨강 */ + + font: 300 14pt "Umpush"; + color: rgb(255, 255, 255); + border: none; + border-radius: 14px; /* ✅ 동글동글 */ + padding: 10px 18px; /* 버튼 크기/여백 */ +} + + + + + + 시작하기 + + + + + + + + + diff --git a/QT-Server/dashboard.py b/QT-Server/dashboard.py new file mode 100644 index 0000000..9c922b7 --- /dev/null +++ b/QT-Server/dashboard.py @@ -0,0 +1,62 @@ +from fastapi import APIRouter +from pydantic import BaseModel +from datetime import datetime + +router = APIRouter( + prefix="/dashboard", + tags=["Dashboard"] +) + +bot_state = { + "status": "OFFLINE", + "last_updated": datetime.now(), + "battery": 0.0, + "speed": 0.0 +} + +BOT_TIMEOUT_SEC = 5 # 5초간 보고 없으면 오프라인 + +class BotReport(BaseModel): + status: str + battery: float = 0.0 + speed: float = 0.0 + +class BotConnectionInfo(BaseModel): + bot_status: str + battery: float + speed: float + last_update: str + +# 로봇 -> 서버 +@router.post("/bot/report") +def report_bot_status(report: BotReport): + global bot_state + bot_state["status"] = report.status + bot_state["last_updated"] = datetime.now() + bot_state["battery"] = report.battery + bot_state["speed"] = report.speed + return {"msg": "status report received"} + +# 서버 -> 프론트엔드 +@router.get("/bot/check", response_model=BotConnectionInfo) +def check_bot_connection(): + global bot_state + + elapsed = (datetime.now() - bot_state["last_updated"]).total_seconds() + + current_status = bot_state["status"] + if elapsed > BOT_TIMEOUT_SEC: + current_status = "OFFLINE" + bot_state["speed"] = 0.0 + + return { + "bot_status": current_status, + "battery": bot_state["battery"], + "speed": bot_state["speed"], + "last_update": bot_state["last_updated"].strftime("%H:%M:%S") + } + +# 서버 연결 확인 +@router.get("/health") +def health_check(): + return {"status": "ok", "time": datetime.now().isoformat()} \ No newline at end of file diff --git a/QT-Server/database.py b/QT-Server/database.py new file mode 100644 index 0000000..8f18630 --- /dev/null +++ b/QT-Server/database.py @@ -0,0 +1,20 @@ +from sqlalchemy import create_engine +from sqlalchemy.ext.declarative import declarative_base +from sqlalchemy.orm import sessionmaker + +SQLALCHEMY_DATABASE_URL = "sqlite:///./shopping_cart.db" + +engine = create_engine( + SQLALCHEMY_DATABASE_URL, connect_args={"check_same_thread": False} +) + +SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine) + +Base = declarative_base() + +def get_db(): + db = SessionLocal() + try: + yield db + finally: + db.close() \ No newline at end of file diff --git a/QT-Server/hx711.py b/QT-Server/hx711.py new file mode 100644 index 0000000..18d63a0 --- /dev/null +++ b/QT-Server/hx711.py @@ -0,0 +1,74 @@ +import lgpio +import time + + +class HX711: + def __init__(self, dout, pd_sck, gain=128): + self.DOUT = dout + self.PD_SCK = pd_sck + + self.chip = lgpio.gpiochip_open(0) + + lgpio.gpio_claim_input(self.chip, self.DOUT) + lgpio.gpio_claim_output(self.chip, self.PD_SCK) + + self.GAIN = 1 if gain == 128 else 3 if gain == 64 else 2 + + self.OFFSET = 0 + self.REFERENCE_UNIT = 1 + + self.set_gain(gain) + + def is_ready(self): + return lgpio.gpio_read(self.chip, self.DOUT) == 0 + + def set_gain(self, gain): + if gain == 128: + self.GAIN = 1 + elif gain == 64: + self.GAIN = 3 + elif gain == 32: + self.GAIN = 2 + + self.read_raw() + + def read_raw(self): + while not self.is_ready(): + pass + + data = 0 + for _ in range(24): + lgpio.gpio_write(self.chip, self.PD_SCK, 1) + data = (data << 1) | lgpio.gpio_read(self.chip, self.DOUT) + lgpio.gpio_write(self.chip, self.PD_SCK, 0) + + for _ in range(self.GAIN): + lgpio.gpio_write(self.chip, self.PD_SCK, 1) + lgpio.gpio_write(self.chip, self.PD_SCK, 0) + + if data & 0x800000: + data -= 0x1000000 + + return data + + def set_offset(self, offset): + self.OFFSET = offset + + def set_reference_unit(self, value): + self.REFERENCE_UNIT = value + + def get_value(self, times=5): + return sum(self.read_raw() for _ in range(times)) / times + + def get_weight(self, times=5): + value = self.get_value(times) - self.OFFSET + return value / self.REFERENCE_UNIT + + def power_down(self): + lgpio.gpio_write(self.chip, self.PD_SCK, 0) + lgpio.gpio_write(self.chip, self.PD_SCK, 1) + time.sleep(0.0001) + + def power_up(self): + lgpio.gpio_write(self.chip, self.PD_SCK, 0) + time.sleep(0.0001) diff --git a/QT-Server/hx711_calib.json b/QT-Server/hx711_calib.json new file mode 100644 index 0000000..3dcfbe7 --- /dev/null +++ b/QT-Server/hx711_calib.json @@ -0,0 +1,4 @@ +{ + "offset": 449326.96, + "scale": 311.0220000000001 +} \ No newline at end of file diff --git a/QT-Server/hx711_calib.py b/QT-Server/hx711_calib.py new file mode 100644 index 0000000..e103a59 --- /dev/null +++ b/QT-Server/hx711_calib.py @@ -0,0 +1,38 @@ +from hx711 import HX711 +import time, json + +DT_PIN = 5 +SCK_PIN = 6 + +hx = HX711(DT_PIN, SCK_PIN) + +print("HX711 보정 시작") +time.sleep(2) + +# 1) 빈 상태 +print("1️⃣ 아무것도 안 올리고 기다리세요...") +N = 30 +empty = sum(hx.get_value(5) for _ in range(N)) / N +print("OFFSET =", empty) + +known = float(input("2️⃣ 기준 무게(g): ")) + +print("3️⃣ 기준 무게 올리고 기다리세요...") + +raw = sum(hx.get_value(5) for _ in range(N)) / N + +scale = (raw - empty) / known + +print("\n보정 완료") +print("offset =", empty) +print("scale =", scale) + +calib = { + "offset": empty, + "scale": scale +} + +with open("hx711_calib.json", "w") as f: + json.dump(calib, f, indent=4) + +print("✔ hx711_calib.json 저장 완료") diff --git a/QT-Server/hx711_read.py b/QT-Server/hx711_read.py new file mode 100644 index 0000000..1aac47e --- /dev/null +++ b/QT-Server/hx711_read.py @@ -0,0 +1,23 @@ +from hx711 import HX711 +import json, time + +DT_PIN = 5 +SCK_PIN = 6 + +with open("hx711_calib.json") as f: + calib = json.load(f) + +OFFSET = calib["offset"] +SCALE = calib["scale"] + +hx = HX711(DT_PIN, SCK_PIN) + +hx.set_offset(OFFSET) +hx.set_reference_unit(SCALE) + +print(" 무게 측정 시작") + +while True: + weight = hx.get_weight(10) + print(f"무게: {weight:.1f} g") + time.sleep(0.5) diff --git a/QT-Server/main.py b/QT-Server/main.py new file mode 100644 index 0000000..b611fa9 --- /dev/null +++ b/QT-Server/main.py @@ -0,0 +1,200 @@ +import uvicorn +from fastapi import FastAPI, Depends, HTTPException +from fastapi.staticfiles import StaticFiles +from fastapi.responses import FileResponse +from sqlalchemy.orm import Session +from typing import List +from datetime import datetime +import models, database +import dashboard +import logging +from read_weight import read_cart_weight + +CART_ITEMS = [] +EXPECTED_WEIGHT = 0.0 + +app = FastAPI() +models.Base.metadata.create_all(bind=database.engine) + +# 대시보드 라우터 등록 +app.include_router(dashboard.router) +app.mount("/static", StaticFiles(directory="static"), name="static") + +def get_db(): + db = database.SessionLocal() + try: yield db + finally: db.close() + +# 무게 검증 로직 +def is_movable(expected, real): + if expected <= 0: return True + diff_ratio = abs(real - expected) / expected + return diff_ratio <= 0.2 + +# 페이지 라우팅 +@app.get("/dashboard") +async def dashboard_view(): return FileResponse("templates/dashboard.html") + +@app.get("/inventory") +async def inventory_view(): return FileResponse("templates/inventory.html") + +# 카트 무게 기준값 설정 +@app.post("/cart/tare") +def tare_cart(): + global EXPECTED_WEIGHT + EXPECTED_WEIGHT = read_cart_weight() + return {"expected_weight": EXPECTED_WEIGHT} + +@app.get("/items", response_model=List[models.ItemSchema]) +def read_all_items(db: Session = Depends(get_db)): + return db.query(models.Item).all() + +# 상품 추가 +@app.post("/cart/add/{item_id}") +def add_item(item_id: int, db: Session = Depends(get_db)): + global EXPECTED_WEIGHT, CART_ITEMS + + item = db.query(models.Item).filter(models.Item.id == item_id).first() + if not item: + raise HTTPException(404, "Item not found") + + CART_ITEMS.append({ + "id": item.id, + "name": item.name, + "price": item.price, + "weight": item.weight + }) + + EXPECTED_WEIGHT += item.weight + + real = read_cart_weight() + movable = is_movable(EXPECTED_WEIGHT, real) + + return { + "action": "add", + "id": item.id, + "item": item.name, + "price": item.price, + "expected_weight": EXPECTED_WEIGHT, + "real_weight": real, + "diff": abs(real - EXPECTED_WEIGHT), + "movable": movable + } + +# 상품 제거 +@app.post("/cart/remove/{item_id}") +def remove_item(item_id: int): + global EXPECTED_WEIGHT, CART_ITEMS + + for i, item in enumerate(CART_ITEMS): + if item["id"] == item_id: + removed = CART_ITEMS.pop(i) + EXPECTED_WEIGHT -= removed["weight"] + break + else: + raise HTTPException(404, "Item not in cart") + + EXPECTED_WEIGHT = max(EXPECTED_WEIGHT, 0) + + real = read_cart_weight() + movable = is_movable(EXPECTED_WEIGHT, real) + + return { + "action": "remove", + "id": removed["id"], + "item": removed["name"], + "price": removed["price"], + "expected_weight": EXPECTED_WEIGHT, + "real_weight": real, + "movable": movable + } + +# 장바구니 조회 +@app.get("/cart") +def get_cart(): + total_price = sum(item["price"] for item in CART_ITEMS) + + return { + "items": CART_ITEMS, + "total_count": len(CART_ITEMS), + "total_price": total_price, + "expected_weight": EXPECTED_WEIGHT + } + +# 무게 체크 +@app.get("/cart/check_weight") +def check_cart(): + real = read_cart_weight() + movable = is_movable(EXPECTED_WEIGHT, real) + + return { + "expected_weight": EXPECTED_WEIGHT, + "real_weight": real, + "diff": abs(real - EXPECTED_WEIGHT), + "movable": movable + } + +# 대시보드 상태 조회 +@app.get("/cart/status") +def get_cart_status_for_dashboard(): + global EXPECTED_WEIGHT, CART_ITEMS + + real = read_cart_weight() + movable = is_movable(EXPECTED_WEIGHT, real) + + system_status = "NORMAL" if movable else "WARNING_WEIGHT_MISMATCH" + + return { + "real_weight": real, + "expected_weight": EXPECTED_WEIGHT, + "cart_items": CART_ITEMS, + "total_price": sum(item["price"] for item in CART_ITEMS), + "total_count": len(CART_ITEMS), + "system_status": system_status, + "movable": movable + } + +# 결제 +@app.post("/cart/pay") +def pay_cart(db: Session = Depends(get_db)): + global CART_ITEMS, EXPECTED_WEIGHT + + if not CART_ITEMS: + raise HTTPException(status_code=400, detail="장바구니가 비어있습니다.") + + total_price = sum(item["price"] for item in CART_ITEMS) + + new_pay = models.Pay( + total_price=total_price, + created_at=datetime.now() + ) + db.add(new_pay) + db.commit() + + reset_cart() + + return {"msg": "결제 완료", "amount": total_price} + +# 결제 내역 조회 +@app.get("/payments", response_model=List[models.PaySchema]) +def get_payment_history(db: Session = Depends(get_db)): + return db.query(models.Pay).order_by(models.Pay.created_at.desc()).all() + +# 카트 초기화 +@app.post("/cart/reset") +def reset_cart(): + global EXPECTED_WEIGHT, CART_ITEMS + EXPECTED_WEIGHT = 0.0 + CART_ITEMS.clear() + return {"ok": True} + +# 로그 필터 +class EndpointFilter(logging.Filter): + def filter(self, record: logging.LogRecord) -> bool: + msg = record.getMessage() + return all(x not in msg for x in ["/bot/check", "/bot/report", "/cart/status"]) + +logging.getLogger("uvicorn.access").addFilter(EndpointFilter()) + +if __name__ == "__main__": + uvicorn.run(app, host="0.0.0.0", port=8000) \ No newline at end of file diff --git a/QT-Server/models.py b/QT-Server/models.py new file mode 100644 index 0000000..92603fa --- /dev/null +++ b/QT-Server/models.py @@ -0,0 +1,74 @@ +from sqlalchemy import Column, Integer, String, Float, DateTime +from database import Base +from pydantic import BaseModel +from datetime import datetime + +# 상품 테이블 +class Item(Base): + __tablename__ = "items" + + id = Column(Integer, primary_key=True, index=True) + name = Column(String, index=True) + price = Column(Float) + stock = Column(Integer) + weight = Column(Float) # 무게 로직용 + expiry_date = Column(String) # 대시보드 유통기한 관리용 + +# 결제 내역 테이블 +class Pay(Base): + __tablename__ = "payments" + + id = Column(Integer, primary_key=True, index=True) + total_price = Column(Float) + created_at = Column(DateTime, default=datetime.now) + +# 상품 생성 요청 +class ItemCreate(BaseModel): + name: str + price: float + stock: int + weight: float + expiry_date: str + +# 상품 조회 응답 +class ItemSchema(BaseModel): + id: int + name: str + price: float + stock: int + weight: float + expiry_date: str + + class Config: + from_attributes = True + +# 결제 내역 응답 (대시보드 차트용) +class PaySchema(BaseModel): + id: int + total_price: float + created_at: datetime + + class Config: + from_attributes = True + +class CartScanResponse(BaseModel): + item: ItemSchema + cart_weight: float + expected_weight: float + weight_ok: bool + diff: float + + allowed: float + +# 무게 검증 응답 +class CartScanResponse(BaseModel): + item: ItemSchema # 스캔된 상품 정보 + cart_weight: float # 현재 실제 무게 + expected_weight: float # 예상 무게 + weight_ok: bool # 무게 일치 여부 + diff: float # 오차 + allowed: float # 허용 오차 범위 + +# 무게 포함 아이템 정보 +class ItemWithWeight(ItemSchema): + cart_weight: float diff --git a/QT-Server/read_weight.py b/QT-Server/read_weight.py new file mode 100644 index 0000000..2097ba0 --- /dev/null +++ b/QT-Server/read_weight.py @@ -0,0 +1,33 @@ +from hx711 import HX711 +import json, time, threading + +# --- 보정값 로드 --- +with open("hx711_calib.json", "r") as f: + calib = json.load(f) + +OFFSET = calib["offset"] +SCALE = calib["scale"] + +hx = HX711(5, 6) + +hx_lock = threading.Lock() + +def read_cart_weight(): + """현재 카트 무게(g)를 반환""" + with hx_lock: + # 여러 번 평균 내서 노이즈 줄이기 + samples = 10 + total = 0 + + for _ in range(samples): + total += hx.read_raw() + time.sleep(0.02) + + raw = total / samples + weight = (raw - OFFSET) / SCALE + + # 음수/미세값 보호 + if weight < 0: + weight = 0 + + return round(weight, 2) diff --git a/QT-Server/requirements.txt b/QT-Server/requirements.txt new file mode 100644 index 0000000..9e78d57 --- /dev/null +++ b/QT-Server/requirements.txt @@ -0,0 +1,4 @@ +fastapi +uvicorn[standard] +SQLAlchemy +pydantic \ No newline at end of file diff --git a/QT-Server/ros_controller.py b/QT-Server/ros_controller.py new file mode 100644 index 0000000..aeda06a --- /dev/null +++ b/QT-Server/ros_controller.py @@ -0,0 +1,310 @@ +import rclpy +from rclpy.node import Node +from rclpy.action import ActionClient +from geometry_msgs.msg import TwistStamped, PoseWithCovarianceStamped +from nav2_msgs.action import NavigateToPose +from sensor_msgs.msg import BatteryState +from nav_msgs.msg import Odometry +from rclpy.qos import QoSProfile, ReliabilityPolicy, DurabilityPolicy, HistoryPolicy + +import socket +import time +import math +import requests +import threading +from collections import deque + +UDP_PORT_UWB = 44444 +UDP_PORT_QT = 55555 +BUFFER_SIZE = 1024 +SERVER_IP = "192.168.123.43" +API_REPORT_URL = f"http://{SERVER_IP}:8000/dashboard/bot/report" +API_WEIGHT_URL = f"http://{SERVER_IP}:8000/cart/check_weight" + +TAG_HEIGHT = 1.85 +ANCHOR_Z = 2.37 +H_DIFF = abs(ANCHOR_Z - TAG_HEIGHT) + +# 고정 오프셋 보정값 +FIXED_OFFSETS = {0: -7.00, 1: -7.00, 2: -7.50} +# 앵커 절대 좌표 +ANCHORS_POS = { + 0: {'x': 0.00, 'y': 0.00}, + 1: {'x': 6.00, 'y': 0.00}, + 2: {'x': 3.00, 'y': 15.00} +} +MIN_UPDATE_DIST = 1.2 +NAV_UPDATE_INTERVAL = 2.0 + +class IntegratedRosController(Node): + def __init__(self): + super().__init__('integrated_ros_controller_node') + + amcl_qos = QoSProfile( + depth=1, + reliability=ReliabilityPolicy.RELIABLE, + durability=DurabilityPolicy.TRANSIENT_LOCAL, + history=HistoryPolicy.KEEP_LAST + ) + + self.cmd_vel_pub = self.create_publisher(TwistStamped, '/cmd_vel', 10) + self.battery_sub = self.create_subscription(BatteryState, '/battery_state', self.battery_callback, 10) + self.odom_sub = self.create_subscription(Odometry, '/odom', self.odom_callback, 10) + self.amcl_sub = self.create_subscription( + PoseWithCovarianceStamped, + '/amcl_pose', + self.amcl_callback, + amcl_qos + ) + + self.nav_to_pose_client = ActionClient(self, NavigateToPose, 'navigate_to_pose') + + self.sock_uwb = self.create_udp_socket(UDP_PORT_UWB) + self.sock_qt = self.create_udp_socket(UDP_PORT_QT) + + self.current_mode = 0 + self.battery_level = 0.0 + self.current_speed = 0.0 + self.qt_addr = None + + self.robot_x = 0.0 + self.robot_y = 0.0 + self.human_x = 0.0 + self.human_y = 0.0 + + self.x_his = deque(maxlen=15) + self.y_his = deque(maxlen=5) + self.uwb_dists = [0.0, 0.0, 0.0] + self.uwb_last_update = [0.0, 0.0, 0.0] + + self.nav_goal_handle = None + self.last_goal_time = 0.0 + self.last_target_pos = [0.0, 0.0] + + self.is_weight_ok = True + self.last_weight_check_time = 0.0 + self.weight_check_interval = 3.0 + + self.get_logger().info("Waiting for Nav2 Server...") + if not self.nav_to_pose_client.wait_for_server(timeout_sec=5.0): + self.get_logger().warn("Nav2 Server not ready yet.") + + self.create_timer(0.05, self.control_loop) + self.create_timer(1.0, self.send_bot_status) + + self.get_logger().info("ROS Controller Started") + + def create_udp_socket(self, port): + sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) + sock.bind(('0.0.0.0', port)) + sock.setblocking(False) + return sock + + # 무게 체크 + def trigger_async_weight_check(self): + def _check(): + try: + response = requests.get(API_WEIGHT_URL, timeout=0.5) + if response.status_code == 200: + data = response.json() + movable = data.get("movable", True) + self.is_weight_ok = movable + + if not movable: + self.send_udp_to_qt("ERROR:WEIGHT_MISMATCH") + except: pass + + threading.Thread(target=_check, daemon=True).start() + + def send_udp_to_qt(self, message): + if self.qt_addr: + try: self.sock_qt.sendto(message.encode(), self.qt_addr) + except: pass + + def battery_callback(self, msg): + self.battery_level = int(msg.percentage) if msg.percentage >= 0 else 0.0 + + def odom_callback(self, msg): + self.current_speed = msg.twist.twist.linear.x + + def amcl_callback(self, msg): + self.robot_x = msg.pose.pose.position.x + self.robot_y = msg.pose.pose.position.y + + # 로봇 상태 전송 + def send_bot_status(self): + def _post(): + try: + payload = { + "status": "ONLINE", + "mode": self.current_mode, + "battery": round(self.battery_level, 1), + "speed": round(self.current_speed, 2), + "x": self.robot_x, + "y": self.robot_y, + "human_x": self.human_x, + "human_y": self.human_y + } + requests.post(API_REPORT_URL, json=payload, timeout=2.0) + except: pass + + # 스레드 비동기 전송 후 종료 + threading.Thread(target=_post, daemon=True).start() + + # 삼변측량 함수 + def calculate_trilateration(self, distances): + try: + x1, y1, r1 = ANCHORS_POS[0]['x'], ANCHORS_POS[0]['y'], distances[0] + x2, y2, r2 = ANCHORS_POS[1]['x'], ANCHORS_POS[1]['y'], distances[1] + x3, y3, r3 = ANCHORS_POS[2]['x'], ANCHORS_POS[2]['y'], distances[2] + A, B = 2*(x2-x1), 2*(y2-y1) + C = r1**2 - r2**2 - x1**2 + x2**2 - y1**2 + y2**2 + D, E = 2*(x3-x2), 2*(y3-y2) + F = r2**2 - r3**2 - x2**2 + x3**2 - y2**2 + y3**2 + den = (A * E) - (B * D) + if abs(den) < 0.0001: return None + return ((C * E) - (B * F)) / den, ((A * F) - (C * D)) / den + except: return None + + def transform_to_map(self, ux, uy): + mx = 3.25 + (ux * -0.9725) + my = -7.35 + (uy * 0.5966) + return mx, my + + # UWB 데이터 수신 + def receive_uwb_data(self): + try: + for _ in range(10): + data, _ = self.sock_uwb.recvfrom(BUFFER_SIZE) + msg = data.decode('utf-8').strip() + idx = -1 + if msg.startswith("A1:"): idx = 0 + elif msg.startswith("A2:"): idx = 1 + elif msg.startswith("A3:"): idx = 2 + + if idx != -1: + raw_val = float(msg.split(":")[1]) + corrected_dist = raw_val - FIXED_OFFSETS[idx] + h_dist = math.sqrt(corrected_dist**2 - H_DIFF**2) if corrected_dist > H_DIFF else 0.1 + self.uwb_dists[idx] = h_dist + self.uwb_last_update[idx] = time.time() + except BlockingIOError: pass + except: pass + + def receive_qt_command(self): + try: + while True: + data, addr = self.sock_qt.recvfrom(BUFFER_SIZE) + self.qt_addr = addr + text = data.decode('utf-8').strip() + if text.startswith("MODE:"): self.change_mode(int(text.split(":")[1])) + elif text.startswith("GOAL:"): + if self.current_mode != 2: self.change_mode(2) + p = text.split(":")[1].split(",") + self.start_navigation(float(p[0]), float(p[1])) + elif text.startswith("STOP"): self.change_mode(0) + except BlockingIOError: pass + except: pass + + def control_loop(self): + self.receive_uwb_data() + self.receive_qt_command() + + now = time.time() + + if now - self.last_weight_check_time > self.weight_check_interval: + self.trigger_async_weight_check() + self.last_weight_check_time = now + + if all(now - self.uwb_last_update[i] < 1.0 for i in range(3)): + pos = self.calculate_trilateration(self.uwb_dists) + if pos: + raw_x = max(0, min(pos[0], 6.0)) + raw_y = max(0, min(pos[1], 15.0)) + self.x_his.append(raw_x) + self.y_his.append(raw_y) + avg_x = sum(self.x_his) / len(self.x_his) + avg_y = sum(self.y_his) / len(self.y_his) + + final_uwb_x = (avg_x / 6.0) * (3.80 - 0.10) + 0.10 + final_uwb_y = avg_y + + mx, my = self.transform_to_map(final_uwb_x, final_uwb_y) + self.human_x = mx + self.human_y = my + + if self.current_mode == 1: + dist_diff = math.sqrt((mx - self.last_target_pos[0])**2 + (my - self.last_target_pos[1])**2) + + if self.is_weight_ok: + if (now - self.last_goal_time > NAV_UPDATE_INTERVAL) and (dist_diff > MIN_UPDATE_DIST): + self.get_logger().info(f"Target Moved -> Goal: ({mx:.2f}, {my:.2f})") + self.start_navigation(mx, my) + self.last_goal_time = now + self.last_target_pos = [mx, my] + + if self.current_mode == 0: + if self.nav_goal_handle: self.cancel_navigation() + self.stop_robot() + + def change_mode(self, new_mode): + if self.current_mode == new_mode: return + self.get_logger().info(f"Mode Switching: {self.current_mode} -> {new_mode}") + self.cancel_navigation() + self.stop_robot() + self.current_mode = new_mode + self.last_target_pos = [0.0, 0.0] + self.trigger_async_weight_check() + + # 네비게이션 실행 + def start_navigation(self, x, y): + if not self.is_weight_ok: return + + if not self.nav_to_pose_client.server_is_ready(): + self.get_logger().error("Nav2 Server not ready!") + return + + goal_msg = NavigateToPose.Goal() + goal_msg.pose.header.frame_id = 'map' + goal_msg.pose.header.stamp = self.get_clock().now().to_msg() + goal_msg.pose.pose.position.x = x + goal_msg.pose.pose.position.y = y + goal_msg.pose.pose.orientation.w = 1.0 + self._send_goal_future = self.nav_to_pose_client.send_goal_async(goal_msg) + self._send_goal_future.add_done_callback(self.goal_response_callback) + + def goal_response_callback(self, future): + handle = future.result() + if handle.accepted: + self.nav_goal_handle = handle + self._get_result_future = handle.get_result_async() + self._get_result_future.add_done_callback(self.get_result_callback) + + def get_result_callback(self, future): + result = future.result() + if result.status == 4: + self.send_udp_to_qt("STATUS:ARRIVED") + self.nav_goal_handle = None + + def cancel_navigation(self): + if self.nav_goal_handle: + self.nav_goal_handle.cancel_goal_async() + self.nav_goal_handle = None + + def stop_robot(self): + msg = TwistStamped() + msg.header.stamp = self.get_clock().now().to_msg() + msg.header.frame_id = 'base_link' + self.cmd_vel_pub.publish(msg) + +def main(): + rclpy.init() + node = IntegratedRosController() + try: rclpy.spin(node) + except KeyboardInterrupt: pass + finally: + node.destroy_node() + rclpy.shutdown() + +if __name__ == '__main__': + main() diff --git a/QT-Server/shopping_cart.db b/QT-Server/shopping_cart.db new file mode 100644 index 0000000..475686a Binary files /dev/null and b/QT-Server/shopping_cart.db differ diff --git a/QT-Server/static/css/dashboard.css b/QT-Server/static/css/dashboard.css new file mode 100644 index 0000000..60f5450 --- /dev/null +++ b/QT-Server/static/css/dashboard.css @@ -0,0 +1,253 @@ +body { + background-color: #0f172a; + color: #f1f5f9; + font-family: 'Pretendard', -apple-system, BlinkMacSystemFont, system-ui, sans-serif; + margin: 0; + padding: 0; + height: 100vh; + display: flex; + flex-direction: column; + overflow: hidden; +} + +/* 헤더 스타일 */ +header { + background-color: #1e293b; + border-bottom: 1px solid #334155; + padding: 0 30px; + height: 60px; + display: flex; + align-items: center; + justify-content: space-between; + flex-shrink: 0; +} + +.logo { font-weight: 800; font-size: 1.3rem; margin-right: 40px; color: #fff; } + +nav { display: flex; gap: 10px; flex: 1; } + +.nav-btn { + text-decoration: none; + color: #94a3b8; + font-weight: 600; + padding: 8px 16px; + border-radius: 8px; + transition: all 0.2s; + font-size: 0.9rem; +} +.nav-btn:hover { background-color: #334155; color: #fff; } +.nav-btn.active { background-color: #3b82f6; color: #fff; box-shadow: 0 0 10px rgba(59, 130, 246, 0.3); } + +/* 상단 상태 배지 */ +.status-group { display: flex; gap: 10px; } +.status-badge { + font-size: 0.8rem; + padding: 4px 12px; + border-radius: 99px; + background-color: #334155; + color: #94a3b8; + font-weight: 700; + display: flex; align-items: center; gap: 6px; border: 1px solid #475569; +} +.dot { width: 6px; height: 6px; border-radius: 50%; background-color: #94a3b8; } +.status-badge.on { background-color: #064e3b; color: #34d399; border-color: #059669; } +.status-badge.on .dot { background-color: #34d399; box-shadow: 0 0 4px #34d399; } +.status-badge.off { background-color: #450a0a; color: #f87171; border-color: #b91c1c; } +.status-badge.off .dot { background-color: #f87171; box-shadow: 0 0 4px #f87171; } + +/* --- 메인 레이아웃 --- */ +main { + padding: 20px; + max-width: 100%; + margin: 0 auto; + width: 100%; + box-sizing: border-box; + flex: 1; + overflow-y: hidden; + display: flex; + flex-direction: column; + gap: 20px; +} + +/* 상단 카트 요약 그리드 */ +.cart-select-grid { + display: grid; + grid-template-columns: repeat(4, 1fr); + gap: 15px; + flex-shrink: 0; +} + +.cart-summary-card { + background-color: #1e293b; + border: 2px solid #334155; + border-radius: 12px; + padding: 15px; + cursor: pointer; + transition: all 0.2s ease; + display: flex; + flex-direction: column; + gap: 10px; + position: relative; +} + +.cart-summary-card:hover { transform: translateY(-2px); border-color: #64748b; } + +.cart-summary-card.selected { + border-color: #3b82f6; + background-color: #1e293b; + box-shadow: 0 0 15px rgba(59, 130, 246, 0.2); +} + +.summary-header { display: flex; justify-content: space-between; align-items: center; } +.summary-name { font-weight: 700; color: #fff; font-size: 1rem; } +.summary-status-dot { width: 8px; height: 8px; border-radius: 50%; background-color: #475569; } +.summary-status-dot.online { background-color: #10b981; box-shadow: 0 0 5px #10b981; } +.summary-status-dot.warning { background-color: #e45d0f; box-shadow: 0 0 5px #e45d0f; } +.summary-status-dot.offline { background-color: #fa0303; box-shadow: 0 0 5px #e45d0f;} + +.summary-row { display: flex; justify-content: space-between; font-size: 0.85rem; color: #94a3b8; } +.summary-val { color: #f1f5f9; font-weight: 600; } + +/* 하단 상세 패널 */ +.cart-panel { + flex: 1; + background-color: #1e293b; + border-radius: 12px; + box-shadow: 0 4px 6px rgba(0,0,0,0.2); + border: 2px solid #334155; + overflow: hidden; + display: flex; + flex-direction: column; + min-height: 0; +} + +.panel-header { + background-color: #0f172a; + padding: 15px 25px; + display: flex; + justify-content: space-between; + align-items: center; + border-bottom: 1px solid #334155; + flex-shrink: 0; +} +.cart-info { display: flex; align-items: center; gap: 10px; } +.cart-icon { font-size: 1.5rem; } +.cart-name { font-size: 1.2rem; font-weight: 800; color: #fff; } +.panel-status { font-weight: 700; font-size: 0.95rem; color: #64748b; } + +/* --- 패널 내부 비율 (4:6) --- */ +.panel-body { + display: flex; + flex: 1; + overflow: hidden; + flex-direction: row; +} + +/* 왼쪽 영역 (정보) */ +.panel-left { + flex: 4; + display: flex; + flex-direction: column; + border-right: 1px solid #334155; + min-width: 320px; + overflow-y: auto; +} + +/* 오른쪽 영역 (지도) */ +.panel-right { + flex: 6; + background-color: #0f172a; + display: flex; + flex-direction: column; + padding: 20px; + min-width: 0; +} + +/* 센서 그리드 */ +.sensor-grid { + padding: 25px; + display: grid; + grid-template-columns: 1fr 1fr; + grid-template-rows: 1fr 1fr; + gap: 15px; + border-bottom: 1px solid #334155; + flex-shrink: 0; +} +.data-box { + background-color: #28364d; + padding: 20px; + border-radius: 12px; + text-align: center; + box-shadow: 0 2px 5px rgba(0,0,0,0.1); + display: flex; flex-direction: column; justify-content: center; +} +.data-label { font-size: 0.9rem; color: #94a3b8; margin-bottom: 5px; font-weight: 600; } +.data-value { font-size: 1.8rem; font-weight: 800; color: #fff; } +.unit { font-size: 0.9rem; color: #64748b; font-weight: 500; margin-left: 3px; } + +.val-normal { color: #38bdf8; } +.val-warning { color: #f87171; } +.val-success { color: #34d399; } +.val-offline { color: #64748b; } + +/* 아이템 리스트 */ +.items-section { + padding: 25px; + background-color: #1e293b; + flex: 1; + display: flex; + flex-direction: column; +} +.items-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 15px; } +.items-title { font-size: 1.1rem; font-weight: 700; color: #e2e8f0; } +.items-summary { font-size: 0.95rem; color: #94a3b8; font-weight: 600; } +.total-price { color: #34d399; font-weight: 800; font-size: 1.1rem; margin-left: 8px; } + +.table-scroll-box { + flex: 1; overflow-y: auto; + border: 1px solid #334155; border-radius: 8px; + background-color: #1e293b; + min-height: 150px; +} +.table-scroll-box::-webkit-scrollbar { width: 8px; } +.table-scroll-box::-webkit-scrollbar-track { background: #1e293b; } +.table-scroll-box::-webkit-scrollbar-thumb { background: #475569; border-radius: 4px; } + +.items-table { width: 100%; border-collapse: collapse; font-size: 0.95rem; } +.items-table th { + text-align: left; color: #94a3b8; padding: 12px 20px; background-color: #0f172a; + position: sticky; top: 0; z-index: 1; border-bottom: 1px solid #334155; font-size: 0.85rem; font-weight: 700; +} +.items-table td { padding: 12px 20px; border-bottom: 1px solid #334155; color: #f1f5f9; } +.items-table tr:hover td { background-color: #334155; } + +/* 지도 헤더 */ +.map-header { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 15px; + flex-shrink: 0; +} +.map-title { font-size: 1.1rem; font-weight: 700; color: #e2e8f0; } +.map-coords { font-family: monospace; color: #34d399; font-size: 0.9rem; } + +/* 캔버스 컨테이너 */ +.canvas-container { + flex: 1; + background-color: #020617; + border: 1px solid #334155; + border-radius: 8px; + position: relative; + overflow: hidden; + display: flex; + justify-content: center; + align-items: center; +} + +canvas { + background-color: transparent; + width: 100%; + height: 100%; + object-fit: contain; +} \ No newline at end of file diff --git a/QT-Server/static/css/inventory.css b/QT-Server/static/css/inventory.css new file mode 100644 index 0000000..a84e625 --- /dev/null +++ b/QT-Server/static/css/inventory.css @@ -0,0 +1,130 @@ +/* --- 다크 모드 기본 스타일 --- */ +body { + background-color: #0f172a; + color: #f1f5f9; + font-family: 'Pretendard', sans-serif; + margin: 0; + padding: 0; + height: 100vh; + display: flex; + flex-direction: column; + overflow: hidden; +} + +/* --- 헤더 --- */ +header { + background-color: #1e293b; + color: #fff; + border-bottom: 1px solid #334155; + padding: 0 30px; + height: 60px; + display: flex; + align-items: center; + justify-content: space-between; + flex-shrink: 0; +} +.logo { font-weight: 800; font-size: 1.3rem; margin-right: 40px; } + +nav { display: flex; gap: 10px; flex: 1; } +.nav-btn { text-decoration: none; color: #94a3b8; font-weight: 600; padding: 8px 16px; border-radius: 8px; transition: all 0.2s; font-size: 0.9rem; } +.nav-btn:hover { background-color: #334155; color: #fff; } +.nav-btn.active { background-color: #3b82f6; color: #fff; box-shadow: 0 0 10px rgba(59, 130, 246, 0.3); } + +.container { display: flex; flex-direction: column; flex: 1; min-height: 0; padding: 20px; gap: 20px; box-sizing: border-box; } + +/* 다크 모드 섹션 스타일 */ +.inventory-section { + flex: 1; + background: #1e293b; + border-radius: 12px; + box-shadow: 0 4px 6px rgba(0,0,0,0.2); + display: flex; + flex-direction: column; + overflow: hidden; + border: 1px solid #334155; +} + +.section-header { + padding: 15px 20px; + border-bottom: 1px solid #334155; + display: flex; + justify-content: space-between; + align-items: center; + font-weight: 700; + font-size: 1.1rem; + color: #e2e8f0; + background-color: #0f172a; +} + +.table-wrapper { flex: 1; overflow-y: auto; } + +/* 다크 모드 테이블 */ +table { width: 100%; border-collapse: collapse; font-size: 0.95rem; } +th { + position: sticky; top: 0; + background-color: #0f172a; + color: #94a3b8; + padding: 12px 20px; + text-align: left; + border-bottom: 2px solid #334155; + font-size: 0.85rem; + font-weight: 700; + z-index: 10; +} +td { + padding: 12px 20px; + border-bottom: 1px solid #334155; + color: #f1f5f9; + vertical-align: middle; +} +tr:hover td { background-color: #334155; } + +.sortable { cursor: pointer; user-select: none; transition: color 0.2s; } +.sortable:hover { color: #3b82f6; background-color: #1e293b; } + +/* 다크 모드 배지 스타일 */ +.badge { padding: 4px 10px; border-radius: 6px; font-size: 0.8rem; font-weight: 700; display: inline-block; min-width: 80px; text-align: center; } + +.expiry-expired { background-color: #450a0a; color: #f87171; border: 1px solid #b91c1c; } /* 만료 */ +.expiry-warning { background-color: #422006; color: #fbbf24; border: 1px solid #b45309; } /* 임박 */ +.expiry-good { background-color: #064e3b; color: #34d399; border: 1px solid #059669; } /* 안전 */ + +.stock-badge { padding: 4px 10px; border-radius: 6px; font-size: 0.8rem; font-weight: 700; display: inline-block; text-align: center; } +.stock-low { background-color: #450a0a; color: #f87171; border: 1px solid #b91c1c; } +.stock-normal { background-color: #334155; color: #94a3b8; border: 1px solid #475569; } + +/* 매출 섹션 */ +.sales-section { flex: 1; display: flex; gap: 20px; min-height: 0; } +.kpi-container { display: flex; flex-direction: column; gap: 15px; width: 250px; flex-shrink: 0; } + +.kpi-card { + background: #1e293b; + border-radius: 12px; + padding: 20px; + border: 1px solid #334155; + box-shadow: 0 4px 6px rgba(0,0,0,0.2); + flex: 1; + display: flex; + flex-direction: column; + justify-content: center; +} +.kpi-title { font-size: 0.9rem; color: #94a3b8; margin-bottom: 5px; font-weight: 600; } +.kpi-value { font-size: 1.8rem; font-weight: 800; color: #fff; } +.kpi-icon { font-size: 2rem; margin-bottom: 10px; } + +.chart-container { + flex: 1; + background: #1e293b; + border-radius: 12px; + border: 1px solid #334155; + box-shadow: 0 4px 6px rgba(0,0,0,0.2); + padding: 20px; + position: relative; + display: flex; + flex-direction: column; +} + +::-webkit-scrollbar { width: 8px; } +::-webkit-scrollbar-track { background: #0f172a; } +::-webkit-scrollbar-thumb { background: #475569; border-radius: 4px; } +::-webkit-scrollbar-thumb:hover { background: #64748b; } \ No newline at end of file diff --git a/QT-Server/static/js/dashboard.js b/QT-Server/static/js/dashboard.js new file mode 100644 index 0000000..1c1067b --- /dev/null +++ b/QT-Server/static/js/dashboard.js @@ -0,0 +1,341 @@ +let currentCartId = 1; + +const mapImg = new Image(); +mapImg.src = "/static/map601.png"; + +const MAP_BOUNDS = { + LEFT_X: -0.67, + RIGHT_X: 3.34, + TOP_Y: 1.66, + BOTTOM_Y: -7.4 +}; + +const allCartsData = { + 1: { id: 1, name: "QTCART 1호차", isOnline: false, battery: 0, speed: 0, weight: 0, expected: 0, items: [], status: "OFFLINE", x: 0.0, y: 0.0, human_x: 0.0, human_y: 0.0 }, + 2: { id: 2, name: "QTCART 2호차", isOnline: true, battery: 92, speed: 50, weight: 710, expected: 700, items: generateMockItems(3), status: "ONLINE", x: 1.5, y: 1.0 }, + 3: { id: 3, name: "QTCART 3호차", isOnline: true, battery: 34, speed: 0, weight: 0, expected: 0, items: [], status: "ONLINE", x: -0.67, y: 1.66 }, + 4: { id: 4, name: "QTCART 4호차", isOnline: true, battery: 65, speed: 0, weight: 0, expected: 0, items: [], status: "ONLINE", x: 3.34, y: -7.4 } +}; + +function generateMockItems(count) { + const mockDb = [ + {name: "코카콜라 500ml", price: 2000, weight: 500}, + {name: "포카칩 오리지널", price: 1500, weight: 100}, + {name: "제주 삼다수 2L", price: 1000, weight: 2000}, + {name: "신라면 멀티팩", price: 4500, weight: 600} + ]; + let items = []; + for(let i=0; i 0.98) c.battery = Math.max(0, c.battery - 1); + if(Math.random() > 0.7) c.speed = Math.floor(Math.random() * 80); + c.x += (Math.random() - 0.5) * 0.1; + c.y += (Math.random() - 0.5) * 0.1; +} + +function renderGrid() { + const grid = document.getElementById('cartGrid'); + grid.innerHTML = ''; + + for(let i=1; i<=4; i++) { + const data = allCartsData[i]; + const isSelected = (i === currentCartId) ? 'selected' : ''; + let dotClass = 'offline'; + let statusColor = '#64748b'; + + if(data.isOnline) { + if(data.status === 'WARNING') { + dotClass = 'warning'; + statusColor = '#fbbf24'; + } else { + dotClass = 'online'; + statusColor = '#34d399'; + } + } + + const speedDisplay = data.isOnline ? `${data.speed} cm/s` : '--'; + + const html = ` +
+
+
${data.name}
+
+
+
+ 배터리 + ${data.isOnline ? data.battery+'%' : '-'} +
+
+ 현재 속도 ${speedDisplay}
+
`; + grid.innerHTML += html; + } +} + +function renderDetailPanel() { + const data = allCartsData[currentCartId]; + const statusText = document.getElementById('detailStatusText'); + const panel = document.getElementById('detailPanel'); + + document.getElementById('detailName').innerText = data.name; + + if(data.isOnline) { + if(data.status === 'WARNING') { + statusText.innerText = '● 무게 불일치 경고'; + statusText.style.color = '#fbbf24'; + panel.style.borderColor = '#fbbf24'; + } else { + statusText.innerText = '● 온라인'; + statusText.style.color = '#34d399'; + panel.style.borderColor = '#334155'; + } + } else { + statusText.innerText = '● 오프라인'; + statusText.style.color = '#f87171'; + panel.style.borderColor = '#ef4444'; + } + + const elReal = document.getElementById('detailReal'); + const elExp = document.getElementById('detailExpected'); + const elBat = document.getElementById('detailBattery'); + const elSpd = document.getElementById('detailSpeed'); + + if(data.isOnline) { + elReal.innerText = typeof data.weight === 'number' ? data.weight.toFixed(1) : data.weight; + elExp.innerText = typeof data.expected === 'number' ? data.expected.toFixed(1) : data.expected; + elBat.innerText = data.battery; + elSpd.innerText = data.speed; + + elBat.parentElement.className = data.battery < 20 ? "data-value val-warning" : "data-value val-success"; + if(data.status === 'WARNING') elReal.parentElement.className = "data-value val-warning"; + else elReal.parentElement.className = "data-value val-normal"; + } else { + elReal.innerText = '--'; + elExp.innerText = '--'; + elBat.innerText = '--'; + elSpd.innerText = '--'; + elReal.parentElement.className = "data-value val-offline"; + elBat.parentElement.className = "data-value val-offline"; + } + + const tbody = document.getElementById('detailListBody'); + const countEl = document.getElementById('detailCount'); + const priceEl = document.getElementById('detailPrice'); + + if(!data.isOnline || data.items.length === 0) { + tbody.innerHTML = '데이터 없음'; + countEl.innerText = '0'; + priceEl.innerText = '0원'; + } else { + const agg = {}; + let totalP = 0; + let totalC = 0; + data.items.forEach(item => { + if(agg[item.name]) agg[item.name].qty++; + else agg[item.name] = {...item, qty: 1}; + totalP += item.price; + totalC++; + }); + let html = ''; + Object.values(agg).forEach(item => { + html += ` + ${item.name} + ${item.price.toLocaleString()}원 + ${item.weight}g + ${item.qty} + `; + }); + tbody.innerHTML = html; + countEl.innerText = totalC; + priceEl.innerText = totalP.toLocaleString() + '원'; + } +} + +function drawMap() { + const canvas = document.getElementById('robotMap'); + if(!canvas) return; + + const ctx = canvas.getContext('2d'); + const data = allCartsData[currentCartId]; + + const container = canvas.parentElement; + if(canvas.width !== container.clientWidth || canvas.height !== container.clientHeight) { + canvas.width = container.clientWidth; + canvas.height = container.clientHeight; + } + const cvsW = canvas.width; + const cvsH = canvas.height; + ctx.clearRect(0, 0, cvsW, cvsH); + + // 이미지 로딩 체크 + if (!mapImg.complete || mapImg.naturalWidth === 0) { + ctx.fillStyle = '#94a3b8'; + ctx.font = '14px sans-serif'; + ctx.fillText("Loading Map...", 20, 30); + return; + } + + const imgW = mapImg.naturalWidth; + const imgH = mapImg.naturalHeight; + const imgRatio = imgW / imgH; + const cvsRatio = cvsW / cvsH; + + let drawW, drawH, drawX, drawY; + + if (cvsRatio > imgRatio) { + drawH = cvsH; + drawW = cvsH * imgRatio; + drawX = (cvsW - drawW) / 2; + drawY = 0; + } else { + drawW = cvsW; + drawH = cvsW / imgRatio; + drawX = 0; + drawY = (cvsH - drawH) / 2; + } + ctx.drawImage(mapImg, drawX, drawY, drawW, drawH); + + const toPixel = (rosX, rosY) => { + const xRange = MAP_BOUNDS.RIGHT_X - MAP_BOUNDS.LEFT_X; + let ratioX = (rosX - MAP_BOUNDS.LEFT_X) / xRange; + + const yRange = MAP_BOUNDS.BOTTOM_Y - MAP_BOUNDS.TOP_Y; + let ratioY = (rosY - MAP_BOUNDS.TOP_Y) / yRange; + + let finalX = drawX + (ratioX * drawW); + let finalY = drawY + (ratioY * drawH); + return { x: finalX, y: finalY }; + }; + + if (data.isOnline) { + console.log(`Robot(${data.x}, ${data.y})`); + + const botPos = toPixel(data.x, data.y); + + ctx.beginPath(); + ctx.arc(botPos.x, botPos.y, 6, 0, Math.PI * 2); + + let color = (currentCartId === 1) ? '#ef4444' : (data.status === 'WARNING' ? '#fbbf24' : '#34d399'); + ctx.fillStyle = color; + ctx.fill(); + + ctx.strokeStyle = '#ffffff'; + ctx.lineWidth = 2; + ctx.stroke(); + + ctx.fillStyle = '#ffffff'; + ctx.font = 'bold 12px sans-serif'; + ctx.fillText("BOT", botPos.x + 10, botPos.y + 4); + + if (currentCartId === 1) { + const humanPos = toPixel(data.human_x, data.human_y); + + ctx.beginPath(); + ctx.arc(humanPos.x, humanPos.y, 6, 0, Math.PI * 2); + ctx.fillStyle = '#3b82f6'; + ctx.fill(); + + ctx.strokeStyle = '#ffffff'; + ctx.stroke(); + + ctx.fillStyle = '#3b82f6'; + ctx.fillText("ME", humanPos.x + 10, humanPos.y + 4); + } + + const coordEl = document.getElementById('mapCoords'); + if(coordEl) coordEl.innerText = `Robot: (${data.x.toFixed(2)}, ${data.y.toFixed(2)})`; + } else { + const coordEl = document.getElementById('mapCoords'); + if(coordEl) coordEl.innerText = "OFFLINE"; + } +} + +function selectCart(id) { + currentCartId = id; + renderGrid(); + renderDetailPanel(); + drawMap(); +} + +// 1초마다 갱신 +setInterval(updateDashboard, 1000); +updateDashboard(); \ No newline at end of file diff --git a/QT-Server/static/js/inventory.js b/QT-Server/static/js/inventory.js new file mode 100644 index 0000000..a6028f8 --- /dev/null +++ b/QT-Server/static/js/inventory.js @@ -0,0 +1,151 @@ +let currentItems = []; + +function refreshAll() { + fetchInventory(); + fetchSalesStats(); +} + +async function fetchInventory() { + try { + const res = await fetch('/items'); + if (res.ok) { + currentItems = await res.json(); + renderTable('expiry'); + } + } catch (e) { console.error(e); } +} + +function renderTable(sortKey) { + const tbody = document.getElementById('inventoryBody'); + + if (sortKey === 'expiry') { + currentItems.sort((a, b) => new Date(a.expiry_date) - new Date(b.expiry_date)); + } else if (sortKey === 'stock') { + currentItems.sort((a, b) => a.stock - b.stock); + } + + const today = new Date(); + today.setHours(0,0,0,0); + + let html = currentItems.map(item => { + const expiryDate = new Date(item.expiry_date); + const diffTime = expiryDate - today; + const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24)); + + let dateClass = 'expiry-good'; + let dateText = `D-${diffDays}`; + + if (diffDays < 0) { + dateClass = 'expiry-expired'; + dateText = '만료됨'; + } else if (diffDays === 0) { + dateClass = 'expiry-warning'; + dateText = '오늘 만료'; + } else if (diffDays <= 3) { + dateClass = 'expiry-warning'; + dateText = `${diffDays}일 남음`; + } + + let stockHtml = ''; + if (item.stock === 0) { + stockHtml = `부족 (${item.stock})`; + } else { + stockHtml = `${item.stock}개`; + } + + return ` + #${item.id} + ${item.name} + ${item.price.toLocaleString()}원 + + ${item.expiry_date} (${dateText}) + + ${stockHtml} + `; + }).join(''); + + tbody.innerHTML = html || '등록된 상품이 없습니다.'; +} + +let myChart = null; + +// ----- 결제 정보 ----- +async function fetchSalesStats() { + try { + const res = await fetch('/payments'); + if (!res.ok) return; + const payments = await res.json(); + + const today = new Date(); + const thirtyDaysAgo = new Date(); + thirtyDaysAgo.setDate(today.getDate() - 30); + + let monthTotal = 0; + let monthCount = 0; + const dailySales = {}; + + for (let i = 0; i < 30; i++) { + const d = new Date(); + d.setDate(today.getDate() - i); + dailySales[d.toISOString().split('T')[0]] = 0; + } + + payments.forEach(pay => { + const payDate = new Date(pay.created_at); + if (payDate >= thirtyDaysAgo) { + monthTotal += pay.total_price; + monthCount += 1; + const dateStr = pay.created_at.split('T')[0]; + if (dailySales[dateStr] !== undefined) dailySales[dateStr] += pay.total_price; + } + }); + + document.getElementById('monthTotal').innerText = monthTotal.toLocaleString() + '원'; + document.getElementById('monthCount').innerText = monthCount + '건'; + updateChart(dailySales); + + } catch (e) { console.error(e); } +} + +function updateChart(dailyData) { + const sortedDates = Object.keys(dailyData).sort(); + const dataValues = sortedDates.map(date => dailyData[date]); + const labels = sortedDates.map(date => date.slice(5)); + + const ctx = document.getElementById('salesChart').getContext('2d'); + if (myChart) myChart.destroy(); + + myChart = new Chart(ctx, { + type: 'line', + data: { + labels: labels, + datasets: [{ + label: '매출 (원)', + data: dataValues, + borderColor: '#8b5cf6', + backgroundColor: 'rgba(139, 92, 246, 0.2)', + borderWidth: 2, + fill: true, + tension: 0.3 + }] + }, + options: { + responsive: true, + maintainAspectRatio: false, + plugins: { legend: { display: false } }, + scales: { + y: { + beginAtZero: true, + grid: { borderDash: [5, 5], color: '#334155' }, + ticks: { color: '#94a3b8' } + }, + x: { + grid: { display: false }, + ticks: { color: '#94a3b8' } + } + } + } + }); +} + +refreshAll(); \ No newline at end of file diff --git a/QT-Server/static/map601.png b/QT-Server/static/map601.png new file mode 100644 index 0000000..dcc2874 Binary files /dev/null and b/QT-Server/static/map601.png differ diff --git a/QT-Server/templates/dashboard.html b/QT-Server/templates/dashboard.html new file mode 100644 index 0000000..330e832 --- /dev/null +++ b/QT-Server/templates/dashboard.html @@ -0,0 +1,98 @@ + + + + + + QTCART 관제 시스템 + + + +
+ + +
+
서버 연결
+
+
+ +
+
+
+ +
+
+
+
🛒
+
QTCART 1호차
+
+
● 데이터 로딩중
+
+ +
+ +
+
+
+
배터리 잔량
+
--%
+
+
+
현재 속도
+
--cm/s
+
+
+
기대 무게
+
0g
+
+
+
실제 무게
+
--g
+
+
+ +
+
+
📦 담긴 상품 목록
+
+ 총 0개 + 0원 +
+
+
+ + + + + + + + + + + + +
상품명단가무게수량
데이터 없음
+
+
+
+ +
+
+
🗺️ 실시간 위치
+
X: 0.0, Y: 0.0
+
+
+ +
+
+ +
+
+
+ + + + \ No newline at end of file diff --git a/QT-Server/templates/inventory.html b/QT-Server/templates/inventory.html new file mode 100644 index 0000000..a709c07 --- /dev/null +++ b/QT-Server/templates/inventory.html @@ -0,0 +1,66 @@ + + + + + + QTCART 통합 관리 + + + + +
+ + +
+ +
+
+
+ 📦 재고 및 유통기한 관리 + +
+
+ + + + + + + + + + + +
ID상품명가격유통기한 ▼재고량 ▼
+
+
+ +
+
+
+
💰
+
이번 달 총 매출
+
0원
+
+
+
🧾
+
이번 달 거래 수
+
0건
+
+
+ +
+
📉 최근 30일 매출 추이
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/QTCart/.qmake.stash b/QTCart/.qmake.stash deleted file mode 100644 index 0d0b187..0000000 --- a/QTCart/.qmake.stash +++ /dev/null @@ -1,23 +0,0 @@ -QMAKE_CXX.QT_COMPILER_STDCXX = 201703L -QMAKE_CXX.QMAKE_GCC_MAJOR_VERSION = 11 -QMAKE_CXX.QMAKE_GCC_MINOR_VERSION = 4 -QMAKE_CXX.QMAKE_GCC_PATCH_VERSION = 0 -QMAKE_CXX.COMPILER_MACROS = \ - QT_COMPILER_STDCXX \ - QMAKE_GCC_MAJOR_VERSION \ - QMAKE_GCC_MINOR_VERSION \ - QMAKE_GCC_PATCH_VERSION -QMAKE_CXX.INCDIRS = \ - /usr/include/c++/11 \ - /usr/include/x86_64-linux-gnu/c++/11 \ - /usr/include/c++/11/backward \ - /usr/lib/gcc/x86_64-linux-gnu/11/include \ - /usr/local/include \ - /usr/include/x86_64-linux-gnu \ - /usr/include -QMAKE_CXX.LIBDIRS = \ - /usr/lib/gcc/x86_64-linux-gnu/11 \ - /usr/lib/x86_64-linux-gnu \ - /usr/lib \ - /lib/x86_64-linux-gnu \ - /lib diff --git a/QTCart/.qtcreator/QTCart.pro.user b/QTCart/.qtcreator/QTCart.pro.user deleted file mode 100644 index 47e9200..0000000 --- a/QTCart/.qtcreator/QTCart.pro.user +++ /dev/null @@ -1,346 +0,0 @@ - - - - - - EnvironmentId - {63b9673a-654d-4546-b58a-b51c28d2b22b} - - - ProjectExplorer.Project.ActiveTarget - 0 - - - ProjectExplorer.Project.EditorSettings - - true - true - true - - Cpp - - CppGlobal - - - - QmlJS - - QmlJSGlobal - - - 2 - UTF-8 - false - 4 - false - 0 - 80 - true - true - 1 - 0 - false - true - false - 2 - true - true - 0 - 8 - true - false - 1 - true - true - true - *.md, *.MD, Makefile - false - true - true - - - - ProjectExplorer.Project.PluginSettings - - - true - false - true - true - true - true - - false - - - 0 - true - - true - true - Builtin.DefaultTidyAndClazy - 2 - true - - - - true - - 0 - - - - ProjectExplorer.Project.Target.0 - - Desktop - true - Desktop - Desktop - {69eb4bf4-1a59-4f97-a489-e2827346197c} - 0 - 0 - 0 - - 0 - /home/ubuntu/QT/src/QTCart/build/Desktop-Debug - /home/ubuntu/QT/src/QTCart/build/Desktop-Debug - - - true - QtProjectManager.QMakeBuildStep - false - - - - true - Qt4ProjectManager.MakeStep - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - clean - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - false - - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 0 - 0 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - - false - ProjectExplorer.DefaultDeployConfiguration - - 1 - - true - true - 0 - true - - 2 - - false - -e cpu-cycles --call-graph dwarf,4096 -F 250 - - Qt4ProjectManager.Qt4RunConfiguration: - /home/ubuntu/QT/src/QTCart/QTCart.pro - false - - true - true - true - %{RunConfig:Executable:Path} - - 1 - 2 - - 1 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - - false - ProjectExplorer.DefaultDeployConfiguration - - 1 - - true - true - 0 - true - - 2 - - false - -e cpu-cycles --call-graph dwarf,4096 -F 250 - - Qt4ProjectManager.Qt4RunConfiguration: - /home/ubuntu/QT/src/QTCart/QTCart.pro - false - - true - true - true - %{RunConfig:Executable:Path} - - 1 - - - - ProjectExplorer.Project.Target.1 - - Desktop - true - Qt 6.8.3 - Qt 6.8.3 - {3ff0c7d5-10d9-474f-80e6-cba74e9bcfa2} - 0 - 0 - 0 - - 0 - /home/ubuntu/QT/src/QTCart/build/Qt_6_8_3-Debug - /home/ubuntu/QT/src/QTCart/build/Qt_6_8_3-Debug - - - true - QtProjectManager.QMakeBuildStep - false - - - - true - Qt4ProjectManager.MakeStep - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - clean - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - false - - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 0 - 0 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - - false - ProjectExplorer.DefaultDeployConfiguration - - 1 - - true - true - 0 - true - - 2 - - false - -e cpu-cycles --call-graph dwarf,4096 -F 250 - - ProjectExplorer.CustomExecutableRunConfiguration - - false - - true - true - %{RunConfig:Executable:Path} - - 1 - 2 - - 1 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - - false - ProjectExplorer.DefaultDeployConfiguration - - 1 - - true - true - 0 - true - - 2 - - false - -e cpu-cycles --call-graph dwarf,4096 -F 250 - - ProjectExplorer.CustomExecutableRunConfiguration - - false - - true - true - %{RunConfig:Executable:Path} - - 1 - - - - ProjectExplorer.Project.TargetCount - 2 - - - Version - 22 - - diff --git a/QTCart/Makefile b/QTCart/Makefile deleted file mode 100644 index 54a8955..0000000 --- a/QTCart/Makefile +++ /dev/null @@ -1,2270 +0,0 @@ -############################################################################# -# Makefile for building: QTCart -# Generated by qmake (3.1) (Qt 6.8.3) -# Project: QTCart.pro -# Template: app -# Command: /home/ubuntu/Qt/6.8.3/gcc_64/bin/qmake -o Makefile QTCart.pro -############################################################################# - -MAKEFILE = Makefile - -EQ = = - -####### Compiler, tools and options - -CC = gcc -CXX = g++ -DEFINES = -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -CFLAGS = -pipe -O2 -Wall -Wextra -fPIC -D_REENTRANT $(DEFINES) -CXXFLAGS = -pipe -O2 -std=gnu++1z -Wall -Wextra -fPIC -D_REENTRANT $(DEFINES) -INCPATH = -I. -I../../../Qt/6.8.3/gcc_64/include -I../../../Qt/6.8.3/gcc_64/include/QtWidgets -I../../../Qt/6.8.3/gcc_64/include/QtGui -I../../../Qt/6.8.3/gcc_64/include/QtCore -I. -I. -I../../../Qt/6.8.3/gcc_64/mkspecs/linux-g++ -QMAKE = /home/ubuntu/Qt/6.8.3/gcc_64/bin/qmake -DEL_FILE = rm -f -CHK_DIR_EXISTS= test -d -MKDIR = mkdir -p -COPY = cp -f -COPY_FILE = cp -f -COPY_DIR = cp -f -R -INSTALL_FILE = install -m 644 -p -INSTALL_PROGRAM = install -m 755 -p -INSTALL_DIR = cp -f -R -QINSTALL = /home/ubuntu/Qt/6.8.3/gcc_64/bin/qmake -install qinstall -QINSTALL_PROGRAM = /home/ubuntu/Qt/6.8.3/gcc_64/bin/qmake -install qinstall -exe -DEL_FILE = rm -f -SYMLINK = ln -f -s -DEL_DIR = rmdir -MOVE = mv -f -TAR = tar -cf -COMPRESS = gzip -9f -DISTNAME = QTCart1.0.0 -DISTDIR = /home/ubuntu/QT/src/QTCart/.tmp/QTCart1.0.0 -LINK = g++ -LFLAGS = -Wl,-O1 -Wl,-rpath,/home/ubuntu/Qt/6.8.3/gcc_64/lib -Wl,-rpath-link,/home/ubuntu/Qt/6.8.3/gcc_64/lib -LIBS = $(SUBLIBS) /home/ubuntu/Qt/6.8.3/gcc_64/lib/libQt6Widgets.so /home/ubuntu/Qt/6.8.3/gcc_64/lib/libQt6Gui.so /home/ubuntu/Qt/6.8.3/gcc_64/lib/libQt6Core.so -lpthread -lGL -AR = ar cqs -RANLIB = -SED = sed -STRIP = strip - -####### Output directory - -OBJECTS_DIR = ./ - -####### Files - -SOURCES = main.cpp \ - mainwidget.cpp \ - pagewelcome.cpp moc_mainwidget.cpp \ - moc_pagewelcome.cpp -OBJECTS = main.o \ - mainwidget.o \ - pagewelcome.o \ - moc_mainwidget.o \ - moc_pagewelcome.o -DIST = ../../../Qt/6.8.3/gcc_64/mkspecs/features/spec_pre.prf \ - ../../../Qt/6.8.3/gcc_64/mkspecs/common/unix.conf \ - ../../../Qt/6.8.3/gcc_64/mkspecs/common/linux.conf \ - ../../../Qt/6.8.3/gcc_64/mkspecs/common/sanitize.conf \ - ../../../Qt/6.8.3/gcc_64/mkspecs/common/gcc-base.conf \ - ../../../Qt/6.8.3/gcc_64/mkspecs/common/gcc-base-unix.conf \ - ../../../Qt/6.8.3/gcc_64/mkspecs/common/g++-base.conf \ - ../../../Qt/6.8.3/gcc_64/mkspecs/common/g++-unix.conf \ - ../../../Qt/6.8.3/gcc_64/mkspecs/qconfig.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_ext_libjpeg.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_ext_libpng.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_ext_openxr_loader.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_3danimation.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_3danimation_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_3dcore.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_3dcore_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_3dextras.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_3dextras_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_3dinput.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_3dinput_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_3dlogic.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_3dlogic_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_3dquick.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_3dquick_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_3dquickanimation.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_3dquickanimation_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_3dquickextras.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_3dquickextras_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_3dquickinput.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_3dquickinput_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_3dquickrender.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_3dquickrender_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_3dquickscene2d.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_3dquickscene2d_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_3dquickscene3d.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_3dquickscene3d_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_3drender.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_3drender_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_bluetooth.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_bluetooth_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_bodymovin_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_charts.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_charts_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_chartsqml.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_chartsqml_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_concurrent.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_concurrent_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_core.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_core5compat.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_core5compat_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_core_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_datavisualization.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_datavisualization_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_datavisualizationqml.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_datavisualizationqml_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_dbus.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_dbus_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_designer.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_designer_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_designercomponents_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_devicediscovery_support_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_eglfs_kms_gbm_support_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_example_icons_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_examples_asset_downloader_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_fb_support_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_ffmpegmediapluginimpl_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_graphs.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_graphs_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_graphswidgets.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_graphswidgets_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_grpc.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_grpc_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_grpcquick.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_grpcquick_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_gui.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_gui_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_harfbuzz_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_help.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_help_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_httpserver.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_httpserver_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_input_support_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_jpeg_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_jsonrpc_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_kms_support_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_labsanimation.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_labsanimation_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_labsfolderlistmodel.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_labsfolderlistmodel_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_labsplatform.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_labsplatform_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_labsqmlmodels.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_labsqmlmodels_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_labssettings.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_labssettings_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_labssharedimage.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_labssharedimage_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_labswavefrontmesh.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_labswavefrontmesh_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_languageserver_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_linguist.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_location.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_location_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_multimedia.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_multimedia_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_multimediaquick_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_multimediatestlibprivate_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_multimediawidgets.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_multimediawidgets_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_network.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_network_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_networkauth.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_networkauth_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_nfc.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_nfc_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_opengl.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_opengl_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_openglwidgets.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_openglwidgets_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_packetprotocol_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_png_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_positioning.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_positioning_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_positioningquick.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_positioningquick_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_printsupport.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_printsupport_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_protobuf.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_protobuf_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_protobufqtcoretypes.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_protobufqtcoretypes_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_protobufqtguitypes.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_protobufqtguitypes_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_protobufquick.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_protobufquick_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_protobufwellknowntypes.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_protobufwellknowntypes_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qdoccatch_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qdoccatchconversions_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qdoccatchgenerators_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qml.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qml_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qmlassetdownloader.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qmlassetdownloader_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qmlcompiler.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qmlcompiler_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qmlcore.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qmlcore_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qmldebug_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qmldom_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qmlintegration.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qmlintegration_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qmllocalstorage.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qmllocalstorage_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qmlls_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qmlmeta.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qmlmeta_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qmlmodels.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qmlmodels_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qmlnetwork.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qmlnetwork_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qmltest.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qmltest_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qmltoolingsettings_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qmltyperegistrar_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qmlworkerscript.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qmlworkerscript_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qmlxmllistmodel.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qmlxmllistmodel_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3d.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3d_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3dassetimport.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3dassetimport_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3dassetutils.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3dassetutils_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3deffects.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3deffects_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3dglslparser_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3dhelpers.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3dhelpers_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3dhelpersimpl.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3dhelpersimpl_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3diblbaker.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3diblbaker_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3dparticleeffects.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3dparticleeffects_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3dparticles.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3dparticles_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3dphysics.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3dphysics_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3dphysicshelpers.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3dphysicshelpers_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3druntimerender.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3druntimerender_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3dspatialaudio_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3dutils.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3dutils_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3dxr.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3dxr_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickcontrols2.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickcontrols2_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickcontrols2basic.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickcontrols2basic_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickcontrols2basicstyleimpl.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickcontrols2basicstyleimpl_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickcontrols2fluentwinui3styleimpl.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickcontrols2fluentwinui3styleimpl_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickcontrols2fusion.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickcontrols2fusion_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickcontrols2fusionstyleimpl.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickcontrols2fusionstyleimpl_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickcontrols2imagine.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickcontrols2imagine_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickcontrols2imaginestyleimpl.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickcontrols2imaginestyleimpl_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickcontrols2impl.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickcontrols2impl_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickcontrols2material.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickcontrols2material_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickcontrols2materialstyleimpl.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickcontrols2materialstyleimpl_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickcontrols2universal.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickcontrols2universal_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickcontrols2universalstyleimpl.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickcontrols2universalstyleimpl_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickcontrolstestutilsprivate_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickdialogs2.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickdialogs2_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickdialogs2quickimpl.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickdialogs2quickimpl_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickdialogs2utils.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickdialogs2utils_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickeffects_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quicklayouts.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quicklayouts_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickparticles_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickshapes_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quicktemplates2.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quicktemplates2_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quicktestutilsprivate_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quicktimeline.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quicktimeline_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quicktimelineblendtrees.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quicktimelineblendtrees_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickvectorimage.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickvectorimage_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickvectorimagegenerator_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickwidgets.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickwidgets_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_remoteobjects.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_remoteobjects_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_remoteobjectsqml.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_remoteobjectsqml_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_repparser.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_repparser_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_scxml.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_scxml_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_scxmlqml.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_scxmlqml_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_sensors.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_sensors_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_sensorsquick.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_sensorsquick_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_serialbus.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_serialbus_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_serialport.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_serialport_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_shadertools.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_shadertools_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_spatialaudio.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_spatialaudio_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_sql.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_sql_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_statemachine.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_statemachine_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_statemachineqml.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_statemachineqml_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_svg.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_svg_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_svgwidgets.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_svgwidgets_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_testinternals_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_testlib.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_testlib_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_texttospeech.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_texttospeech_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_tools_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_uiplugin.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_uitools.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_uitools_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_virtualkeyboard.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_virtualkeyboard_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_virtualkeyboardsettings.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_virtualkeyboardsettings_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_wayland_egl_client_hw_integration_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_wayland_egl_compositor_hw_integration_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_waylandclient.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_waylandclient_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_waylandcompositor.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_waylandcompositor_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_waylandcompositoriviapplication.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_waylandcompositoriviapplication_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_waylandcompositorpresentationtime.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_waylandcompositorpresentationtime_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_waylandcompositorwlshell.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_waylandcompositorwlshell_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_waylandcompositorxdgshell.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_waylandcompositorxdgshell_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_waylandglobal_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_webchannel.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_webchannel_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_webchannelquick.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_webchannelquick_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_webenginecore.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_webenginecore_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_webenginequick.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_webenginequick_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_webenginequickdelegatesqml.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_webenginequickdelegatesqml_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_webenginewidgets.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_webenginewidgets_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_websockets.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_websockets_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_webview.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_webview_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_webviewquick.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_webviewquick_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_widgets.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_widgets_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_wl_shell_integration_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_xml.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_xml_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/features/qt_functions.prf \ - ../../../Qt/6.8.3/gcc_64/mkspecs/features/qt_config.prf \ - ../../../Qt/6.8.3/gcc_64/mkspecs/linux-g++/qmake.conf \ - ../../../Qt/6.8.3/gcc_64/mkspecs/features/spec_post.prf \ - .qmake.stash \ - ../../../Qt/6.8.3/gcc_64/mkspecs/features/exclusive_builds.prf \ - ../../../Qt/6.8.3/gcc_64/mkspecs/features/toolchain.prf \ - ../../../Qt/6.8.3/gcc_64/mkspecs/features/default_pre.prf \ - ../../../Qt/6.8.3/gcc_64/mkspecs/features/resolve_config.prf \ - ../../../Qt/6.8.3/gcc_64/mkspecs/features/default_post.prf \ - ../../../Qt/6.8.3/gcc_64/mkspecs/features/warn_on.prf \ - ../../../Qt/6.8.3/gcc_64/mkspecs/features/permissions.prf \ - ../../../Qt/6.8.3/gcc_64/mkspecs/features/qt.prf \ - ../../../Qt/6.8.3/gcc_64/mkspecs/features/resources_functions.prf \ - ../../../Qt/6.8.3/gcc_64/mkspecs/features/resources.prf \ - ../../../Qt/6.8.3/gcc_64/mkspecs/features/moc.prf \ - ../../../Qt/6.8.3/gcc_64/mkspecs/features/unix/opengl.prf \ - ../../../Qt/6.8.3/gcc_64/mkspecs/features/uic.prf \ - ../../../Qt/6.8.3/gcc_64/mkspecs/features/unix/thread.prf \ - ../../../Qt/6.8.3/gcc_64/mkspecs/features/qmake_use.prf \ - ../../../Qt/6.8.3/gcc_64/mkspecs/features/file_copies.prf \ - ../../../Qt/6.8.3/gcc_64/mkspecs/features/testcase_targets.prf \ - ../../../Qt/6.8.3/gcc_64/mkspecs/features/exceptions.prf \ - ../../../Qt/6.8.3/gcc_64/mkspecs/features/yacc.prf \ - ../../../Qt/6.8.3/gcc_64/mkspecs/features/lex.prf \ - QTCart.pro mainwidget.h \ - pagewelcome.h main.cpp \ - mainwidget.cpp \ - pagewelcome.cpp -QMAKE_TARGET = QTCart -DESTDIR = -TARGET = QTCart - - -first: all -####### Build rules - -QTCart: ui_mainwidget.h ui_pagewelcome.h $(OBJECTS) - $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJCOMP) $(LIBS) - -Makefile: QTCart.pro ../../../Qt/6.8.3/gcc_64/mkspecs/linux-g++/qmake.conf ../../../Qt/6.8.3/gcc_64/mkspecs/features/spec_pre.prf \ - ../../../Qt/6.8.3/gcc_64/mkspecs/common/unix.conf \ - ../../../Qt/6.8.3/gcc_64/mkspecs/common/linux.conf \ - ../../../Qt/6.8.3/gcc_64/mkspecs/common/sanitize.conf \ - ../../../Qt/6.8.3/gcc_64/mkspecs/common/gcc-base.conf \ - ../../../Qt/6.8.3/gcc_64/mkspecs/common/gcc-base-unix.conf \ - ../../../Qt/6.8.3/gcc_64/mkspecs/common/g++-base.conf \ - ../../../Qt/6.8.3/gcc_64/mkspecs/common/g++-unix.conf \ - ../../../Qt/6.8.3/gcc_64/mkspecs/qconfig.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_ext_libjpeg.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_ext_libpng.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_ext_openxr_loader.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_3danimation.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_3danimation_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_3dcore.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_3dcore_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_3dextras.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_3dextras_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_3dinput.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_3dinput_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_3dlogic.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_3dlogic_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_3dquick.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_3dquick_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_3dquickanimation.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_3dquickanimation_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_3dquickextras.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_3dquickextras_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_3dquickinput.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_3dquickinput_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_3dquickrender.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_3dquickrender_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_3dquickscene2d.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_3dquickscene2d_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_3dquickscene3d.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_3dquickscene3d_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_3drender.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_3drender_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_bluetooth.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_bluetooth_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_bodymovin_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_charts.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_charts_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_chartsqml.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_chartsqml_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_concurrent.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_concurrent_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_core.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_core5compat.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_core5compat_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_core_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_datavisualization.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_datavisualization_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_datavisualizationqml.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_datavisualizationqml_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_dbus.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_dbus_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_designer.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_designer_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_designercomponents_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_devicediscovery_support_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_eglfs_kms_gbm_support_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_example_icons_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_examples_asset_downloader_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_fb_support_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_ffmpegmediapluginimpl_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_graphs.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_graphs_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_graphswidgets.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_graphswidgets_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_grpc.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_grpc_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_grpcquick.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_grpcquick_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_gui.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_gui_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_harfbuzz_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_help.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_help_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_httpserver.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_httpserver_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_input_support_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_jpeg_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_jsonrpc_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_kms_support_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_labsanimation.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_labsanimation_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_labsfolderlistmodel.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_labsfolderlistmodel_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_labsplatform.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_labsplatform_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_labsqmlmodels.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_labsqmlmodels_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_labssettings.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_labssettings_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_labssharedimage.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_labssharedimage_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_labswavefrontmesh.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_labswavefrontmesh_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_languageserver_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_linguist.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_location.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_location_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_multimedia.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_multimedia_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_multimediaquick_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_multimediatestlibprivate_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_multimediawidgets.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_multimediawidgets_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_network.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_network_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_networkauth.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_networkauth_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_nfc.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_nfc_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_opengl.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_opengl_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_openglwidgets.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_openglwidgets_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_packetprotocol_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_png_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_positioning.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_positioning_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_positioningquick.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_positioningquick_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_printsupport.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_printsupport_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_protobuf.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_protobuf_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_protobufqtcoretypes.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_protobufqtcoretypes_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_protobufqtguitypes.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_protobufqtguitypes_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_protobufquick.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_protobufquick_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_protobufwellknowntypes.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_protobufwellknowntypes_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qdoccatch_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qdoccatchconversions_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qdoccatchgenerators_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qml.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qml_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qmlassetdownloader.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qmlassetdownloader_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qmlcompiler.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qmlcompiler_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qmlcore.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qmlcore_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qmldebug_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qmldom_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qmlintegration.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qmlintegration_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qmllocalstorage.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qmllocalstorage_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qmlls_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qmlmeta.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qmlmeta_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qmlmodels.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qmlmodels_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qmlnetwork.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qmlnetwork_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qmltest.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qmltest_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qmltoolingsettings_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qmltyperegistrar_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qmlworkerscript.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qmlworkerscript_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qmlxmllistmodel.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qmlxmllistmodel_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3d.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3d_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3dassetimport.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3dassetimport_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3dassetutils.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3dassetutils_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3deffects.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3deffects_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3dglslparser_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3dhelpers.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3dhelpers_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3dhelpersimpl.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3dhelpersimpl_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3diblbaker.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3diblbaker_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3dparticleeffects.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3dparticleeffects_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3dparticles.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3dparticles_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3dphysics.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3dphysics_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3dphysicshelpers.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3dphysicshelpers_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3druntimerender.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3druntimerender_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3dspatialaudio_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3dutils.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3dutils_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3dxr.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3dxr_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickcontrols2.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickcontrols2_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickcontrols2basic.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickcontrols2basic_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickcontrols2basicstyleimpl.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickcontrols2basicstyleimpl_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickcontrols2fluentwinui3styleimpl.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickcontrols2fluentwinui3styleimpl_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickcontrols2fusion.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickcontrols2fusion_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickcontrols2fusionstyleimpl.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickcontrols2fusionstyleimpl_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickcontrols2imagine.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickcontrols2imagine_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickcontrols2imaginestyleimpl.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickcontrols2imaginestyleimpl_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickcontrols2impl.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickcontrols2impl_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickcontrols2material.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickcontrols2material_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickcontrols2materialstyleimpl.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickcontrols2materialstyleimpl_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickcontrols2universal.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickcontrols2universal_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickcontrols2universalstyleimpl.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickcontrols2universalstyleimpl_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickcontrolstestutilsprivate_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickdialogs2.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickdialogs2_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickdialogs2quickimpl.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickdialogs2quickimpl_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickdialogs2utils.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickdialogs2utils_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickeffects_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quicklayouts.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quicklayouts_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickparticles_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickshapes_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quicktemplates2.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quicktemplates2_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quicktestutilsprivate_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quicktimeline.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quicktimeline_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quicktimelineblendtrees.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quicktimelineblendtrees_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickvectorimage.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickvectorimage_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickvectorimagegenerator_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickwidgets.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickwidgets_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_remoteobjects.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_remoteobjects_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_remoteobjectsqml.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_remoteobjectsqml_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_repparser.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_repparser_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_scxml.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_scxml_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_scxmlqml.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_scxmlqml_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_sensors.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_sensors_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_sensorsquick.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_sensorsquick_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_serialbus.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_serialbus_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_serialport.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_serialport_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_shadertools.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_shadertools_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_spatialaudio.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_spatialaudio_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_sql.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_sql_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_statemachine.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_statemachine_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_statemachineqml.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_statemachineqml_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_svg.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_svg_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_svgwidgets.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_svgwidgets_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_testinternals_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_testlib.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_testlib_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_texttospeech.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_texttospeech_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_tools_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_uiplugin.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_uitools.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_uitools_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_virtualkeyboard.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_virtualkeyboard_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_virtualkeyboardsettings.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_virtualkeyboardsettings_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_wayland_egl_client_hw_integration_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_wayland_egl_compositor_hw_integration_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_waylandclient.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_waylandclient_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_waylandcompositor.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_waylandcompositor_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_waylandcompositoriviapplication.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_waylandcompositoriviapplication_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_waylandcompositorpresentationtime.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_waylandcompositorpresentationtime_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_waylandcompositorwlshell.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_waylandcompositorwlshell_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_waylandcompositorxdgshell.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_waylandcompositorxdgshell_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_waylandglobal_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_webchannel.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_webchannel_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_webchannelquick.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_webchannelquick_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_webenginecore.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_webenginecore_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_webenginequick.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_webenginequick_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_webenginequickdelegatesqml.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_webenginequickdelegatesqml_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_webenginewidgets.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_webenginewidgets_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_websockets.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_websockets_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_webview.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_webview_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_webviewquick.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_webviewquick_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_widgets.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_widgets_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_wl_shell_integration_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_xml.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_xml_private.pri \ - ../../../Qt/6.8.3/gcc_64/mkspecs/features/qt_functions.prf \ - ../../../Qt/6.8.3/gcc_64/mkspecs/features/qt_config.prf \ - ../../../Qt/6.8.3/gcc_64/mkspecs/linux-g++/qmake.conf \ - ../../../Qt/6.8.3/gcc_64/mkspecs/features/spec_post.prf \ - .qmake.stash \ - ../../../Qt/6.8.3/gcc_64/mkspecs/features/exclusive_builds.prf \ - ../../../Qt/6.8.3/gcc_64/mkspecs/features/toolchain.prf \ - ../../../Qt/6.8.3/gcc_64/mkspecs/features/default_pre.prf \ - ../../../Qt/6.8.3/gcc_64/mkspecs/features/resolve_config.prf \ - ../../../Qt/6.8.3/gcc_64/mkspecs/features/default_post.prf \ - ../../../Qt/6.8.3/gcc_64/mkspecs/features/warn_on.prf \ - ../../../Qt/6.8.3/gcc_64/mkspecs/features/permissions.prf \ - ../../../Qt/6.8.3/gcc_64/mkspecs/features/qt.prf \ - ../../../Qt/6.8.3/gcc_64/mkspecs/features/resources_functions.prf \ - ../../../Qt/6.8.3/gcc_64/mkspecs/features/resources.prf \ - ../../../Qt/6.8.3/gcc_64/mkspecs/features/moc.prf \ - ../../../Qt/6.8.3/gcc_64/mkspecs/features/unix/opengl.prf \ - ../../../Qt/6.8.3/gcc_64/mkspecs/features/uic.prf \ - ../../../Qt/6.8.3/gcc_64/mkspecs/features/unix/thread.prf \ - ../../../Qt/6.8.3/gcc_64/mkspecs/features/qmake_use.prf \ - ../../../Qt/6.8.3/gcc_64/mkspecs/features/file_copies.prf \ - ../../../Qt/6.8.3/gcc_64/mkspecs/features/testcase_targets.prf \ - ../../../Qt/6.8.3/gcc_64/mkspecs/features/exceptions.prf \ - ../../../Qt/6.8.3/gcc_64/mkspecs/features/yacc.prf \ - ../../../Qt/6.8.3/gcc_64/mkspecs/features/lex.prf \ - QTCart.pro \ - ../../../Qt/6.8.3/gcc_64/lib/libQt6Widgets.prl \ - ../../../Qt/6.8.3/gcc_64/lib/libQt6Gui.prl \ - ../../../Qt/6.8.3/gcc_64/lib/libQt6Core.prl - $(QMAKE) -o Makefile QTCart.pro -../../../Qt/6.8.3/gcc_64/mkspecs/features/spec_pre.prf: -../../../Qt/6.8.3/gcc_64/mkspecs/common/unix.conf: -../../../Qt/6.8.3/gcc_64/mkspecs/common/linux.conf: -../../../Qt/6.8.3/gcc_64/mkspecs/common/sanitize.conf: -../../../Qt/6.8.3/gcc_64/mkspecs/common/gcc-base.conf: -../../../Qt/6.8.3/gcc_64/mkspecs/common/gcc-base-unix.conf: -../../../Qt/6.8.3/gcc_64/mkspecs/common/g++-base.conf: -../../../Qt/6.8.3/gcc_64/mkspecs/common/g++-unix.conf: -../../../Qt/6.8.3/gcc_64/mkspecs/qconfig.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_ext_libjpeg.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_ext_libpng.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_ext_openxr_loader.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_3danimation.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_3danimation_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_3dcore.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_3dcore_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_3dextras.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_3dextras_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_3dinput.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_3dinput_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_3dlogic.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_3dlogic_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_3dquick.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_3dquick_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_3dquickanimation.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_3dquickanimation_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_3dquickextras.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_3dquickextras_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_3dquickinput.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_3dquickinput_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_3dquickrender.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_3dquickrender_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_3dquickscene2d.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_3dquickscene2d_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_3dquickscene3d.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_3dquickscene3d_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_3drender.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_3drender_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_bluetooth.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_bluetooth_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_bodymovin_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_charts.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_charts_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_chartsqml.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_chartsqml_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_concurrent.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_concurrent_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_core.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_core5compat.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_core5compat_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_core_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_datavisualization.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_datavisualization_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_datavisualizationqml.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_datavisualizationqml_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_dbus.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_dbus_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_designer.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_designer_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_designercomponents_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_devicediscovery_support_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_eglfs_kms_gbm_support_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_example_icons_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_examples_asset_downloader_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_fb_support_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_ffmpegmediapluginimpl_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_graphs.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_graphs_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_graphswidgets.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_graphswidgets_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_grpc.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_grpc_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_grpcquick.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_grpcquick_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_gui.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_gui_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_harfbuzz_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_help.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_help_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_httpserver.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_httpserver_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_input_support_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_jpeg_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_jsonrpc_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_kms_support_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_labsanimation.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_labsanimation_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_labsfolderlistmodel.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_labsfolderlistmodel_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_labsplatform.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_labsplatform_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_labsqmlmodels.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_labsqmlmodels_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_labssettings.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_labssettings_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_labssharedimage.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_labssharedimage_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_labswavefrontmesh.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_labswavefrontmesh_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_languageserver_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_linguist.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_location.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_location_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_multimedia.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_multimedia_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_multimediaquick_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_multimediatestlibprivate_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_multimediawidgets.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_multimediawidgets_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_network.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_network_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_networkauth.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_networkauth_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_nfc.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_nfc_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_opengl.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_opengl_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_openglwidgets.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_openglwidgets_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_packetprotocol_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_png_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_positioning.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_positioning_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_positioningquick.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_positioningquick_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_printsupport.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_printsupport_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_protobuf.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_protobuf_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_protobufqtcoretypes.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_protobufqtcoretypes_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_protobufqtguitypes.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_protobufqtguitypes_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_protobufquick.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_protobufquick_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_protobufwellknowntypes.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_protobufwellknowntypes_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qdoccatch_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qdoccatchconversions_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qdoccatchgenerators_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qml.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qml_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qmlassetdownloader.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qmlassetdownloader_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qmlcompiler.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qmlcompiler_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qmlcore.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qmlcore_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qmldebug_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qmldom_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qmlintegration.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qmlintegration_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qmllocalstorage.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qmllocalstorage_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qmlls_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qmlmeta.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qmlmeta_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qmlmodels.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qmlmodels_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qmlnetwork.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qmlnetwork_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qmltest.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qmltest_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qmltoolingsettings_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qmltyperegistrar_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qmlworkerscript.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qmlworkerscript_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qmlxmllistmodel.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_qmlxmllistmodel_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3d.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3d_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3dassetimport.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3dassetimport_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3dassetutils.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3dassetutils_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3deffects.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3deffects_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3dglslparser_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3dhelpers.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3dhelpers_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3dhelpersimpl.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3dhelpersimpl_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3diblbaker.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3diblbaker_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3dparticleeffects.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3dparticleeffects_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3dparticles.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3dparticles_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3dphysics.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3dphysics_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3dphysicshelpers.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3dphysicshelpers_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3druntimerender.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3druntimerender_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3dspatialaudio_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3dutils.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3dutils_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3dxr.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick3dxr_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quick_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickcontrols2.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickcontrols2_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickcontrols2basic.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickcontrols2basic_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickcontrols2basicstyleimpl.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickcontrols2basicstyleimpl_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickcontrols2fluentwinui3styleimpl.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickcontrols2fluentwinui3styleimpl_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickcontrols2fusion.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickcontrols2fusion_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickcontrols2fusionstyleimpl.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickcontrols2fusionstyleimpl_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickcontrols2imagine.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickcontrols2imagine_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickcontrols2imaginestyleimpl.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickcontrols2imaginestyleimpl_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickcontrols2impl.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickcontrols2impl_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickcontrols2material.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickcontrols2material_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickcontrols2materialstyleimpl.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickcontrols2materialstyleimpl_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickcontrols2universal.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickcontrols2universal_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickcontrols2universalstyleimpl.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickcontrols2universalstyleimpl_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickcontrolstestutilsprivate_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickdialogs2.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickdialogs2_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickdialogs2quickimpl.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickdialogs2quickimpl_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickdialogs2utils.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickdialogs2utils_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickeffects_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quicklayouts.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quicklayouts_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickparticles_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickshapes_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quicktemplates2.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quicktemplates2_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quicktestutilsprivate_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quicktimeline.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quicktimeline_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quicktimelineblendtrees.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quicktimelineblendtrees_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickvectorimage.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickvectorimage_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickvectorimagegenerator_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickwidgets.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_quickwidgets_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_remoteobjects.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_remoteobjects_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_remoteobjectsqml.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_remoteobjectsqml_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_repparser.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_repparser_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_scxml.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_scxml_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_scxmlqml.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_scxmlqml_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_sensors.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_sensors_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_sensorsquick.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_sensorsquick_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_serialbus.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_serialbus_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_serialport.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_serialport_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_shadertools.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_shadertools_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_spatialaudio.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_spatialaudio_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_sql.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_sql_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_statemachine.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_statemachine_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_statemachineqml.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_statemachineqml_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_svg.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_svg_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_svgwidgets.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_svgwidgets_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_testinternals_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_testlib.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_testlib_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_texttospeech.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_texttospeech_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_tools_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_uiplugin.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_uitools.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_uitools_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_virtualkeyboard.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_virtualkeyboard_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_virtualkeyboardsettings.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_virtualkeyboardsettings_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_wayland_egl_client_hw_integration_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_wayland_egl_compositor_hw_integration_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_waylandclient.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_waylandclient_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_waylandcompositor.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_waylandcompositor_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_waylandcompositoriviapplication.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_waylandcompositoriviapplication_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_waylandcompositorpresentationtime.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_waylandcompositorpresentationtime_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_waylandcompositorwlshell.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_waylandcompositorwlshell_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_waylandcompositorxdgshell.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_waylandcompositorxdgshell_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_waylandglobal_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_webchannel.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_webchannel_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_webchannelquick.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_webchannelquick_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_webenginecore.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_webenginecore_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_webenginequick.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_webenginequick_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_webenginequickdelegatesqml.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_webenginequickdelegatesqml_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_webenginewidgets.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_webenginewidgets_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_websockets.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_websockets_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_webview.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_webview_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_webviewquick.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_webviewquick_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_widgets.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_widgets_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_wl_shell_integration_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_xml.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/modules/qt_lib_xml_private.pri: -../../../Qt/6.8.3/gcc_64/mkspecs/features/qt_functions.prf: -../../../Qt/6.8.3/gcc_64/mkspecs/features/qt_config.prf: -../../../Qt/6.8.3/gcc_64/mkspecs/linux-g++/qmake.conf: -../../../Qt/6.8.3/gcc_64/mkspecs/features/spec_post.prf: -.qmake.stash: -../../../Qt/6.8.3/gcc_64/mkspecs/features/exclusive_builds.prf: -../../../Qt/6.8.3/gcc_64/mkspecs/features/toolchain.prf: -../../../Qt/6.8.3/gcc_64/mkspecs/features/default_pre.prf: -../../../Qt/6.8.3/gcc_64/mkspecs/features/resolve_config.prf: -../../../Qt/6.8.3/gcc_64/mkspecs/features/default_post.prf: -../../../Qt/6.8.3/gcc_64/mkspecs/features/warn_on.prf: -../../../Qt/6.8.3/gcc_64/mkspecs/features/permissions.prf: -../../../Qt/6.8.3/gcc_64/mkspecs/features/qt.prf: -../../../Qt/6.8.3/gcc_64/mkspecs/features/resources_functions.prf: -../../../Qt/6.8.3/gcc_64/mkspecs/features/resources.prf: -../../../Qt/6.8.3/gcc_64/mkspecs/features/moc.prf: -../../../Qt/6.8.3/gcc_64/mkspecs/features/unix/opengl.prf: -../../../Qt/6.8.3/gcc_64/mkspecs/features/uic.prf: -../../../Qt/6.8.3/gcc_64/mkspecs/features/unix/thread.prf: -../../../Qt/6.8.3/gcc_64/mkspecs/features/qmake_use.prf: -../../../Qt/6.8.3/gcc_64/mkspecs/features/file_copies.prf: -../../../Qt/6.8.3/gcc_64/mkspecs/features/testcase_targets.prf: -../../../Qt/6.8.3/gcc_64/mkspecs/features/exceptions.prf: -../../../Qt/6.8.3/gcc_64/mkspecs/features/yacc.prf: -../../../Qt/6.8.3/gcc_64/mkspecs/features/lex.prf: -QTCart.pro: -../../../Qt/6.8.3/gcc_64/lib/libQt6Widgets.prl: -../../../Qt/6.8.3/gcc_64/lib/libQt6Gui.prl: -../../../Qt/6.8.3/gcc_64/lib/libQt6Core.prl: -qmake: FORCE - @$(QMAKE) -o Makefile QTCart.pro - -qmake_all: FORCE - - -all: Makefile QTCart - -dist: distdir FORCE - (cd `dirname $(DISTDIR)` && $(TAR) $(DISTNAME).tar $(DISTNAME) && $(COMPRESS) $(DISTNAME).tar) && $(MOVE) `dirname $(DISTDIR)`/$(DISTNAME).tar.gz . && $(DEL_FILE) -r $(DISTDIR) - -distdir: FORCE - @test -d $(DISTDIR) || mkdir -p $(DISTDIR) - $(COPY_FILE) --parents $(DIST) $(DISTDIR)/ - $(COPY_FILE) --parents ../../../Qt/6.8.3/gcc_64/mkspecs/features/data/dummy.cpp $(DISTDIR)/ - $(COPY_FILE) --parents mainwidget.h pagewelcome.h $(DISTDIR)/ - $(COPY_FILE) --parents main.cpp mainwidget.cpp pagewelcome.cpp $(DISTDIR)/ - $(COPY_FILE) --parents mainwidget.ui pagewelcome.ui $(DISTDIR)/ - - -clean: compiler_clean - -$(DEL_FILE) $(OBJECTS) - -$(DEL_FILE) *~ core *.core - - -distclean: clean - -$(DEL_FILE) $(TARGET) - -$(DEL_FILE) .qmake.stash - -$(DEL_FILE) Makefile - - -####### Sub-libraries - -mocclean: compiler_moc_header_clean compiler_moc_objc_header_clean compiler_moc_source_clean - -mocables: compiler_moc_header_make_all compiler_moc_objc_header_make_all compiler_moc_source_make_all - -check: first - -benchmark: first - -compiler_rcc_make_all: -compiler_rcc_clean: -compiler_moc_predefs_make_all: moc_predefs.h -compiler_moc_predefs_clean: - -$(DEL_FILE) moc_predefs.h -moc_predefs.h: ../../../Qt/6.8.3/gcc_64/mkspecs/features/data/dummy.cpp - g++ -pipe -O2 -std=gnu++1z -Wall -Wextra -fPIC -dM -E -o moc_predefs.h ../../../Qt/6.8.3/gcc_64/mkspecs/features/data/dummy.cpp - -compiler_moc_header_make_all: moc_mainwidget.cpp moc_pagewelcome.cpp -compiler_moc_header_clean: - -$(DEL_FILE) moc_mainwidget.cpp moc_pagewelcome.cpp -moc_mainwidget.cpp: mainwidget.h \ - ../../../Qt/6.8.3/gcc_64/include/QtWidgets/QWidget \ - ../../../Qt/6.8.3/gcc_64/include/QtWidgets/qwidget.h \ - ../../../Qt/6.8.3/gcc_64/include/QtWidgets/qtwidgetsglobal.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qtguiglobal.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qglobal.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtversionchecks.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtconfiginclude.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qconfig.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtcore-config.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtconfigmacros.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtdeprecationdefinitions.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtcoreexports.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qcompilerdetection.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qprocessordetection.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qsystemdetection.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtdeprecationmarkers.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtclasshelpermacros.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtpreprocessorsupport.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qassert.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtnoop.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtypes.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtversion.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtypeinfo.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qcontainerfwd.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qsysinfo.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qlogging.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qflags.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qcompare_impl.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qatomic.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qbasicatomic.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qatomic_cxx11.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qgenericatomic.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qyieldcpu.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qconstructormacros.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qdarwinhelpers.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qexceptionhandling.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qforeach.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qttypetraits.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qfunctionpointer.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qglobalstatic.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qmalloc.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qminmax.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qnumeric.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qoverload.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qswap.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtenvironmentvariables.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtresource.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qttranslation.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qversiontagging.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qtgui-config.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qtguiexports.h \ - ../../../Qt/6.8.3/gcc_64/include/QtWidgets/qtwidgets-config.h \ - ../../../Qt/6.8.3/gcc_64/include/QtWidgets/qtwidgetsexports.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qwindowdefs.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qobjectdefs.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qnamespace.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qcompare.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qcomparehelpers.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/q20type_traits.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtmetamacros.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qobjectdefs_impl.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qfunctionaltools_impl.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qobject.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qstring.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qchar.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qstringview.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qbytearray.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qrefcount.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qarraydata.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qpair.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qarraydatapointer.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qarraydataops.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qcontainertools_impl.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qxptype_traits.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/q20functional.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/q20memory.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qbytearrayalgorithms.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qbytearrayview.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qstringfwd.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qstringliteral.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qstringalgorithms.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qlatin1stringview.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qanystringview.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qutf8stringview.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qstringtokenizer.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qstringbuilder.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qstringconverter.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qstringconverter_base.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qlist.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qhashfunctions.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qiterator.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qbytearraylist.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qstringlist.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qalgorithms.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qstringmatcher.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qcoreevent.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qscopedpointer.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qmetatype.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qdatastream.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qiodevicebase.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qfloat16.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qmath.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qiterable.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qmetacontainer.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qcontainerinfo.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtaggedpointer.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qscopeguard.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qobject_impl.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qbindingstorage.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qmargins.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/q23utility.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/q20utility.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qaction.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qkeysequence.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qicon.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qsize.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qpixmap.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qpaintdevice.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qrect.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qpoint.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qcolor.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qrgb.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qrgba64.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qshareddata.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qimage.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qpixelformat.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qtransform.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qpolygon.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qregion.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qspan.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/q20iterator.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qline.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qvariant.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qdebug.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtextstream.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qcontiguouscache.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qsharedpointer.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qsharedpointer_impl.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qmap.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qshareddata_impl.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qset.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qhash.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qvarlengtharray.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qpalette.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qbrush.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qfont.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qendian.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qfontmetrics.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qfontinfo.h \ - ../../../Qt/6.8.3/gcc_64/include/QtWidgets/qsizepolicy.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qcursor.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qbitmap.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qevent.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qiodevice.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qurl.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qeventpoint.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qvector2d.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qvectornd.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qpointingdevice.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qinputdevice.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qscreen.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/QList \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/QObject \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/QRect \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/QSize \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/QSizeF \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/QTransform \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qnativeinterface.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qscreen_platform.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qguiapplication.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qcoreapplication.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qdeadlinetimer.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qelapsedtimer.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qeventloop.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qcoreapplication_platform.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qfuture.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qfutureinterface.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qmutex.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtsan_impl.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qresultstore.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qfuture_impl.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qthreadpool.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qthread.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qrunnable.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qexception.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qpromise.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qinputmethod.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qlocale.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qguiapplication_platform.h \ - pagewelcome.h \ - moc_predefs.h \ - ../../../Qt/6.8.3/gcc_64/libexec/moc - /home/ubuntu/Qt/6.8.3/gcc_64/libexec/moc $(DEFINES) --include /home/ubuntu/QT/src/QTCart/moc_predefs.h -I/home/ubuntu/Qt/6.8.3/gcc_64/mkspecs/linux-g++ -I/home/ubuntu/QT/src/QTCart -I/home/ubuntu/Qt/6.8.3/gcc_64/include -I/home/ubuntu/Qt/6.8.3/gcc_64/include/QtWidgets -I/home/ubuntu/Qt/6.8.3/gcc_64/include/QtGui -I/home/ubuntu/Qt/6.8.3/gcc_64/include/QtCore -I/usr/include/c++/11 -I/usr/include/x86_64-linux-gnu/c++/11 -I/usr/include/c++/11/backward -I/usr/lib/gcc/x86_64-linux-gnu/11/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include mainwidget.h -o moc_mainwidget.cpp - -moc_pagewelcome.cpp: pagewelcome.h \ - ../../../Qt/6.8.3/gcc_64/include/QtWidgets/QWidget \ - ../../../Qt/6.8.3/gcc_64/include/QtWidgets/qwidget.h \ - ../../../Qt/6.8.3/gcc_64/include/QtWidgets/qtwidgetsglobal.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qtguiglobal.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qglobal.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtversionchecks.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtconfiginclude.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qconfig.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtcore-config.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtconfigmacros.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtdeprecationdefinitions.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtcoreexports.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qcompilerdetection.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qprocessordetection.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qsystemdetection.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtdeprecationmarkers.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtclasshelpermacros.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtpreprocessorsupport.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qassert.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtnoop.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtypes.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtversion.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtypeinfo.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qcontainerfwd.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qsysinfo.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qlogging.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qflags.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qcompare_impl.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qatomic.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qbasicatomic.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qatomic_cxx11.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qgenericatomic.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qyieldcpu.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qconstructormacros.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qdarwinhelpers.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qexceptionhandling.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qforeach.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qttypetraits.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qfunctionpointer.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qglobalstatic.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qmalloc.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qminmax.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qnumeric.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qoverload.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qswap.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtenvironmentvariables.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtresource.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qttranslation.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qversiontagging.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qtgui-config.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qtguiexports.h \ - ../../../Qt/6.8.3/gcc_64/include/QtWidgets/qtwidgets-config.h \ - ../../../Qt/6.8.3/gcc_64/include/QtWidgets/qtwidgetsexports.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qwindowdefs.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qobjectdefs.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qnamespace.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qcompare.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qcomparehelpers.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/q20type_traits.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtmetamacros.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qobjectdefs_impl.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qfunctionaltools_impl.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qobject.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qstring.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qchar.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qstringview.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qbytearray.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qrefcount.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qarraydata.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qpair.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qarraydatapointer.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qarraydataops.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qcontainertools_impl.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qxptype_traits.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/q20functional.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/q20memory.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qbytearrayalgorithms.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qbytearrayview.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qstringfwd.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qstringliteral.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qstringalgorithms.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qlatin1stringview.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qanystringview.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qutf8stringview.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qstringtokenizer.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qstringbuilder.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qstringconverter.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qstringconverter_base.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qlist.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qhashfunctions.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qiterator.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qbytearraylist.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qstringlist.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qalgorithms.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qstringmatcher.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qcoreevent.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qscopedpointer.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qmetatype.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qdatastream.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qiodevicebase.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qfloat16.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qmath.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qiterable.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qmetacontainer.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qcontainerinfo.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtaggedpointer.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qscopeguard.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qobject_impl.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qbindingstorage.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qmargins.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/q23utility.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/q20utility.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qaction.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qkeysequence.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qicon.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qsize.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qpixmap.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qpaintdevice.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qrect.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qpoint.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qcolor.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qrgb.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qrgba64.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qshareddata.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qimage.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qpixelformat.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qtransform.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qpolygon.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qregion.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qspan.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/q20iterator.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qline.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qvariant.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qdebug.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtextstream.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qcontiguouscache.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qsharedpointer.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qsharedpointer_impl.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qmap.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qshareddata_impl.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qset.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qhash.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qvarlengtharray.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qpalette.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qbrush.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qfont.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qendian.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qfontmetrics.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qfontinfo.h \ - ../../../Qt/6.8.3/gcc_64/include/QtWidgets/qsizepolicy.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qcursor.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qbitmap.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qevent.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qiodevice.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qurl.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qeventpoint.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qvector2d.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qvectornd.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qpointingdevice.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qinputdevice.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qscreen.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/QList \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/QObject \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/QRect \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/QSize \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/QSizeF \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/QTransform \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qnativeinterface.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qscreen_platform.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qguiapplication.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qcoreapplication.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qdeadlinetimer.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qelapsedtimer.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qeventloop.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qcoreapplication_platform.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qfuture.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qfutureinterface.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qmutex.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtsan_impl.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qresultstore.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qfuture_impl.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qthreadpool.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qthread.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qrunnable.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qexception.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qpromise.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qinputmethod.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qlocale.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qguiapplication_platform.h \ - moc_predefs.h \ - ../../../Qt/6.8.3/gcc_64/libexec/moc - /home/ubuntu/Qt/6.8.3/gcc_64/libexec/moc $(DEFINES) --include /home/ubuntu/QT/src/QTCart/moc_predefs.h -I/home/ubuntu/Qt/6.8.3/gcc_64/mkspecs/linux-g++ -I/home/ubuntu/QT/src/QTCart -I/home/ubuntu/Qt/6.8.3/gcc_64/include -I/home/ubuntu/Qt/6.8.3/gcc_64/include/QtWidgets -I/home/ubuntu/Qt/6.8.3/gcc_64/include/QtGui -I/home/ubuntu/Qt/6.8.3/gcc_64/include/QtCore -I/usr/include/c++/11 -I/usr/include/x86_64-linux-gnu/c++/11 -I/usr/include/c++/11/backward -I/usr/lib/gcc/x86_64-linux-gnu/11/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include pagewelcome.h -o moc_pagewelcome.cpp - -compiler_moc_objc_header_make_all: -compiler_moc_objc_header_clean: -compiler_moc_source_make_all: -compiler_moc_source_clean: -compiler_uic_make_all: ui_mainwidget.h ui_pagewelcome.h -compiler_uic_clean: - -$(DEL_FILE) ui_mainwidget.h ui_pagewelcome.h -ui_mainwidget.h: mainwidget.ui \ - ../../../Qt/6.8.3/gcc_64/libexec/uic - /home/ubuntu/Qt/6.8.3/gcc_64/libexec/uic mainwidget.ui -o ui_mainwidget.h - -ui_pagewelcome.h: pagewelcome.ui \ - ../../../Qt/6.8.3/gcc_64/libexec/uic - /home/ubuntu/Qt/6.8.3/gcc_64/libexec/uic pagewelcome.ui -o ui_pagewelcome.h - -compiler_yacc_decl_make_all: -compiler_yacc_decl_clean: -compiler_yacc_impl_make_all: -compiler_yacc_impl_clean: -compiler_lex_make_all: -compiler_lex_clean: -compiler_clean: compiler_moc_predefs_clean compiler_moc_header_clean compiler_uic_clean - -####### Compile - -main.o: main.cpp mainwidget.h \ - ../../../Qt/6.8.3/gcc_64/include/QtWidgets/QWidget \ - ../../../Qt/6.8.3/gcc_64/include/QtWidgets/qwidget.h \ - ../../../Qt/6.8.3/gcc_64/include/QtWidgets/qtwidgetsglobal.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qtguiglobal.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qglobal.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtversionchecks.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtconfiginclude.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qconfig.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtcore-config.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtconfigmacros.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtdeprecationdefinitions.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtcoreexports.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qcompilerdetection.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qprocessordetection.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qsystemdetection.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtdeprecationmarkers.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtclasshelpermacros.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtpreprocessorsupport.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qassert.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtnoop.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtypes.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtversion.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtypeinfo.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qcontainerfwd.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qsysinfo.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qlogging.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qflags.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qcompare_impl.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qatomic.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qbasicatomic.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qatomic_cxx11.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qgenericatomic.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qyieldcpu.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qconstructormacros.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qdarwinhelpers.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qexceptionhandling.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qforeach.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qttypetraits.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qfunctionpointer.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qglobalstatic.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qmalloc.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qminmax.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qnumeric.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qoverload.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qswap.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtenvironmentvariables.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtresource.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qttranslation.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qversiontagging.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qtgui-config.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qtguiexports.h \ - ../../../Qt/6.8.3/gcc_64/include/QtWidgets/qtwidgets-config.h \ - ../../../Qt/6.8.3/gcc_64/include/QtWidgets/qtwidgetsexports.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qwindowdefs.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qobjectdefs.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qnamespace.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qcompare.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qcomparehelpers.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/q20type_traits.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtmetamacros.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qobjectdefs_impl.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qfunctionaltools_impl.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qobject.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qstring.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qchar.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qstringview.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qbytearray.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qrefcount.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qarraydata.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qpair.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qarraydatapointer.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qarraydataops.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qcontainertools_impl.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qxptype_traits.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/q20functional.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/q20memory.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qbytearrayalgorithms.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qbytearrayview.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qstringfwd.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qstringliteral.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qstringalgorithms.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qlatin1stringview.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qanystringview.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qutf8stringview.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qstringtokenizer.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qstringbuilder.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qstringconverter.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qstringconverter_base.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qlist.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qhashfunctions.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qiterator.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qbytearraylist.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qstringlist.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qalgorithms.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qstringmatcher.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qcoreevent.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qscopedpointer.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qmetatype.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qdatastream.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qiodevicebase.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qfloat16.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qmath.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qiterable.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qmetacontainer.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qcontainerinfo.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtaggedpointer.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qscopeguard.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qobject_impl.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qbindingstorage.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qmargins.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/q23utility.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/q20utility.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qaction.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qkeysequence.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qicon.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qsize.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qpixmap.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qpaintdevice.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qrect.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qpoint.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qcolor.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qrgb.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qrgba64.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qshareddata.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qimage.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qpixelformat.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qtransform.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qpolygon.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qregion.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qspan.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/q20iterator.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qline.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qvariant.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qdebug.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtextstream.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qcontiguouscache.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qsharedpointer.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qsharedpointer_impl.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qmap.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qshareddata_impl.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qset.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qhash.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qvarlengtharray.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qpalette.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qbrush.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qfont.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qendian.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qfontmetrics.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qfontinfo.h \ - ../../../Qt/6.8.3/gcc_64/include/QtWidgets/qsizepolicy.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qcursor.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qbitmap.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qevent.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qiodevice.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qurl.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qeventpoint.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qvector2d.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qvectornd.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qpointingdevice.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qinputdevice.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qscreen.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/QList \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/QObject \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/QRect \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/QSize \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/QSizeF \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/QTransform \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qnativeinterface.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qscreen_platform.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qguiapplication.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qcoreapplication.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qdeadlinetimer.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qelapsedtimer.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qeventloop.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qcoreapplication_platform.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qfuture.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qfutureinterface.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qmutex.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtsan_impl.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qresultstore.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qfuture_impl.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qthreadpool.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qthread.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qrunnable.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qexception.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qpromise.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qinputmethod.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qlocale.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qguiapplication_platform.h \ - pagewelcome.h \ - ../../../Qt/6.8.3/gcc_64/include/QtWidgets/QApplication \ - ../../../Qt/6.8.3/gcc_64/include/QtWidgets/qapplication.h - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o main.o main.cpp - -mainwidget.o: mainwidget.cpp mainwidget.h \ - ../../../Qt/6.8.3/gcc_64/include/QtWidgets/QWidget \ - ../../../Qt/6.8.3/gcc_64/include/QtWidgets/qwidget.h \ - ../../../Qt/6.8.3/gcc_64/include/QtWidgets/qtwidgetsglobal.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qtguiglobal.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qglobal.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtversionchecks.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtconfiginclude.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qconfig.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtcore-config.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtconfigmacros.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtdeprecationdefinitions.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtcoreexports.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qcompilerdetection.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qprocessordetection.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qsystemdetection.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtdeprecationmarkers.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtclasshelpermacros.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtpreprocessorsupport.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qassert.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtnoop.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtypes.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtversion.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtypeinfo.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qcontainerfwd.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qsysinfo.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qlogging.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qflags.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qcompare_impl.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qatomic.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qbasicatomic.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qatomic_cxx11.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qgenericatomic.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qyieldcpu.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qconstructormacros.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qdarwinhelpers.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qexceptionhandling.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qforeach.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qttypetraits.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qfunctionpointer.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qglobalstatic.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qmalloc.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qminmax.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qnumeric.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qoverload.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qswap.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtenvironmentvariables.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtresource.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qttranslation.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qversiontagging.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qtgui-config.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qtguiexports.h \ - ../../../Qt/6.8.3/gcc_64/include/QtWidgets/qtwidgets-config.h \ - ../../../Qt/6.8.3/gcc_64/include/QtWidgets/qtwidgetsexports.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qwindowdefs.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qobjectdefs.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qnamespace.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qcompare.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qcomparehelpers.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/q20type_traits.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtmetamacros.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qobjectdefs_impl.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qfunctionaltools_impl.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qobject.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qstring.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qchar.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qstringview.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qbytearray.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qrefcount.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qarraydata.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qpair.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qarraydatapointer.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qarraydataops.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qcontainertools_impl.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qxptype_traits.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/q20functional.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/q20memory.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qbytearrayalgorithms.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qbytearrayview.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qstringfwd.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qstringliteral.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qstringalgorithms.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qlatin1stringview.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qanystringview.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qutf8stringview.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qstringtokenizer.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qstringbuilder.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qstringconverter.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qstringconverter_base.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qlist.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qhashfunctions.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qiterator.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qbytearraylist.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qstringlist.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qalgorithms.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qstringmatcher.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qcoreevent.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qscopedpointer.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qmetatype.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qdatastream.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qiodevicebase.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qfloat16.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qmath.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qiterable.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qmetacontainer.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qcontainerinfo.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtaggedpointer.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qscopeguard.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qobject_impl.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qbindingstorage.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qmargins.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/q23utility.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/q20utility.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qaction.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qkeysequence.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qicon.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qsize.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qpixmap.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qpaintdevice.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qrect.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qpoint.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qcolor.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qrgb.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qrgba64.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qshareddata.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qimage.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qpixelformat.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qtransform.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qpolygon.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qregion.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qspan.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/q20iterator.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qline.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qvariant.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qdebug.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtextstream.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qcontiguouscache.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qsharedpointer.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qsharedpointer_impl.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qmap.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qshareddata_impl.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qset.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qhash.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qvarlengtharray.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qpalette.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qbrush.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qfont.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qendian.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qfontmetrics.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qfontinfo.h \ - ../../../Qt/6.8.3/gcc_64/include/QtWidgets/qsizepolicy.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qcursor.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qbitmap.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qevent.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qiodevice.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qurl.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qeventpoint.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qvector2d.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qvectornd.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qpointingdevice.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qinputdevice.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qscreen.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/QList \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/QObject \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/QRect \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/QSize \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/QSizeF \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/QTransform \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qnativeinterface.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qscreen_platform.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qguiapplication.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qcoreapplication.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qdeadlinetimer.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qelapsedtimer.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qeventloop.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qcoreapplication_platform.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qfuture.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qfutureinterface.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qmutex.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtsan_impl.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qresultstore.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qfuture_impl.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qthreadpool.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qthread.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qrunnable.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qexception.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qpromise.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qinputmethod.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qlocale.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qguiapplication_platform.h \ - pagewelcome.h \ - ui_mainwidget.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/QVariant \ - ../../../Qt/6.8.3/gcc_64/include/QtWidgets/QApplication \ - ../../../Qt/6.8.3/gcc_64/include/QtWidgets/qapplication.h \ - ../../../Qt/6.8.3/gcc_64/include/QtWidgets/QStackedWidget \ - ../../../Qt/6.8.3/gcc_64/include/QtWidgets/qstackedwidget.h \ - ../../../Qt/6.8.3/gcc_64/include/QtWidgets/qframe.h - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o mainwidget.o mainwidget.cpp - -pagewelcome.o: pagewelcome.cpp pagewelcome.h \ - ../../../Qt/6.8.3/gcc_64/include/QtWidgets/QWidget \ - ../../../Qt/6.8.3/gcc_64/include/QtWidgets/qwidget.h \ - ../../../Qt/6.8.3/gcc_64/include/QtWidgets/qtwidgetsglobal.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qtguiglobal.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qglobal.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtversionchecks.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtconfiginclude.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qconfig.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtcore-config.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtconfigmacros.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtdeprecationdefinitions.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtcoreexports.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qcompilerdetection.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qprocessordetection.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qsystemdetection.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtdeprecationmarkers.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtclasshelpermacros.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtpreprocessorsupport.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qassert.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtnoop.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtypes.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtversion.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtypeinfo.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qcontainerfwd.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qsysinfo.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qlogging.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qflags.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qcompare_impl.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qatomic.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qbasicatomic.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qatomic_cxx11.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qgenericatomic.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qyieldcpu.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qconstructormacros.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qdarwinhelpers.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qexceptionhandling.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qforeach.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qttypetraits.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qfunctionpointer.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qglobalstatic.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qmalloc.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qminmax.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qnumeric.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qoverload.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qswap.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtenvironmentvariables.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtresource.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qttranslation.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qversiontagging.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qtgui-config.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qtguiexports.h \ - ../../../Qt/6.8.3/gcc_64/include/QtWidgets/qtwidgets-config.h \ - ../../../Qt/6.8.3/gcc_64/include/QtWidgets/qtwidgetsexports.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qwindowdefs.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qobjectdefs.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qnamespace.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qcompare.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qcomparehelpers.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/q20type_traits.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtmetamacros.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qobjectdefs_impl.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qfunctionaltools_impl.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qobject.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qstring.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qchar.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qstringview.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qbytearray.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qrefcount.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qarraydata.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qpair.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qarraydatapointer.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qarraydataops.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qcontainertools_impl.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qxptype_traits.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/q20functional.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/q20memory.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qbytearrayalgorithms.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qbytearrayview.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qstringfwd.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qstringliteral.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qstringalgorithms.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qlatin1stringview.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qanystringview.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qutf8stringview.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qstringtokenizer.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qstringbuilder.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qstringconverter.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qstringconverter_base.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qlist.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qhashfunctions.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qiterator.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qbytearraylist.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qstringlist.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qalgorithms.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qstringmatcher.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qcoreevent.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qscopedpointer.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qmetatype.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qdatastream.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qiodevicebase.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qfloat16.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qmath.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qiterable.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qmetacontainer.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qcontainerinfo.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtaggedpointer.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qscopeguard.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qobject_impl.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qbindingstorage.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qmargins.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/q23utility.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/q20utility.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qaction.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qkeysequence.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qicon.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qsize.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qpixmap.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qpaintdevice.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qrect.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qpoint.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qcolor.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qrgb.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qrgba64.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qshareddata.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qimage.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qpixelformat.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qtransform.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qpolygon.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qregion.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qspan.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/q20iterator.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qline.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qvariant.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qdebug.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtextstream.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qcontiguouscache.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qsharedpointer.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qsharedpointer_impl.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qmap.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qshareddata_impl.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qset.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qhash.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qvarlengtharray.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qpalette.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qbrush.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qfont.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qendian.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qfontmetrics.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qfontinfo.h \ - ../../../Qt/6.8.3/gcc_64/include/QtWidgets/qsizepolicy.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qcursor.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qbitmap.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qevent.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qiodevice.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qurl.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qeventpoint.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qvector2d.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qvectornd.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qpointingdevice.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qinputdevice.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qscreen.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/QList \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/QObject \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/QRect \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/QSize \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/QSizeF \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/QTransform \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qnativeinterface.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qscreen_platform.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qguiapplication.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qcoreapplication.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qdeadlinetimer.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qelapsedtimer.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qeventloop.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qcoreapplication_platform.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qfuture.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qfutureinterface.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qmutex.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qtsan_impl.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qresultstore.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qfuture_impl.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qthreadpool.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qthread.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qrunnable.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qexception.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qpromise.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qinputmethod.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/qlocale.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qguiapplication_platform.h \ - ui_pagewelcome.h \ - ../../../Qt/6.8.3/gcc_64/include/QtCore/QVariant \ - ../../../Qt/6.8.3/gcc_64/include/QtWidgets/QApplication \ - ../../../Qt/6.8.3/gcc_64/include/QtWidgets/qapplication.h \ - ../../../Qt/6.8.3/gcc_64/include/QtWidgets/QLabel \ - ../../../Qt/6.8.3/gcc_64/include/QtWidgets/qlabel.h \ - ../../../Qt/6.8.3/gcc_64/include/QtWidgets/qframe.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qpicture.h \ - ../../../Qt/6.8.3/gcc_64/include/QtGui/qtextdocument.h \ - ../../../Qt/6.8.3/gcc_64/include/QtWidgets/QPushButton \ - ../../../Qt/6.8.3/gcc_64/include/QtWidgets/qpushbutton.h \ - ../../../Qt/6.8.3/gcc_64/include/QtWidgets/qabstractbutton.h \ - ../../../Qt/6.8.3/gcc_64/include/QtWidgets/QSpacerItem \ - ../../../Qt/6.8.3/gcc_64/include/QtWidgets/qlayoutitem.h \ - ../../../Qt/6.8.3/gcc_64/include/QtWidgets/QVBoxLayout \ - ../../../Qt/6.8.3/gcc_64/include/QtWidgets/qboxlayout.h \ - ../../../Qt/6.8.3/gcc_64/include/QtWidgets/qlayout.h \ - ../../../Qt/6.8.3/gcc_64/include/QtWidgets/qgridlayout.h - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o pagewelcome.o pagewelcome.cpp - -moc_mainwidget.o: moc_mainwidget.cpp - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_mainwidget.o moc_mainwidget.cpp - -moc_pagewelcome.o: moc_pagewelcome.cpp - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_pagewelcome.o moc_pagewelcome.cpp - -####### Install - -install_target: first FORCE - @test -d $(INSTALL_ROOT)/opt/QTCart/bin || mkdir -p $(INSTALL_ROOT)/opt/QTCart/bin - $(QINSTALL_PROGRAM) $(QMAKE_TARGET) $(INSTALL_ROOT)/opt/QTCart/bin/$(QMAKE_TARGET) - -$(STRIP) $(INSTALL_ROOT)/opt/QTCart/bin/$(QMAKE_TARGET) - -uninstall_target: FORCE - -$(DEL_FILE) $(INSTALL_ROOT)/opt/QTCart/bin/$(QMAKE_TARGET) - -$(DEL_DIR) $(INSTALL_ROOT)/opt/QTCart/bin/ - - -install: install_target FORCE - -uninstall: uninstall_target FORCE - -FORCE: - -.SUFFIXES: - diff --git a/QTCart/QTCart b/QTCart/QTCart deleted file mode 100755 index f1178df..0000000 Binary files a/QTCart/QTCart and /dev/null differ diff --git a/QTCart/build/Desktop-Debug/.qmake.stash b/QTCart/build/Desktop-Debug/.qmake.stash deleted file mode 100644 index 0d0b187..0000000 --- a/QTCart/build/Desktop-Debug/.qmake.stash +++ /dev/null @@ -1,23 +0,0 @@ -QMAKE_CXX.QT_COMPILER_STDCXX = 201703L -QMAKE_CXX.QMAKE_GCC_MAJOR_VERSION = 11 -QMAKE_CXX.QMAKE_GCC_MINOR_VERSION = 4 -QMAKE_CXX.QMAKE_GCC_PATCH_VERSION = 0 -QMAKE_CXX.COMPILER_MACROS = \ - QT_COMPILER_STDCXX \ - QMAKE_GCC_MAJOR_VERSION \ - QMAKE_GCC_MINOR_VERSION \ - QMAKE_GCC_PATCH_VERSION -QMAKE_CXX.INCDIRS = \ - /usr/include/c++/11 \ - /usr/include/x86_64-linux-gnu/c++/11 \ - /usr/include/c++/11/backward \ - /usr/lib/gcc/x86_64-linux-gnu/11/include \ - /usr/local/include \ - /usr/include/x86_64-linux-gnu \ - /usr/include -QMAKE_CXX.LIBDIRS = \ - /usr/lib/gcc/x86_64-linux-gnu/11 \ - /usr/lib/x86_64-linux-gnu \ - /usr/lib \ - /lib/x86_64-linux-gnu \ - /lib diff --git a/QTCart/build/Desktop-Debug/Makefile b/QTCart/build/Desktop-Debug/Makefile deleted file mode 100644 index c483638..0000000 --- a/QTCart/build/Desktop-Debug/Makefile +++ /dev/null @@ -1,434 +0,0 @@ -############################################################################# -# Makefile for building: QTCart -# Generated by qmake (3.1) (Qt 6.2.4) -# Project: ../../QTCart.pro -# Template: app -# Command: /usr/lib/qt6/bin/qmake -o Makefile ../../QTCart.pro -spec linux-g++ CONFIG+=debug CONFIG+=qml_debug -############################################################################# - -MAKEFILE = Makefile - -EQ = = - -####### Compiler, tools and options - -CC = gcc -CXX = g++ -DEFINES = -DQT_QML_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -CFLAGS = -pipe -g -Wall -Wextra -D_REENTRANT -fPIC $(DEFINES) -CXXFLAGS = -pipe -g -std=gnu++1z -Wall -Wextra -D_REENTRANT -fPIC $(DEFINES) -INCPATH = -I../../../QTCart -I. -I/usr/include/x86_64-linux-gnu/qt6 -I/usr/include/x86_64-linux-gnu/qt6/QtWidgets -I/usr/include/x86_64-linux-gnu/qt6/QtGui -I/usr/include/x86_64-linux-gnu/qt6/QtCore -I. -I. -I/usr/lib/x86_64-linux-gnu/qt6/mkspecs/linux-g++ -QMAKE = /usr/lib/qt6/bin/qmake -DEL_FILE = rm -f -CHK_DIR_EXISTS= test -d -MKDIR = mkdir -p -COPY = cp -f -COPY_FILE = cp -f -COPY_DIR = cp -f -R -INSTALL_FILE = install -m 644 -p -INSTALL_PROGRAM = install -m 755 -p -INSTALL_DIR = cp -f -R -QINSTALL = /usr/lib/qt6/bin/qmake -install qinstall -QINSTALL_PROGRAM = /usr/lib/qt6/bin/qmake -install qinstall -exe -DEL_FILE = rm -f -SYMLINK = ln -f -s -DEL_DIR = rmdir -MOVE = mv -f -TAR = tar -cf -COMPRESS = gzip -9f -DISTNAME = QTCart1.0.0 -DISTDIR = /home/ubuntu/QT/src/QTCart/build/Desktop-Debug/.tmp/QTCart1.0.0 -LINK = g++ -LFLAGS = -Wl,-rpath-link,/usr/lib/x86_64-linux-gnu -LIBS = $(SUBLIBS) /usr/lib/x86_64-linux-gnu/libQt6Widgets.so /usr/lib/x86_64-linux-gnu/libQt6Gui.so /usr/lib/x86_64-linux-gnu/libGLX.so /usr/lib/x86_64-linux-gnu/libOpenGL.so /usr/lib/x86_64-linux-gnu/libQt6Core.so -lpthread -lGLX -lOpenGL -AR = ar cqs -RANLIB = -SED = sed -STRIP = strip - -####### Output directory - -OBJECTS_DIR = ./ - -####### Files - -SOURCES = ../../main.cpp \ - ../../mainwidget.cpp \ - ../../pagecart.cpp \ - ../../pagewelcome.cpp moc_mainwidget.cpp \ - moc_pagecart.cpp \ - moc_pagewelcome.cpp -OBJECTS = main.o \ - mainwidget.o \ - pagecart.o \ - pagewelcome.o \ - moc_mainwidget.o \ - moc_pagecart.o \ - moc_pagewelcome.o -DIST = /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/spec_pre.prf \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/common/unix.conf \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/common/linux.conf \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/common/sanitize.conf \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/common/gcc-base.conf \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/common/gcc-base-unix.conf \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/common/g++-base.conf \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/common/g++-unix.conf \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/qconfig.pri \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_concurrent.pri \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_concurrent_private.pri \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_core.pri \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_core_private.pri \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_dbus.pri \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_dbus_private.pri \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_devicediscovery_support_private.pri \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_eglfs_kms_gbm_support_private.pri \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_fb_support_private.pri \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_gui.pri \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_gui_private.pri \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_input_support_private.pri \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_kms_support_private.pri \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_network.pri \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_network_private.pri \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_opengl.pri \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_opengl_private.pri \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_openglwidgets.pri \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_openglwidgets_private.pri \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_printsupport.pri \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_printsupport_private.pri \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_sql.pri \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_sql_private.pri \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_testlib.pri \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_testlib_private.pri \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_widgets.pri \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_widgets_private.pri \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_xml.pri \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_xml_private.pri \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/qt_functions.prf \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/qt_config.prf \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/linux-g++/qmake.conf \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/spec_post.prf \ - ../../.qmake.stash \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/exclusive_builds.prf \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/toolchain.prf \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/default_pre.prf \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/resolve_config.prf \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/default_post.prf \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/qml_debug.prf \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/warn_on.prf \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/qt.prf \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/resources_functions.prf \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/resources.prf \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/moc.prf \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/unix/opengl.prf \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/uic.prf \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/unix/thread.prf \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/qmake_use.prf \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/file_copies.prf \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/testcase_targets.prf \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/exceptions.prf \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/yacc.prf \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/lex.prf \ - ../../../../QTCart.pro ../../mainwidget.h \ - ../../pagecart.h \ - ../../pagewelcome.h ../../main.cpp \ - ../../mainwidget.cpp \ - ../../pagecart.cpp \ - ../../pagewelcome.cpp -QMAKE_TARGET = QTCart -DESTDIR = -TARGET = QTCart - - -first: all -####### Build rules - -QTCart: ui_mainwidget.h ui_pagecart.h ui_pagewelcome.h $(OBJECTS) - $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJCOMP) $(LIBS) - -Makefile: ../../QTCart.pro /usr/lib/x86_64-linux-gnu/qt6/mkspecs/linux-g++/qmake.conf /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/spec_pre.prf \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/common/unix.conf \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/common/linux.conf \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/common/sanitize.conf \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/common/gcc-base.conf \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/common/gcc-base-unix.conf \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/common/g++-base.conf \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/common/g++-unix.conf \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/qconfig.pri \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_concurrent.pri \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_concurrent_private.pri \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_core.pri \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_core_private.pri \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_dbus.pri \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_dbus_private.pri \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_devicediscovery_support_private.pri \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_eglfs_kms_gbm_support_private.pri \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_fb_support_private.pri \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_gui.pri \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_gui_private.pri \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_input_support_private.pri \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_kms_support_private.pri \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_network.pri \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_network_private.pri \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_opengl.pri \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_opengl_private.pri \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_openglwidgets.pri \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_openglwidgets_private.pri \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_printsupport.pri \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_printsupport_private.pri \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_sql.pri \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_sql_private.pri \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_testlib.pri \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_testlib_private.pri \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_widgets.pri \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_widgets_private.pri \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_xml.pri \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_xml_private.pri \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/qt_functions.prf \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/qt_config.prf \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/linux-g++/qmake.conf \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/spec_post.prf \ - .qmake.stash \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/exclusive_builds.prf \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/toolchain.prf \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/default_pre.prf \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/resolve_config.prf \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/default_post.prf \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/qml_debug.prf \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/warn_on.prf \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/qt.prf \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/resources_functions.prf \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/resources.prf \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/moc.prf \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/unix/opengl.prf \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/uic.prf \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/unix/thread.prf \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/qmake_use.prf \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/file_copies.prf \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/testcase_targets.prf \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/exceptions.prf \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/yacc.prf \ - /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/lex.prf \ - ../../QTCart.pro \ - /usr/lib/x86_64-linux-gnu/libQt6Widgets.prl \ - /usr/lib/x86_64-linux-gnu/libQt6Gui.prl \ - /usr/lib/x86_64-linux-gnu/libQt6Core.prl - $(QMAKE) -o Makefile ../../QTCart.pro -spec linux-g++ CONFIG+=debug CONFIG+=qml_debug -/usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/spec_pre.prf: -/usr/lib/x86_64-linux-gnu/qt6/mkspecs/common/unix.conf: -/usr/lib/x86_64-linux-gnu/qt6/mkspecs/common/linux.conf: -/usr/lib/x86_64-linux-gnu/qt6/mkspecs/common/sanitize.conf: -/usr/lib/x86_64-linux-gnu/qt6/mkspecs/common/gcc-base.conf: -/usr/lib/x86_64-linux-gnu/qt6/mkspecs/common/gcc-base-unix.conf: -/usr/lib/x86_64-linux-gnu/qt6/mkspecs/common/g++-base.conf: -/usr/lib/x86_64-linux-gnu/qt6/mkspecs/common/g++-unix.conf: -/usr/lib/x86_64-linux-gnu/qt6/mkspecs/qconfig.pri: -/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_concurrent.pri: -/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_concurrent_private.pri: -/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_core.pri: -/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_core_private.pri: -/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_dbus.pri: -/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_dbus_private.pri: -/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_devicediscovery_support_private.pri: -/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_eglfs_kms_gbm_support_private.pri: -/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri: -/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri: -/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_fb_support_private.pri: -/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_gui.pri: -/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_gui_private.pri: -/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_input_support_private.pri: -/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_kms_support_private.pri: -/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_network.pri: -/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_network_private.pri: -/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_opengl.pri: -/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_opengl_private.pri: -/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_openglwidgets.pri: -/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_openglwidgets_private.pri: -/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_printsupport.pri: -/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_printsupport_private.pri: -/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_sql.pri: -/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_sql_private.pri: -/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_testlib.pri: -/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_testlib_private.pri: -/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_widgets.pri: -/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_widgets_private.pri: -/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri: -/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_xml.pri: -/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_xml_private.pri: -/usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/qt_functions.prf: -/usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/qt_config.prf: -/usr/lib/x86_64-linux-gnu/qt6/mkspecs/linux-g++/qmake.conf: -/usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/spec_post.prf: -.qmake.stash: -/usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/exclusive_builds.prf: -/usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/toolchain.prf: -/usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/default_pre.prf: -/usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/resolve_config.prf: -/usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/default_post.prf: -/usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/qml_debug.prf: -/usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/warn_on.prf: -/usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/qt.prf: -/usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/resources_functions.prf: -/usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/resources.prf: -/usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/moc.prf: -/usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/unix/opengl.prf: -/usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/uic.prf: -/usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/unix/thread.prf: -/usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/qmake_use.prf: -/usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/file_copies.prf: -/usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/testcase_targets.prf: -/usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/exceptions.prf: -/usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/yacc.prf: -/usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/lex.prf: -../../QTCart.pro: -/usr/lib/x86_64-linux-gnu/libQt6Widgets.prl: -/usr/lib/x86_64-linux-gnu/libQt6Gui.prl: -/usr/lib/x86_64-linux-gnu/libQt6Core.prl: -qmake: FORCE - @$(QMAKE) -o Makefile ../../QTCart.pro -spec linux-g++ CONFIG+=debug CONFIG+=qml_debug - -qmake_all: FORCE - - -all: Makefile QTCart - -dist: distdir FORCE - (cd `dirname $(DISTDIR)` && $(TAR) $(DISTNAME).tar $(DISTNAME) && $(COMPRESS) $(DISTNAME).tar) && $(MOVE) `dirname $(DISTDIR)`/$(DISTNAME).tar.gz . && $(DEL_FILE) -r $(DISTDIR) - -distdir: FORCE - @test -d $(DISTDIR) || mkdir -p $(DISTDIR) - $(COPY_FILE) --parents $(DIST) $(DISTDIR)/ - $(COPY_FILE) --parents /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/data/dummy.cpp $(DISTDIR)/ - $(COPY_FILE) --parents ../../mainwidget.h ../../pagecart.h ../../pagewelcome.h $(DISTDIR)/ - $(COPY_FILE) --parents ../../main.cpp ../../mainwidget.cpp ../../pagecart.cpp ../../pagewelcome.cpp $(DISTDIR)/ - $(COPY_FILE) --parents ../../mainwidget.ui ../../pagecart.ui ../../pagewelcome.ui $(DISTDIR)/ - - -clean: compiler_clean - -$(DEL_FILE) $(OBJECTS) - -$(DEL_FILE) *~ core *.core - - -distclean: clean - -$(DEL_FILE) $(TARGET) - -$(DEL_FILE) .qmake.stash - -$(DEL_FILE) Makefile - - -####### Sub-libraries - -mocclean: compiler_moc_header_clean compiler_moc_objc_header_clean compiler_moc_source_clean - -mocables: compiler_moc_header_make_all compiler_moc_objc_header_make_all compiler_moc_source_make_all - -check: first - -benchmark: first - -compiler_rcc_make_all: -compiler_rcc_clean: -compiler_moc_predefs_make_all: moc_predefs.h -compiler_moc_predefs_clean: - -$(DEL_FILE) moc_predefs.h -moc_predefs.h: /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/data/dummy.cpp - g++ -pipe -g -std=gnu++1z -Wall -Wextra -dM -E -o moc_predefs.h /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/data/dummy.cpp - -compiler_moc_header_make_all: moc_mainwidget.cpp moc_pagecart.cpp moc_pagewelcome.cpp -compiler_moc_header_clean: - -$(DEL_FILE) moc_mainwidget.cpp moc_pagecart.cpp moc_pagewelcome.cpp -moc_mainwidget.cpp: ../../mainwidget.h \ - ../../pagewelcome.h \ - ../../pagecart.h \ - moc_predefs.h \ - /usr/lib/qt6/libexec/moc - /usr/lib/qt6/libexec/moc $(DEFINES) --include /home/ubuntu/QT/src/QTCart/build/Desktop-Debug/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt6/mkspecs/linux-g++ -I/home/ubuntu/QT/src/QTCart -I/usr/include/x86_64-linux-gnu/qt6 -I/usr/include/x86_64-linux-gnu/qt6/QtWidgets -I/usr/include/x86_64-linux-gnu/qt6/QtGui -I/usr/include/x86_64-linux-gnu/qt6/QtCore -I. -I/usr/include/c++/11 -I/usr/include/x86_64-linux-gnu/c++/11 -I/usr/include/c++/11/backward -I/usr/lib/gcc/x86_64-linux-gnu/11/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../../mainwidget.h -o moc_mainwidget.cpp - -moc_pagecart.cpp: ../../pagecart.h \ - moc_predefs.h \ - /usr/lib/qt6/libexec/moc - /usr/lib/qt6/libexec/moc $(DEFINES) --include /home/ubuntu/QT/src/QTCart/build/Desktop-Debug/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt6/mkspecs/linux-g++ -I/home/ubuntu/QT/src/QTCart -I/usr/include/x86_64-linux-gnu/qt6 -I/usr/include/x86_64-linux-gnu/qt6/QtWidgets -I/usr/include/x86_64-linux-gnu/qt6/QtGui -I/usr/include/x86_64-linux-gnu/qt6/QtCore -I. -I/usr/include/c++/11 -I/usr/include/x86_64-linux-gnu/c++/11 -I/usr/include/c++/11/backward -I/usr/lib/gcc/x86_64-linux-gnu/11/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../../pagecart.h -o moc_pagecart.cpp - -moc_pagewelcome.cpp: ../../pagewelcome.h \ - moc_predefs.h \ - /usr/lib/qt6/libexec/moc - /usr/lib/qt6/libexec/moc $(DEFINES) --include /home/ubuntu/QT/src/QTCart/build/Desktop-Debug/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt6/mkspecs/linux-g++ -I/home/ubuntu/QT/src/QTCart -I/usr/include/x86_64-linux-gnu/qt6 -I/usr/include/x86_64-linux-gnu/qt6/QtWidgets -I/usr/include/x86_64-linux-gnu/qt6/QtGui -I/usr/include/x86_64-linux-gnu/qt6/QtCore -I. -I/usr/include/c++/11 -I/usr/include/x86_64-linux-gnu/c++/11 -I/usr/include/c++/11/backward -I/usr/lib/gcc/x86_64-linux-gnu/11/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../../pagewelcome.h -o moc_pagewelcome.cpp - -compiler_moc_objc_header_make_all: -compiler_moc_objc_header_clean: -compiler_moc_source_make_all: -compiler_moc_source_clean: -compiler_uic_make_all: ui_mainwidget.h ui_pagecart.h ui_pagewelcome.h -compiler_uic_clean: - -$(DEL_FILE) ui_mainwidget.h ui_pagecart.h ui_pagewelcome.h -ui_mainwidget.h: ../../mainwidget.ui \ - /usr/lib/qt6/libexec/uic - /usr/lib/qt6/libexec/uic ../../mainwidget.ui -o ui_mainwidget.h - -ui_pagecart.h: ../../pagecart.ui \ - /usr/lib/qt6/libexec/uic - /usr/lib/qt6/libexec/uic ../../pagecart.ui -o ui_pagecart.h - -ui_pagewelcome.h: ../../pagewelcome.ui \ - /usr/lib/qt6/libexec/uic - /usr/lib/qt6/libexec/uic ../../pagewelcome.ui -o ui_pagewelcome.h - -compiler_yacc_decl_make_all: -compiler_yacc_decl_clean: -compiler_yacc_impl_make_all: -compiler_yacc_impl_clean: -compiler_lex_make_all: -compiler_lex_clean: -compiler_clean: compiler_moc_predefs_clean compiler_moc_header_clean compiler_uic_clean - -####### Compile - -main.o: ../../main.cpp ../../mainwidget.h \ - ../../pagewelcome.h \ - ../../pagecart.h - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o main.o ../../main.cpp - -mainwidget.o: ../../mainwidget.cpp ../../mainwidget.h \ - ../../pagewelcome.h \ - ../../pagecart.h \ - ../../ui_mainwidget.h - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o mainwidget.o ../../mainwidget.cpp - -pagecart.o: ../../pagecart.cpp ../../pagecart.h \ - ui_pagecart.h - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o pagecart.o ../../pagecart.cpp - -pagewelcome.o: ../../pagewelcome.cpp ../../pagewelcome.h \ - ../../ui_pagewelcome.h - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o pagewelcome.o ../../pagewelcome.cpp - -moc_mainwidget.o: moc_mainwidget.cpp - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_mainwidget.o moc_mainwidget.cpp - -moc_pagecart.o: moc_pagecart.cpp - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_pagecart.o moc_pagecart.cpp - -moc_pagewelcome.o: moc_pagewelcome.cpp - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_pagewelcome.o moc_pagewelcome.cpp - -####### Install - -install_target: first FORCE - @test -d $(INSTALL_ROOT)/opt/QTCart/bin || mkdir -p $(INSTALL_ROOT)/opt/QTCart/bin - $(QINSTALL_PROGRAM) $(QMAKE_TARGET) $(INSTALL_ROOT)/opt/QTCart/bin/$(QMAKE_TARGET) - -uninstall_target: FORCE - -$(DEL_FILE) $(INSTALL_ROOT)/opt/QTCart/bin/$(QMAKE_TARGET) - -$(DEL_DIR) $(INSTALL_ROOT)/opt/QTCart/bin/ - - -install: install_target FORCE - -uninstall: uninstall_target FORCE - -FORCE: - diff --git a/QTCart/build/Desktop-Debug/QTCart b/QTCart/build/Desktop-Debug/QTCart deleted file mode 100755 index 47c88b6..0000000 Binary files a/QTCart/build/Desktop-Debug/QTCart and /dev/null differ diff --git a/QTCart/build/Desktop-Debug/main.o b/QTCart/build/Desktop-Debug/main.o deleted file mode 100644 index e9404ef..0000000 Binary files a/QTCart/build/Desktop-Debug/main.o and /dev/null differ diff --git a/QTCart/build/Desktop-Debug/mainwidget.o b/QTCart/build/Desktop-Debug/mainwidget.o deleted file mode 100644 index 85a5aae..0000000 Binary files a/QTCart/build/Desktop-Debug/mainwidget.o and /dev/null differ diff --git a/QTCart/build/Desktop-Debug/moc_mainwidget.cpp b/QTCart/build/Desktop-Debug/moc_mainwidget.cpp deleted file mode 100644 index 931a968..0000000 --- a/QTCart/build/Desktop-Debug/moc_mainwidget.cpp +++ /dev/null @@ -1,122 +0,0 @@ -/**************************************************************************** -** Meta object code from reading C++ file 'mainwidget.h' -** -** Created by: The Qt Meta Object Compiler version 68 (Qt 6.2.4) -** -** WARNING! All changes made in this file will be lost! -*****************************************************************************/ - -#include -#include "../../mainwidget.h" -#include -#include -#if !defined(Q_MOC_OUTPUT_REVISION) -#error "The header file 'mainwidget.h' doesn't include ." -#elif Q_MOC_OUTPUT_REVISION != 68 -#error "This file was generated using the moc from 6.2.4. It" -#error "cannot be used with the include files from this version of Qt." -#error "(The moc has changed too much.)" -#endif - -QT_BEGIN_MOC_NAMESPACE -QT_WARNING_PUSH -QT_WARNING_DISABLE_DEPRECATED -struct qt_meta_stringdata_MainWidget_t { - const uint offsetsAndSize[6]; - char stringdata0[31]; -}; -#define QT_MOC_LITERAL(ofs, len) \ - uint(offsetof(qt_meta_stringdata_MainWidget_t, stringdata0) + ofs), len -static const qt_meta_stringdata_MainWidget_t qt_meta_stringdata_MainWidget = { - { -QT_MOC_LITERAL(0, 10), // "MainWidget" -QT_MOC_LITERAL(11, 18), // "on_pPBStartClicked" -QT_MOC_LITERAL(30, 0) // "" - - }, - "MainWidget\0on_pPBStartClicked\0" -}; -#undef QT_MOC_LITERAL - -static const uint qt_meta_data_MainWidget[] = { - - // content: - 10, // revision - 0, // classname - 0, 0, // classinfo - 1, 14, // methods - 0, 0, // properties - 0, 0, // enums/sets - 0, 0, // constructors - 0, // flags - 0, // signalCount - - // slots: name, argc, parameters, tag, flags, initial metatype offsets - 1, 0, 20, 2, 0x08, 1 /* Private */, - - // slots: parameters - QMetaType::Void, - - 0 // eod -}; - -void MainWidget::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) -{ - if (_c == QMetaObject::InvokeMetaMethod) { - auto *_t = static_cast(_o); - (void)_t; - switch (_id) { - case 0: _t->on_pPBStartClicked(); break; - default: ; - } - } - (void)_a; -} - -const QMetaObject MainWidget::staticMetaObject = { { - QMetaObject::SuperData::link(), - qt_meta_stringdata_MainWidget.offsetsAndSize, - qt_meta_data_MainWidget, - qt_static_metacall, - nullptr, -qt_incomplete_metaTypeArray -, QtPrivate::TypeAndForceComplete - - ->, - nullptr -} }; - - -const QMetaObject *MainWidget::metaObject() const -{ - return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; -} - -void *MainWidget::qt_metacast(const char *_clname) -{ - if (!_clname) return nullptr; - if (!strcmp(_clname, qt_meta_stringdata_MainWidget.stringdata0)) - return static_cast(this); - return QWidget::qt_metacast(_clname); -} - -int MainWidget::qt_metacall(QMetaObject::Call _c, int _id, void **_a) -{ - _id = QWidget::qt_metacall(_c, _id, _a); - if (_id < 0) - return _id; - if (_c == QMetaObject::InvokeMetaMethod) { - if (_id < 1) - qt_static_metacall(this, _c, _id, _a); - _id -= 1; - } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) { - if (_id < 1) - *reinterpret_cast(_a[0]) = QMetaType(); - _id -= 1; - } - return _id; -} -QT_WARNING_POP -QT_END_MOC_NAMESPACE diff --git a/QTCart/build/Desktop-Debug/moc_mainwidget.o b/QTCart/build/Desktop-Debug/moc_mainwidget.o deleted file mode 100644 index 77be305..0000000 Binary files a/QTCart/build/Desktop-Debug/moc_mainwidget.o and /dev/null differ diff --git a/QTCart/build/Desktop-Debug/moc_pagecart.cpp b/QTCart/build/Desktop-Debug/moc_pagecart.cpp deleted file mode 100644 index 080ae03..0000000 --- a/QTCart/build/Desktop-Debug/moc_pagecart.cpp +++ /dev/null @@ -1,135 +0,0 @@ -/**************************************************************************** -** Meta object code from reading C++ file 'pagecart.h' -** -** Created by: The Qt Meta Object Compiler version 68 (Qt 6.2.4) -** -** WARNING! All changes made in this file will be lost! -*****************************************************************************/ - -#include -#include "../../pagecart.h" -#include -#include -#if !defined(Q_MOC_OUTPUT_REVISION) -#error "The header file 'pagecart.h' doesn't include ." -#elif Q_MOC_OUTPUT_REVISION != 68 -#error "This file was generated using the moc from 6.2.4. It" -#error "cannot be used with the include files from this version of Qt." -#error "(The moc has changed too much.)" -#endif - -QT_BEGIN_MOC_NAMESPACE -QT_WARNING_PUSH -QT_WARNING_DISABLE_DEPRECATED -struct qt_meta_stringdata_PageCart_t { - const uint offsetsAndSize[12]; - char stringdata0[72]; -}; -#define QT_MOC_LITERAL(ofs, len) \ - uint(offsetof(qt_meta_stringdata_PageCart_t, stringdata0) + ofs), len -static const qt_meta_stringdata_PageCart_t qt_meta_stringdata_PageCart = { - { -QT_MOC_LITERAL(0, 8), // "PageCart" -QT_MOC_LITERAL(9, 13), // "onPlusClicked" -QT_MOC_LITERAL(23, 0), // "" -QT_MOC_LITERAL(24, 14), // "onMinusClicked" -QT_MOC_LITERAL(39, 15), // "onDeleteClicked" -QT_MOC_LITERAL(55, 16) // "onBarcodeEntered" - - }, - "PageCart\0onPlusClicked\0\0onMinusClicked\0" - "onDeleteClicked\0onBarcodeEntered" -}; -#undef QT_MOC_LITERAL - -static const uint qt_meta_data_PageCart[] = { - - // content: - 10, // revision - 0, // classname - 0, 0, // classinfo - 4, 14, // methods - 0, 0, // properties - 0, 0, // enums/sets - 0, 0, // constructors - 0, // flags - 0, // signalCount - - // slots: name, argc, parameters, tag, flags, initial metatype offsets - 1, 0, 38, 2, 0x08, 1 /* Private */, - 3, 0, 39, 2, 0x08, 2 /* Private */, - 4, 0, 40, 2, 0x08, 3 /* Private */, - 5, 0, 41, 2, 0x08, 4 /* Private */, - - // slots: parameters - QMetaType::Void, - QMetaType::Void, - QMetaType::Void, - QMetaType::Void, - - 0 // eod -}; - -void PageCart::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) -{ - if (_c == QMetaObject::InvokeMetaMethod) { - auto *_t = static_cast(_o); - (void)_t; - switch (_id) { - case 0: _t->onPlusClicked(); break; - case 1: _t->onMinusClicked(); break; - case 2: _t->onDeleteClicked(); break; - case 3: _t->onBarcodeEntered(); break; - default: ; - } - } - (void)_a; -} - -const QMetaObject PageCart::staticMetaObject = { { - QMetaObject::SuperData::link(), - qt_meta_stringdata_PageCart.offsetsAndSize, - qt_meta_data_PageCart, - qt_static_metacall, - nullptr, -qt_incomplete_metaTypeArray -, QtPrivate::TypeAndForceComplete, QtPrivate::TypeAndForceComplete, QtPrivate::TypeAndForceComplete, QtPrivate::TypeAndForceComplete - - ->, - nullptr -} }; - - -const QMetaObject *PageCart::metaObject() const -{ - return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; -} - -void *PageCart::qt_metacast(const char *_clname) -{ - if (!_clname) return nullptr; - if (!strcmp(_clname, qt_meta_stringdata_PageCart.stringdata0)) - return static_cast(this); - return QWidget::qt_metacast(_clname); -} - -int PageCart::qt_metacall(QMetaObject::Call _c, int _id, void **_a) -{ - _id = QWidget::qt_metacall(_c, _id, _a); - if (_id < 0) - return _id; - if (_c == QMetaObject::InvokeMetaMethod) { - if (_id < 4) - qt_static_metacall(this, _c, _id, _a); - _id -= 4; - } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) { - if (_id < 4) - *reinterpret_cast(_a[0]) = QMetaType(); - _id -= 4; - } - return _id; -} -QT_WARNING_POP -QT_END_MOC_NAMESPACE diff --git a/QTCart/build/Desktop-Debug/moc_pagecart.o b/QTCart/build/Desktop-Debug/moc_pagecart.o deleted file mode 100644 index 6df9ff5..0000000 Binary files a/QTCart/build/Desktop-Debug/moc_pagecart.o and /dev/null differ diff --git a/QTCart/build/Desktop-Debug/moc_pagewelcome.cpp b/QTCart/build/Desktop-Debug/moc_pagewelcome.cpp deleted file mode 100644 index 450d250..0000000 --- a/QTCart/build/Desktop-Debug/moc_pagewelcome.cpp +++ /dev/null @@ -1,137 +0,0 @@ -/**************************************************************************** -** Meta object code from reading C++ file 'pagewelcome.h' -** -** Created by: The Qt Meta Object Compiler version 68 (Qt 6.2.4) -** -** WARNING! All changes made in this file will be lost! -*****************************************************************************/ - -#include -#include "../../pagewelcome.h" -#include -#include -#if !defined(Q_MOC_OUTPUT_REVISION) -#error "The header file 'pagewelcome.h' doesn't include ." -#elif Q_MOC_OUTPUT_REVISION != 68 -#error "This file was generated using the moc from 6.2.4. It" -#error "cannot be used with the include files from this version of Qt." -#error "(The moc has changed too much.)" -#endif - -QT_BEGIN_MOC_NAMESPACE -QT_WARNING_PUSH -QT_WARNING_DISABLE_DEPRECATED -struct qt_meta_stringdata_PageWelcome_t { - const uint offsetsAndSize[6]; - char stringdata0[26]; -}; -#define QT_MOC_LITERAL(ofs, len) \ - uint(offsetof(qt_meta_stringdata_PageWelcome_t, stringdata0) + ofs), len -static const qt_meta_stringdata_PageWelcome_t qt_meta_stringdata_PageWelcome = { - { -QT_MOC_LITERAL(0, 11), // "PageWelcome" -QT_MOC_LITERAL(12, 12), // "startClicked" -QT_MOC_LITERAL(25, 0) // "" - - }, - "PageWelcome\0startClicked\0" -}; -#undef QT_MOC_LITERAL - -static const uint qt_meta_data_PageWelcome[] = { - - // content: - 10, // revision - 0, // classname - 0, 0, // classinfo - 1, 14, // methods - 0, 0, // properties - 0, 0, // enums/sets - 0, 0, // constructors - 0, // flags - 1, // signalCount - - // signals: name, argc, parameters, tag, flags, initial metatype offsets - 1, 0, 20, 2, 0x06, 1 /* Public */, - - // signals: parameters - QMetaType::Void, - - 0 // eod -}; - -void PageWelcome::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) -{ - if (_c == QMetaObject::InvokeMetaMethod) { - auto *_t = static_cast(_o); - (void)_t; - switch (_id) { - case 0: _t->startClicked(); break; - default: ; - } - } else if (_c == QMetaObject::IndexOfMethod) { - int *result = reinterpret_cast(_a[0]); - { - using _t = void (PageWelcome::*)(); - if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&PageWelcome::startClicked)) { - *result = 0; - return; - } - } - } - (void)_a; -} - -const QMetaObject PageWelcome::staticMetaObject = { { - QMetaObject::SuperData::link(), - qt_meta_stringdata_PageWelcome.offsetsAndSize, - qt_meta_data_PageWelcome, - qt_static_metacall, - nullptr, -qt_incomplete_metaTypeArray, QtPrivate::TypeAndForceComplete - - - ->, - nullptr -} }; - - -const QMetaObject *PageWelcome::metaObject() const -{ - return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; -} - -void *PageWelcome::qt_metacast(const char *_clname) -{ - if (!_clname) return nullptr; - if (!strcmp(_clname, qt_meta_stringdata_PageWelcome.stringdata0)) - return static_cast(this); - return QWidget::qt_metacast(_clname); -} - -int PageWelcome::qt_metacall(QMetaObject::Call _c, int _id, void **_a) -{ - _id = QWidget::qt_metacall(_c, _id, _a); - if (_id < 0) - return _id; - if (_c == QMetaObject::InvokeMetaMethod) { - if (_id < 1) - qt_static_metacall(this, _c, _id, _a); - _id -= 1; - } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) { - if (_id < 1) - *reinterpret_cast(_a[0]) = QMetaType(); - _id -= 1; - } - return _id; -} - -// SIGNAL 0 -void PageWelcome::startClicked() -{ - QMetaObject::activate(this, &staticMetaObject, 0, nullptr); -} -QT_WARNING_POP -QT_END_MOC_NAMESPACE diff --git a/QTCart/build/Desktop-Debug/moc_pagewelcome.o b/QTCart/build/Desktop-Debug/moc_pagewelcome.o deleted file mode 100644 index d21a3e6..0000000 Binary files a/QTCart/build/Desktop-Debug/moc_pagewelcome.o and /dev/null differ diff --git a/QTCart/build/Desktop-Debug/moc_predefs.h b/QTCart/build/Desktop-Debug/moc_predefs.h deleted file mode 100644 index 1521072..0000000 --- a/QTCart/build/Desktop-Debug/moc_predefs.h +++ /dev/null @@ -1,429 +0,0 @@ -#define __SSP_STRONG__ 3 -#define __DBL_MIN_EXP__ (-1021) -#define __cpp_attributes 200809L -#define __cpp_nontype_template_parameter_auto 201606L -#define __UINT_LEAST16_MAX__ 0xffff -#define __ATOMIC_ACQUIRE 2 -#define __FLT128_MAX_10_EXP__ 4932 -#define __FLT_MIN__ 1.17549435082228750796873653722224568e-38F -#define __GCC_IEC_559_COMPLEX 2 -#define __cpp_aggregate_nsdmi 201304L -#define __UINT_LEAST8_TYPE__ unsigned char -#define __SIZEOF_FLOAT80__ 16 -#define __INTMAX_C(c) c ## L -#define __CHAR_BIT__ 8 -#define __UINT8_MAX__ 0xff -#define __SCHAR_WIDTH__ 8 -#define __WINT_MAX__ 0xffffffffU -#define __FLT32_MIN_EXP__ (-125) -#define __cpp_static_assert 201411L -#define __ORDER_LITTLE_ENDIAN__ 1234 -#define __SIZE_MAX__ 0xffffffffffffffffUL -#define __WCHAR_MAX__ 0x7fffffff -#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1 -#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1 -#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1 -#define __DBL_DENORM_MIN__ double(4.94065645841246544176568792868221372e-324L) -#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1 -#define __GCC_ATOMIC_CHAR_LOCK_FREE 2 -#define __GCC_IEC_559 2 -#define __FLT32X_DECIMAL_DIG__ 17 -#define __FLT_EVAL_METHOD__ 0 -#define __cpp_binary_literals 201304L -#define __FLT64_DECIMAL_DIG__ 17 -#define __CET__ 3 -#define __cpp_noexcept_function_type 201510L -#define __GCC_ATOMIC_CHAR32_T_LOCK_FREE 2 -#define __cpp_variadic_templates 200704L -#define __UINT_FAST64_MAX__ 0xffffffffffffffffUL -#define __SIG_ATOMIC_TYPE__ int -#define __DBL_MIN_10_EXP__ (-307) -#define __FINITE_MATH_ONLY__ 0 -#define __cpp_variable_templates 201304L -#define __FLT32X_MAX_EXP__ 1024 -#define __FLT32_HAS_DENORM__ 1 -#define __UINT_FAST8_MAX__ 0xff -#define __cpp_rvalue_reference 200610L -#define __cpp_nested_namespace_definitions 201411L -#define __DEC64_MAX_EXP__ 385 -#define __INT8_C(c) c -#define __INT_LEAST8_WIDTH__ 8 -#define __cpp_variadic_using 201611L -#define __UINT_LEAST64_MAX__ 0xffffffffffffffffUL -#define __INT_LEAST8_MAX__ 0x7f -#define __cpp_capture_star_this 201603L -#define __SHRT_MAX__ 0x7fff -#define __LDBL_MAX__ 1.18973149535723176502126385303097021e+4932L -#define __FLT64X_MAX_10_EXP__ 4932 -#define __cpp_if_constexpr 201606L -#define __LDBL_IS_IEC_60559__ 2 -#define __FLT64X_HAS_QUIET_NAN__ 1 -#define __UINT_LEAST8_MAX__ 0xff -#define __GCC_ATOMIC_BOOL_LOCK_FREE 2 -#define __FLT128_DENORM_MIN__ 6.47517511943802511092443895822764655e-4966F128 -#define __UINTMAX_TYPE__ long unsigned int -#define __linux 1 -#define __DEC32_EPSILON__ 1E-6DF -#define __FLT_EVAL_METHOD_TS_18661_3__ 0 -#define __unix 1 -#define __UINT32_MAX__ 0xffffffffU -#define __GXX_EXPERIMENTAL_CXX0X__ 1 -#define __FLT128_MIN_EXP__ (-16381) -#define __WINT_MIN__ 0U -#define __FLT128_MIN_10_EXP__ (-4931) -#define __FLT32X_IS_IEC_60559__ 2 -#define __INT_LEAST16_WIDTH__ 16 -#define __SCHAR_MAX__ 0x7f -#define __FLT128_MANT_DIG__ 113 -#define __WCHAR_MIN__ (-__WCHAR_MAX__ - 1) -#define __INT64_C(c) c ## L -#define __GCC_ATOMIC_POINTER_LOCK_FREE 2 -#define __FLT32X_MANT_DIG__ 53 -#define __GCC_ATOMIC_CHAR16_T_LOCK_FREE 2 -#define __cpp_aligned_new 201606L -#define __USER_LABEL_PREFIX__ -#define __FLT32_MAX_10_EXP__ 38 -#define __FLT64X_EPSILON__ 1.08420217248550443400745280086994171e-19F64x -#define __STDC_HOSTED__ 1 -#define __DEC64_MIN_EXP__ (-382) -#define __cpp_decltype_auto 201304L -#define __DBL_DIG__ 15 -#define __FLT32_DIG__ 6 -#define __FLT_EPSILON__ 1.19209289550781250000000000000000000e-7F -#define __GXX_WEAK__ 1 -#define __SHRT_WIDTH__ 16 -#define __FLT32_IS_IEC_60559__ 2 -#define __LDBL_MIN__ 3.36210314311209350626267781732175260e-4932L -#define __DBL_IS_IEC_60559__ 2 -#define __DEC32_MAX__ 9.999999E96DF -#define __cpp_threadsafe_static_init 200806L -#define __cpp_enumerator_attributes 201411L -#define __FLT64X_DENORM_MIN__ 3.64519953188247460252840593361941982e-4951F64x -#define __FLT32X_HAS_INFINITY__ 1 -#define __INT32_MAX__ 0x7fffffff -#define __unix__ 1 -#define __INT_WIDTH__ 32 -#define __SIZEOF_LONG__ 8 -#define __STDC_IEC_559__ 1 -#define __STDC_ISO_10646__ 201706L -#define __UINT16_C(c) c -#define __DECIMAL_DIG__ 21 -#define __STDC_IEC_559_COMPLEX__ 1 -#define __FLT64_EPSILON__ 2.22044604925031308084726333618164062e-16F64 -#define __gnu_linux__ 1 -#define __INT16_MAX__ 0x7fff -#define __FLT64_MIN_EXP__ (-1021) -#define __FLT64X_MIN_10_EXP__ (-4931) -#define __LDBL_HAS_QUIET_NAN__ 1 -#define __FLT64_MANT_DIG__ 53 -#define __FLT64X_MANT_DIG__ 64 -#define __GNUC__ 11 -#define __GXX_RTTI 1 -#define __pie__ 2 -#define __MMX__ 1 -#define __FLT_HAS_DENORM__ 1 -#define __SIZEOF_LONG_DOUBLE__ 16 -#define __BIGGEST_ALIGNMENT__ 16 -#define __STDC_UTF_16__ 1 -#define __FLT64_MAX_10_EXP__ 308 -#define __cpp_delegating_constructors 200604L -#define __FLT32_HAS_INFINITY__ 1 -#define __DBL_MAX__ double(1.79769313486231570814527423731704357e+308L) -#define __cpp_raw_strings 200710L -#define __INT_FAST32_MAX__ 0x7fffffffffffffffL -#define __DBL_HAS_INFINITY__ 1 -#define __SIZEOF_FLOAT__ 4 -#define __HAVE_SPECULATION_SAFE_VALUE 1 -#define __cpp_fold_expressions 201603L -#define __DEC32_MIN_EXP__ (-94) -#define __INTPTR_WIDTH__ 64 -#define __FLT64X_HAS_INFINITY__ 1 -#define __UINT_LEAST32_MAX__ 0xffffffffU -#define __FLT32X_HAS_DENORM__ 1 -#define __INT_FAST16_TYPE__ long int -#define __MMX_WITH_SSE__ 1 -#define __LDBL_HAS_DENORM__ 1 -#define __cplusplus 201703L -#define __cpp_ref_qualifiers 200710L -#define __DEC32_MIN__ 1E-95DF -#define __DEPRECATED 1 -#define __cpp_rvalue_references 200610L -#define __DBL_MAX_EXP__ 1024 -#define __WCHAR_WIDTH__ 32 -#define __FLT32_MAX__ 3.40282346638528859811704183484516925e+38F32 -#define __DEC128_EPSILON__ 1E-33DL -#define __SSE2_MATH__ 1 -#define __ATOMIC_HLE_RELEASE 131072 -#define __PTRDIFF_MAX__ 0x7fffffffffffffffL -#define __amd64 1 -#define __ATOMIC_HLE_ACQUIRE 65536 -#define __GNUG__ 11 -#define __LONG_LONG_MAX__ 0x7fffffffffffffffLL -#define __SIZEOF_SIZE_T__ 8 -#define __cpp_nsdmi 200809L -#define __FLT64X_MIN_EXP__ (-16381) -#define __SIZEOF_WINT_T__ 4 -#define __LONG_LONG_WIDTH__ 64 -#define __cpp_initializer_lists 200806L -#define __FLT32_MAX_EXP__ 128 -#define __cpp_hex_float 201603L -#define __GXX_ABI_VERSION 1016 -#define __FLT128_HAS_INFINITY__ 1 -#define __FLT_MIN_EXP__ (-125) -#define __GCC_HAVE_DWARF2_CFI_ASM 1 -#define __x86_64 1 -#define __cpp_lambdas 200907L -#define __INT_FAST64_TYPE__ long int -#define __FLT64_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F64 -#define __cpp_template_auto 201606L -#define __DBL_MIN__ double(2.22507385850720138309023271733240406e-308L) -#define __FLT128_EPSILON__ 1.92592994438723585305597794258492732e-34F128 -#define __FLT64X_NORM_MAX__ 1.18973149535723176502126385303097021e+4932F64x -#define __SIZEOF_POINTER__ 8 -#define __LP64__ 1 -#define __DBL_HAS_QUIET_NAN__ 1 -#define __FLT32X_EPSILON__ 2.22044604925031308084726333618164062e-16F32x -#define __DECIMAL_BID_FORMAT__ 1 -#define __FLT64_MIN_10_EXP__ (-307) -#define __FLT64X_DECIMAL_DIG__ 21 -#define __DEC128_MIN__ 1E-6143DL -#define __REGISTER_PREFIX__ -#define __UINT16_MAX__ 0xffff -#define __LDBL_HAS_INFINITY__ 1 -#define __FLT32_MIN__ 1.17549435082228750796873653722224568e-38F32 -#define __UINT8_TYPE__ unsigned char -#define __FLT_DIG__ 6 -#define __NO_INLINE__ 1 -#define __DEC_EVAL_METHOD__ 2 -#define __DEC128_MAX__ 9.999999999999999999999999999999999E6144DL -#define __FLT_MANT_DIG__ 24 -#define __LDBL_DECIMAL_DIG__ 21 -#define __VERSION__ "11.4.0" -#define __UINT64_C(c) c ## UL -#define __cpp_unicode_characters 201411L -#define _STDC_PREDEF_H 1 -#define __INT_LEAST32_MAX__ 0x7fffffff -#define __GCC_ATOMIC_INT_LOCK_FREE 2 -#define __FLT128_MAX_EXP__ 16384 -#define __FLT32_MANT_DIG__ 24 -#define __FLOAT_WORD_ORDER__ __ORDER_LITTLE_ENDIAN__ -#define __STDC_IEC_60559_COMPLEX__ 201404L -#define __cpp_aggregate_bases 201603L -#define __FLT128_HAS_DENORM__ 1 -#define __FLT32_DECIMAL_DIG__ 9 -#define __FLT128_DIG__ 33 -#define __INT32_C(c) c -#define __DEC64_EPSILON__ 1E-15DD -#define __ORDER_PDP_ENDIAN__ 3412 -#define __DEC128_MIN_EXP__ (-6142) -#define __INT_FAST32_TYPE__ long int -#define __UINT_LEAST16_TYPE__ short unsigned int -#define unix 1 -#define __DBL_HAS_DENORM__ 1 -#define __cpp_rtti 199711L -#define __SIZE_TYPE__ long unsigned int -#define __UINT64_MAX__ 0xffffffffffffffffUL -#define __FLT_IS_IEC_60559__ 2 -#define __GNUC_WIDE_EXECUTION_CHARSET_NAME "UTF-32LE" -#define __FLT64X_DIG__ 18 -#define __INT8_TYPE__ signed char -#define __cpp_digit_separators 201309L -#define __ELF__ 1 -#define __GCC_ASM_FLAG_OUTPUTS__ 1 -#define __UINT32_TYPE__ unsigned int -#define __FLT_RADIX__ 2 -#define __INT_LEAST16_TYPE__ short int -#define __LDBL_EPSILON__ 1.08420217248550443400745280086994171e-19L -#define __UINTMAX_C(c) c ## UL -#define __GLIBCXX_BITSIZE_INT_N_0 128 -#define __k8 1 -#define __FLT32X_MIN__ 2.22507385850720138309023271733240406e-308F32x -#define __SIG_ATOMIC_MAX__ 0x7fffffff -#define __GCC_ATOMIC_WCHAR_T_LOCK_FREE 2 -#define __STDC_IEC_60559_BFP__ 201404L -#define __SIZEOF_PTRDIFF_T__ 8 -#define __LDBL_DIG__ 18 -#define __FLT64_IS_IEC_60559__ 2 -#define __x86_64__ 1 -#define __FLT32X_MIN_EXP__ (-1021) -#define __DEC32_SUBNORMAL_MIN__ 0.000001E-95DF -#define __INT_FAST16_MAX__ 0x7fffffffffffffffL -#define __FLT64_DIG__ 15 -#define __UINT_FAST32_MAX__ 0xffffffffffffffffUL -#define __UINT_LEAST64_TYPE__ long unsigned int -#define __FLT_HAS_QUIET_NAN__ 1 -#define __FLT_MAX_10_EXP__ 38 -#define __LONG_MAX__ 0x7fffffffffffffffL -#define __FLT64X_HAS_DENORM__ 1 -#define __DEC128_SUBNORMAL_MIN__ 0.000000000000000000000000000000001E-6143DL -#define __FLT_HAS_INFINITY__ 1 -#define __GNUC_EXECUTION_CHARSET_NAME "UTF-8" -#define __cpp_unicode_literals 200710L -#define __UINT_FAST16_TYPE__ long unsigned int -#define __DEC64_MAX__ 9.999999999999999E384DD -#define __INT_FAST32_WIDTH__ 64 -#define __CHAR16_TYPE__ short unsigned int -#define __PRAGMA_REDEFINE_EXTNAME 1 -#define __SIZE_WIDTH__ 64 -#define __SEG_FS 1 -#define __INT_LEAST16_MAX__ 0x7fff -#define __DEC64_MANT_DIG__ 16 -#define __INT64_MAX__ 0x7fffffffffffffffL -#define __SEG_GS 1 -#define __FLT32_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F32 -#define __SIG_ATOMIC_WIDTH__ 32 -#define __INT_LEAST64_TYPE__ long int -#define __INT16_TYPE__ short int -#define __INT_LEAST8_TYPE__ signed char -#define __cpp_structured_bindings 201606L -#define __SIZEOF_INT__ 4 -#define __DEC32_MAX_EXP__ 97 -#define __INT_FAST8_MAX__ 0x7f -#define __FLT128_MAX__ 1.18973149535723176508575932662800702e+4932F128 -#define __INTPTR_MAX__ 0x7fffffffffffffffL -#define __cpp_sized_deallocation 201309L -#define __cpp_guaranteed_copy_elision 201606L -#define linux 1 -#define __FLT64_HAS_QUIET_NAN__ 1 -#define __FLT32_MIN_10_EXP__ (-37) -#define __EXCEPTIONS 1 -#define __PTRDIFF_WIDTH__ 64 -#define __LDBL_MANT_DIG__ 64 -#define __cpp_range_based_for 201603L -#define __FLT64_HAS_INFINITY__ 1 -#define __FLT64X_MAX__ 1.18973149535723176502126385303097021e+4932F64x -#define __STDCPP_DEFAULT_NEW_ALIGNMENT__ 16 -#define __SIG_ATOMIC_MIN__ (-__SIG_ATOMIC_MAX__ - 1) -#define __code_model_small__ 1 -#define __GCC_ATOMIC_LONG_LOCK_FREE 2 -#define __cpp_nontype_template_args 201411L -#define __DEC32_MANT_DIG__ 7 -#define __cpp_return_type_deduction 201304L -#define __k8__ 1 -#define __INTPTR_TYPE__ long int -#define __UINT16_TYPE__ short unsigned int -#define __WCHAR_TYPE__ int -#define __pic__ 2 -#define __UINTPTR_MAX__ 0xffffffffffffffffUL -#define __INT_FAST64_WIDTH__ 64 -#define __cpp_decltype 200707L -#define __INT_FAST64_MAX__ 0x7fffffffffffffffL -#define __GCC_ATOMIC_TEST_AND_SET_TRUEVAL 1 -#define __FLT_NORM_MAX__ 3.40282346638528859811704183484516925e+38F -#define __FLT64X_MAX_EXP__ 16384 -#define __UINT_FAST64_TYPE__ long unsigned int -#define __cpp_inline_variables 201606L -#define __INT_MAX__ 0x7fffffff -#define __linux__ 1 -#define __INT64_TYPE__ long int -#define __FLT_MAX_EXP__ 128 -#define __ORDER_BIG_ENDIAN__ 4321 -#define __DBL_MANT_DIG__ 53 -#define __cpp_inheriting_constructors 201511L -#define __SIZEOF_FLOAT128__ 16 -#define __INT_LEAST64_MAX__ 0x7fffffffffffffffL -#define __DEC64_MIN__ 1E-383DD -#define __WINT_TYPE__ unsigned int -#define __UINT_LEAST32_TYPE__ unsigned int -#define __SIZEOF_SHORT__ 2 -#define __FLT32_NORM_MAX__ 3.40282346638528859811704183484516925e+38F32 -#define __SSE__ 1 -#define __LDBL_MIN_EXP__ (-16381) -#define __FLT64_MAX__ 1.79769313486231570814527423731704357e+308F64 -#define __amd64__ 1 -#define __WINT_WIDTH__ 32 -#define __INT_LEAST64_WIDTH__ 64 -#define __LDBL_MAX_EXP__ 16384 -#define __FLT32X_MAX_10_EXP__ 308 -#define __SIZEOF_INT128__ 16 -#define __FLT64X_IS_IEC_60559__ 2 -#define __LDBL_MAX_10_EXP__ 4932 -#define __ATOMIC_RELAXED 0 -#define __DBL_EPSILON__ double(2.22044604925031308084726333618164062e-16L) -#define __FLT128_MIN__ 3.36210314311209350626267781732175260e-4932F128 -#define _LP64 1 -#define __UINT8_C(c) c -#define __FLT64_MAX_EXP__ 1024 -#define __INT_LEAST32_TYPE__ int -#define __SIZEOF_WCHAR_T__ 4 -#define __GNUC_PATCHLEVEL__ 0 -#define __FLT128_NORM_MAX__ 1.18973149535723176508575932662800702e+4932F128 -#define __FLT64_NORM_MAX__ 1.79769313486231570814527423731704357e+308F64 -#define __FLT128_HAS_QUIET_NAN__ 1 -#define __INTMAX_MAX__ 0x7fffffffffffffffL -#define __INT_FAST8_TYPE__ signed char -#define __cpp_namespace_attributes 201411L -#define __FLT64X_MIN__ 3.36210314311209350626267781732175260e-4932F64x -#define __STDCPP_THREADS__ 1 -#define __GNUC_STDC_INLINE__ 1 -#define __FLT64_HAS_DENORM__ 1 -#define __FLT32_EPSILON__ 1.19209289550781250000000000000000000e-7F32 -#define __DBL_DECIMAL_DIG__ 17 -#define __STDC_UTF_32__ 1 -#define __INT_FAST8_WIDTH__ 8 -#define __FXSR__ 1 -#define __FLT32X_MAX__ 1.79769313486231570814527423731704357e+308F32x -#define __DBL_NORM_MAX__ double(1.79769313486231570814527423731704357e+308L) -#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__ -#define __INTMAX_WIDTH__ 64 -#define __cpp_runtime_arrays 198712L -#define __UINT64_TYPE__ long unsigned int -#define __UINT32_C(c) c ## U -#define __cpp_alias_templates 200704L -#define __FLT_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F -#define __FLT128_IS_IEC_60559__ 2 -#define __INT8_MAX__ 0x7f -#define __LONG_WIDTH__ 64 -#define __PIC__ 2 -#define __UINT_FAST32_TYPE__ long unsigned int -#define __FLT32X_NORM_MAX__ 1.79769313486231570814527423731704357e+308F32x -#define __CHAR32_TYPE__ unsigned int -#define __FLT_MAX__ 3.40282346638528859811704183484516925e+38F -#define __cpp_constexpr 201603L -#define __SSE2__ 1 -#define __cpp_deduction_guides 201703L -#define __INT32_TYPE__ int -#define __SIZEOF_DOUBLE__ 8 -#define __cpp_exceptions 199711L -#define __FLT_MIN_10_EXP__ (-37) -#define __FLT64_MIN__ 2.22507385850720138309023271733240406e-308F64 -#define __INT_LEAST32_WIDTH__ 32 -#define __INTMAX_TYPE__ long int -#define __DEC128_MAX_EXP__ 6145 -#define __FLT32X_HAS_QUIET_NAN__ 1 -#define __ATOMIC_CONSUME 1 -#define __GNUC_MINOR__ 4 -#define __GLIBCXX_TYPE_INT_N_0 __int128 -#define __INT_FAST16_WIDTH__ 64 -#define __UINTMAX_MAX__ 0xffffffffffffffffUL -#define __PIE__ 2 -#define __FLT32X_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F32x -#define __cpp_template_template_args 201611L -#define __DBL_MAX_10_EXP__ 308 -#define __LDBL_DENORM_MIN__ 3.64519953188247460252840593361941982e-4951L -#define __INT16_C(c) c -#define __STDC__ 1 -#define __FLT32X_DIG__ 15 -#define __PTRDIFF_TYPE__ long int -#define __ATOMIC_SEQ_CST 5 -#define __FLT32X_MIN_10_EXP__ (-307) -#define __UINTPTR_TYPE__ long unsigned int -#define __DEC64_SUBNORMAL_MIN__ 0.000000000000001E-383DD -#define __DEC128_MANT_DIG__ 34 -#define __LDBL_MIN_10_EXP__ (-4931) -#define __cpp_generic_lambdas 201304L -#define __SSE_MATH__ 1 -#define __SIZEOF_LONG_LONG__ 8 -#define __cpp_user_defined_literals 200809L -#define __FLT128_DECIMAL_DIG__ 36 -#define __GCC_ATOMIC_LLONG_LOCK_FREE 2 -#define __FLT32_HAS_QUIET_NAN__ 1 -#define __FLT_DECIMAL_DIG__ 9 -#define __UINT_FAST16_MAX__ 0xffffffffffffffffUL -#define __LDBL_NORM_MAX__ 1.18973149535723176502126385303097021e+4932L -#define __GCC_ATOMIC_SHORT_LOCK_FREE 2 -#define __UINT_FAST8_TYPE__ unsigned char -#define _GNU_SOURCE 1 -#define __cpp_init_captures 201304L -#define __ATOMIC_ACQ_REL 4 -#define __ATOMIC_RELEASE 3 diff --git a/QTCart/build/Desktop-Debug/pagecart.o b/QTCart/build/Desktop-Debug/pagecart.o deleted file mode 100644 index d6f3412..0000000 Binary files a/QTCart/build/Desktop-Debug/pagecart.o and /dev/null differ diff --git a/QTCart/build/Desktop-Debug/pagewelcome.o b/QTCart/build/Desktop-Debug/pagewelcome.o deleted file mode 100644 index 362856f..0000000 Binary files a/QTCart/build/Desktop-Debug/pagewelcome.o and /dev/null differ diff --git a/QTCart/build/Desktop-Debug/ui_mainwidget.h b/QTCart/build/Desktop-Debug/ui_mainwidget.h deleted file mode 100644 index 1e82aa7..0000000 --- a/QTCart/build/Desktop-Debug/ui_mainwidget.h +++ /dev/null @@ -1,65 +0,0 @@ -/******************************************************************************** -** Form generated from reading UI file 'mainwidget.ui' -** -** Created by: Qt User Interface Compiler version 6.2.4 -** -** WARNING! All changes made in this file will be lost when recompiling UI file! -********************************************************************************/ - -#ifndef UI_MAINWIDGET_H -#define UI_MAINWIDGET_H - -#include -#include -#include -#include -#include - -QT_BEGIN_NAMESPACE - -class Ui_MainWidget -{ -public: - QVBoxLayout *verticalLayout; - QStackedWidget *pstackedWidget; - QWidget *page; - QWidget *page_2; - - void setupUi(QWidget *MainWidget) - { - if (MainWidget->objectName().isEmpty()) - MainWidget->setObjectName(QString::fromUtf8("MainWidget")); - MainWidget->resize(685, 463); - verticalLayout = new QVBoxLayout(MainWidget); - verticalLayout->setObjectName(QString::fromUtf8("verticalLayout")); - pstackedWidget = new QStackedWidget(MainWidget); - pstackedWidget->setObjectName(QString::fromUtf8("pstackedWidget")); - page = new QWidget(); - page->setObjectName(QString::fromUtf8("page")); - pstackedWidget->addWidget(page); - page_2 = new QWidget(); - page_2->setObjectName(QString::fromUtf8("page_2")); - pstackedWidget->addWidget(page_2); - - verticalLayout->addWidget(pstackedWidget); - - - retranslateUi(MainWidget); - - QMetaObject::connectSlotsByName(MainWidget); - } // setupUi - - void retranslateUi(QWidget *MainWidget) - { - MainWidget->setWindowTitle(QCoreApplication::translate("MainWidget", "MainWidget", nullptr)); - } // retranslateUi - -}; - -namespace Ui { - class MainWidget: public Ui_MainWidget {}; -} // namespace Ui - -QT_END_NAMESPACE - -#endif // UI_MAINWIDGET_H diff --git a/QTCart/build/Desktop-Debug/ui_pagecart.h b/QTCart/build/Desktop-Debug/ui_pagecart.h deleted file mode 100644 index 8d40695..0000000 --- a/QTCart/build/Desktop-Debug/ui_pagecart.h +++ /dev/null @@ -1,170 +0,0 @@ -/******************************************************************************** -** Form generated from reading UI file 'pagecart.ui' -** -** Created by: Qt User Interface Compiler version 6.2.4 -** -** WARNING! All changes made in this file will be lost when recompiling UI file! -********************************************************************************/ - -#ifndef UI_PAGECART_H -#define UI_PAGECART_H - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -QT_BEGIN_NAMESPACE - -class Ui_PageCart -{ -public: - QVBoxLayout *verticalLayout_2; - QVBoxLayout *verticalLayout; - QHBoxLayout *horizontalLayout; - QHBoxLayout *horizontalLayout_4; - QLabel *labelTitle; - QSpacerItem *horizontalSpacer_2; - QPushButton *btnGuideMode; - QHBoxLayout *horizontalLayout_2; - QTableWidget *tableCart; - QHBoxLayout *horizontalLayout_3; - QLabel *labelTotalPrice; - QLabel *labelTotalPriceValue; - QSpacerItem *horizontalSpacer; - QPushButton *btnPay; - - void setupUi(QWidget *PageCart) - { - if (PageCart->objectName().isEmpty()) - PageCart->setObjectName(QString::fromUtf8("PageCart")); - PageCart->resize(624, 469); - verticalLayout_2 = new QVBoxLayout(PageCart); - verticalLayout_2->setObjectName(QString::fromUtf8("verticalLayout_2")); - verticalLayout = new QVBoxLayout(); - verticalLayout->setObjectName(QString::fromUtf8("verticalLayout")); - horizontalLayout = new QHBoxLayout(); - horizontalLayout->setObjectName(QString::fromUtf8("horizontalLayout")); - - verticalLayout->addLayout(horizontalLayout); - - horizontalLayout_4 = new QHBoxLayout(); - horizontalLayout_4->setObjectName(QString::fromUtf8("horizontalLayout_4")); - labelTitle = new QLabel(PageCart); - labelTitle->setObjectName(QString::fromUtf8("labelTitle")); - - horizontalLayout_4->addWidget(labelTitle); - - horizontalSpacer_2 = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); - - horizontalLayout_4->addItem(horizontalSpacer_2); - - btnGuideMode = new QPushButton(PageCart); - btnGuideMode->setObjectName(QString::fromUtf8("btnGuideMode")); - - horizontalLayout_4->addWidget(btnGuideMode); - - horizontalLayout_4->setStretch(0, 1); - horizontalLayout_4->setStretch(1, 4); - horizontalLayout_4->setStretch(2, 1); - - verticalLayout->addLayout(horizontalLayout_4); - - horizontalLayout_2 = new QHBoxLayout(); - horizontalLayout_2->setObjectName(QString::fromUtf8("horizontalLayout_2")); - tableCart = new QTableWidget(PageCart); - if (tableCart->columnCount() < 6) - tableCart->setColumnCount(6); - QTableWidgetItem *__qtablewidgetitem = new QTableWidgetItem(); - tableCart->setHorizontalHeaderItem(0, __qtablewidgetitem); - QTableWidgetItem *__qtablewidgetitem1 = new QTableWidgetItem(); - tableCart->setHorizontalHeaderItem(1, __qtablewidgetitem1); - QTableWidgetItem *__qtablewidgetitem2 = new QTableWidgetItem(); - tableCart->setHorizontalHeaderItem(2, __qtablewidgetitem2); - QTableWidgetItem *__qtablewidgetitem3 = new QTableWidgetItem(); - tableCart->setHorizontalHeaderItem(3, __qtablewidgetitem3); - QTableWidgetItem *__qtablewidgetitem4 = new QTableWidgetItem(); - tableCart->setHorizontalHeaderItem(4, __qtablewidgetitem4); - QTableWidgetItem *__qtablewidgetitem5 = new QTableWidgetItem(); - tableCart->setHorizontalHeaderItem(5, __qtablewidgetitem5); - tableCart->setObjectName(QString::fromUtf8("tableCart")); - - horizontalLayout_2->addWidget(tableCart); - - - verticalLayout->addLayout(horizontalLayout_2); - - horizontalLayout_3 = new QHBoxLayout(); - horizontalLayout_3->setObjectName(QString::fromUtf8("horizontalLayout_3")); - labelTotalPrice = new QLabel(PageCart); - labelTotalPrice->setObjectName(QString::fromUtf8("labelTotalPrice")); - - horizontalLayout_3->addWidget(labelTotalPrice); - - labelTotalPriceValue = new QLabel(PageCart); - labelTotalPriceValue->setObjectName(QString::fromUtf8("labelTotalPriceValue")); - - horizontalLayout_3->addWidget(labelTotalPriceValue); - - horizontalSpacer = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); - - horizontalLayout_3->addItem(horizontalSpacer); - - btnPay = new QPushButton(PageCart); - btnPay->setObjectName(QString::fromUtf8("btnPay")); - - horizontalLayout_3->addWidget(btnPay); - - horizontalLayout_3->setStretch(0, 2); - horizontalLayout_3->setStretch(1, 2); - horizontalLayout_3->setStretch(2, 5); - horizontalLayout_3->setStretch(3, 3); - - verticalLayout->addLayout(horizontalLayout_3); - - - verticalLayout_2->addLayout(verticalLayout); - - - retranslateUi(PageCart); - - QMetaObject::connectSlotsByName(PageCart); - } // setupUi - - void retranslateUi(QWidget *PageCart) - { - PageCart->setWindowTitle(QCoreApplication::translate("PageCart", "Form", nullptr)); - labelTitle->setText(QCoreApplication::translate("PageCart", "Shopping List", nullptr)); - btnGuideMode->setText(QCoreApplication::translate("PageCart", "\354\225\210\353\202\264\353\252\250\353\223\234", nullptr)); - QTableWidgetItem *___qtablewidgetitem = tableCart->horizontalHeaderItem(0); - ___qtablewidgetitem->setText(QCoreApplication::translate("PageCart", "\354\203\201\355\222\210\353\252\205", nullptr)); - QTableWidgetItem *___qtablewidgetitem1 = tableCart->horizontalHeaderItem(1); - ___qtablewidgetitem1->setText(QCoreApplication::translate("PageCart", "\352\260\234\354\210\230", nullptr)); - QTableWidgetItem *___qtablewidgetitem2 = tableCart->horizontalHeaderItem(2); - ___qtablewidgetitem2->setText(QCoreApplication::translate("PageCart", "+", nullptr)); - QTableWidgetItem *___qtablewidgetitem3 = tableCart->horizontalHeaderItem(3); - ___qtablewidgetitem3->setText(QCoreApplication::translate("PageCart", "-", nullptr)); - QTableWidgetItem *___qtablewidgetitem4 = tableCart->horizontalHeaderItem(4); - ___qtablewidgetitem4->setText(QCoreApplication::translate("PageCart", "\352\270\210\354\225\241", nullptr)); - QTableWidgetItem *___qtablewidgetitem5 = tableCart->horizontalHeaderItem(5); - ___qtablewidgetitem5->setText(QCoreApplication::translate("PageCart", "\354\202\255\354\240\234", nullptr)); - labelTotalPrice->setText(QCoreApplication::translate("PageCart", "\354\264\235\354\225\241 : ", nullptr)); - labelTotalPriceValue->setText(QCoreApplication::translate("PageCart", "0\354\233\220", nullptr)); - btnPay->setText(QCoreApplication::translate("PageCart", "\352\262\260\354\240\234", nullptr)); - } // retranslateUi - -}; - -namespace Ui { - class PageCart: public Ui_PageCart {}; -} // namespace Ui - -QT_END_NAMESPACE - -#endif // UI_PAGECART_H diff --git a/QTCart/build/Desktop-Debug/ui_pagewelcome.h b/QTCart/build/Desktop-Debug/ui_pagewelcome.h deleted file mode 100644 index 22d29bf..0000000 --- a/QTCart/build/Desktop-Debug/ui_pagewelcome.h +++ /dev/null @@ -1,100 +0,0 @@ -/******************************************************************************** -** Form generated from reading UI file 'pagewelcome.ui' -** -** Created by: Qt User Interface Compiler version 6.2.4 -** -** WARNING! All changes made in this file will be lost when recompiling UI file! -********************************************************************************/ - -#ifndef UI_PAGEWELCOME_H -#define UI_PAGEWELCOME_H - -#include -#include -#include -#include -#include -#include -#include - -QT_BEGIN_NAMESPACE - -class Ui_PageWelcome -{ -public: - QVBoxLayout *verticalLayout_2; - QVBoxLayout *verticalLayout; - QSpacerItem *verticalSpacer; - QLabel *label; - QSpacerItem *verticalSpacer_2; - QPushButton *pPBStart; - QSpacerItem *verticalSpacer_3; - - void setupUi(QWidget *PageWelcome) - { - if (PageWelcome->objectName().isEmpty()) - PageWelcome->setObjectName(QString::fromUtf8("PageWelcome")); - PageWelcome->resize(612, 416); - verticalLayout_2 = new QVBoxLayout(PageWelcome); - verticalLayout_2->setObjectName(QString::fromUtf8("verticalLayout_2")); - verticalLayout = new QVBoxLayout(); - verticalLayout->setObjectName(QString::fromUtf8("verticalLayout")); - verticalSpacer = new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding); - - verticalLayout->addItem(verticalSpacer); - - label = new QLabel(PageWelcome); - label->setObjectName(QString::fromUtf8("label")); - QFont font; - font.setPointSize(30); - font.setBold(true); - label->setFont(font); - label->setAlignment(Qt::AlignCenter); - - verticalLayout->addWidget(label); - - verticalSpacer_2 = new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding); - - verticalLayout->addItem(verticalSpacer_2); - - pPBStart = new QPushButton(PageWelcome); - pPBStart->setObjectName(QString::fromUtf8("pPBStart")); - pPBStart->setIconSize(QSize(250, 250)); - pPBStart->setCheckable(false); - - verticalLayout->addWidget(pPBStart); - - verticalSpacer_3 = new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding); - - verticalLayout->addItem(verticalSpacer_3); - - verticalLayout->setStretch(0, 1); - verticalLayout->setStretch(1, 4); - verticalLayout->setStretch(2, 1); - verticalLayout->setStretch(3, 4); - verticalLayout->setStretch(4, 1); - - verticalLayout_2->addLayout(verticalLayout); - - - retranslateUi(PageWelcome); - - QMetaObject::connectSlotsByName(PageWelcome); - } // setupUi - - void retranslateUi(QWidget *PageWelcome) - { - PageWelcome->setWindowTitle(QCoreApplication::translate("PageWelcome", "Form", nullptr)); - label->setText(QCoreApplication::translate("PageWelcome", "QT CART", nullptr)); - pPBStart->setText(QCoreApplication::translate("PageWelcome", "START", nullptr)); - } // retranslateUi - -}; - -namespace Ui { - class PageWelcome: public Ui_PageWelcome {}; -} // namespace Ui - -QT_END_NAMESPACE - -#endif // UI_PAGEWELCOME_H diff --git a/QTCart/main.cpp b/QTCart/main.cpp deleted file mode 100644 index a0f002b..0000000 --- a/QTCart/main.cpp +++ /dev/null @@ -1,11 +0,0 @@ -#include "mainwidget.h" - -#include - -int main(int argc, char *argv[]) -{ - QApplication a(argc, argv); - MainWidget w; - w.show(); - return a.exec(); -} diff --git a/QTCart/main.o b/QTCart/main.o deleted file mode 100644 index 6477c8a..0000000 Binary files a/QTCart/main.o and /dev/null differ diff --git a/QTCart/mainwidget.cpp b/QTCart/mainwidget.cpp deleted file mode 100644 index 141fc2d..0000000 --- a/QTCart/mainwidget.cpp +++ /dev/null @@ -1,34 +0,0 @@ -#include "mainwidget.h" -#include "ui_mainwidget.h" -#include "pagewelcome.h" -#include "pagecart.h" - - -MainWidget::MainWidget(QWidget *parent) - : QWidget(parent) - , ui(new Ui::MainWidget) -{ - ui->setupUi(this); - - // 페이지 위젯들 생성 - pPageWelcome = new PageWelcome(this); - pPageCart = new PageCart(this); - - // stackedWidget register - ui->pstackedWidget->addWidget(pPageWelcome); - ui->pstackedWidget->addWidget(pPageCart); - - // first UI -> PageWelcome - ui->pstackedWidget->setCurrentWidget(pPageWelcome); - - connect(pPageWelcome, SIGNAL(startClicked()), this, SLOT(on_pPBStartClicked())); -} - -MainWidget::~MainWidget() -{ - delete ui; -} - -void MainWidget::on_pPBStartClicked(){ - ui->pstackedWidget->setCurrentWidget(pPageCart); -} diff --git a/QTCart/mainwidget.h b/QTCart/mainwidget.h deleted file mode 100644 index 94f2e2b..0000000 --- a/QTCart/mainwidget.h +++ /dev/null @@ -1,31 +0,0 @@ -#ifndef MAINWIDGET_H -#define MAINWIDGET_H - -#include -#include "pagewelcome.h" -#include "pagecart.h" - -QT_BEGIN_NAMESPACE -namespace Ui { -class MainWidget; -} -QT_END_NAMESPACE - -class MainWidget : public QWidget -{ - Q_OBJECT - -public: - MainWidget(QWidget *parent = nullptr); - ~MainWidget(); - -private: - Ui::MainWidget *ui; - PageWelcome *pPageWelcome; - PageCart *pPageCart; - -private slots: - void on_pPBStartClicked(); - -}; -#endif // MAINWIDGET_H diff --git a/QTCart/mainwidget.o b/QTCart/mainwidget.o deleted file mode 100644 index 99b89ac..0000000 Binary files a/QTCart/mainwidget.o and /dev/null differ diff --git a/QTCart/moc_mainwidget.cpp b/QTCart/moc_mainwidget.cpp deleted file mode 100644 index 3786cdc..0000000 --- a/QTCart/moc_mainwidget.cpp +++ /dev/null @@ -1,102 +0,0 @@ -/**************************************************************************** -** Meta object code from reading C++ file 'mainwidget.h' -** -** Created by: The Qt Meta Object Compiler version 68 (Qt 6.8.3) -** -** WARNING! All changes made in this file will be lost! -*****************************************************************************/ - -#include "mainwidget.h" -#include - -#include - -#include - - -#include -#if !defined(Q_MOC_OUTPUT_REVISION) -#error "The header file 'mainwidget.h' doesn't include ." -#elif Q_MOC_OUTPUT_REVISION != 68 -#error "This file was generated using the moc from 6.8.3. It" -#error "cannot be used with the include files from this version of Qt." -#error "(The moc has changed too much.)" -#endif - -#ifndef Q_CONSTINIT -#define Q_CONSTINIT -#endif - -QT_WARNING_PUSH -QT_WARNING_DISABLE_DEPRECATED -QT_WARNING_DISABLE_GCC("-Wuseless-cast") -namespace { -struct qt_meta_tag_ZN10MainWidgetE_t {}; -} // unnamed namespace - - -#ifdef QT_MOC_HAS_STRINGDATA -static constexpr auto qt_meta_stringdata_ZN10MainWidgetE = QtMocHelpers::stringData( - "MainWidget" -); -#else // !QT_MOC_HAS_STRINGDATA -#error "qtmochelpers.h not found or too old." -#endif // !QT_MOC_HAS_STRINGDATA - -Q_CONSTINIT static const uint qt_meta_data_ZN10MainWidgetE[] = { - - // content: - 12, // revision - 0, // classname - 0, 0, // classinfo - 0, 0, // methods - 0, 0, // properties - 0, 0, // enums/sets - 0, 0, // constructors - 0, // flags - 0, // signalCount - - 0 // eod -}; - -Q_CONSTINIT const QMetaObject MainWidget::staticMetaObject = { { - QMetaObject::SuperData::link(), - qt_meta_stringdata_ZN10MainWidgetE.offsetsAndSizes, - qt_meta_data_ZN10MainWidgetE, - qt_static_metacall, - nullptr, - qt_incomplete_metaTypeArray - >, - nullptr -} }; - -void MainWidget::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) -{ - auto *_t = static_cast(_o); - (void)_t; - (void)_c; - (void)_id; - (void)_a; -} - -const QMetaObject *MainWidget::metaObject() const -{ - return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; -} - -void *MainWidget::qt_metacast(const char *_clname) -{ - if (!_clname) return nullptr; - if (!strcmp(_clname, qt_meta_stringdata_ZN10MainWidgetE.stringdata0)) - return static_cast(this); - return QWidget::qt_metacast(_clname); -} - -int MainWidget::qt_metacall(QMetaObject::Call _c, int _id, void **_a) -{ - _id = QWidget::qt_metacall(_c, _id, _a); - return _id; -} -QT_WARNING_POP diff --git a/QTCart/moc_mainwidget.o b/QTCart/moc_mainwidget.o deleted file mode 100644 index e92103e..0000000 Binary files a/QTCart/moc_mainwidget.o and /dev/null differ diff --git a/QTCart/moc_pagewelcome.cpp b/QTCart/moc_pagewelcome.cpp deleted file mode 100644 index 77230a0..0000000 --- a/QTCart/moc_pagewelcome.cpp +++ /dev/null @@ -1,142 +0,0 @@ -/**************************************************************************** -** Meta object code from reading C++ file 'pagewelcome.h' -** -** Created by: The Qt Meta Object Compiler version 68 (Qt 6.8.3) -** -** WARNING! All changes made in this file will be lost! -*****************************************************************************/ - -#include "pagewelcome.h" -#include - -#include - -#include - - -#include -#if !defined(Q_MOC_OUTPUT_REVISION) -#error "The header file 'pagewelcome.h' doesn't include ." -#elif Q_MOC_OUTPUT_REVISION != 68 -#error "This file was generated using the moc from 6.8.3. It" -#error "cannot be used with the include files from this version of Qt." -#error "(The moc has changed too much.)" -#endif - -#ifndef Q_CONSTINIT -#define Q_CONSTINIT -#endif - -QT_WARNING_PUSH -QT_WARNING_DISABLE_DEPRECATED -QT_WARNING_DISABLE_GCC("-Wuseless-cast") -namespace { -struct qt_meta_tag_ZN11PageWelcomeE_t {}; -} // unnamed namespace - - -#ifdef QT_MOC_HAS_STRINGDATA -static constexpr auto qt_meta_stringdata_ZN11PageWelcomeE = QtMocHelpers::stringData( - "PageWelcome", - "startClicked", - "" -); -#else // !QT_MOC_HAS_STRINGDATA -#error "qtmochelpers.h not found or too old." -#endif // !QT_MOC_HAS_STRINGDATA - -Q_CONSTINIT static const uint qt_meta_data_ZN11PageWelcomeE[] = { - - // content: - 12, // revision - 0, // classname - 0, 0, // classinfo - 1, 14, // methods - 0, 0, // properties - 0, 0, // enums/sets - 0, 0, // constructors - 0, // flags - 1, // signalCount - - // signals: name, argc, parameters, tag, flags, initial metatype offsets - 1, 0, 20, 2, 0x06, 1 /* Public */, - - // signals: parameters - QMetaType::Void, - - 0 // eod -}; - -Q_CONSTINIT const QMetaObject PageWelcome::staticMetaObject = { { - QMetaObject::SuperData::link(), - qt_meta_stringdata_ZN11PageWelcomeE.offsetsAndSizes, - qt_meta_data_ZN11PageWelcomeE, - qt_static_metacall, - nullptr, - qt_incomplete_metaTypeArray, - // method 'startClicked' - QtPrivate::TypeAndForceComplete - >, - nullptr -} }; - -void PageWelcome::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) -{ - auto *_t = static_cast(_o); - if (_c == QMetaObject::InvokeMetaMethod) { - switch (_id) { - case 0: _t->startClicked(); break; - default: ; - } - } - if (_c == QMetaObject::IndexOfMethod) { - int *result = reinterpret_cast(_a[0]); - { - using _q_method_type = void (PageWelcome::*)(); - if (_q_method_type _q_method = &PageWelcome::startClicked; *reinterpret_cast<_q_method_type *>(_a[1]) == _q_method) { - *result = 0; - return; - } - } - } -} - -const QMetaObject *PageWelcome::metaObject() const -{ - return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; -} - -void *PageWelcome::qt_metacast(const char *_clname) -{ - if (!_clname) return nullptr; - if (!strcmp(_clname, qt_meta_stringdata_ZN11PageWelcomeE.stringdata0)) - return static_cast(this); - return QWidget::qt_metacast(_clname); -} - -int PageWelcome::qt_metacall(QMetaObject::Call _c, int _id, void **_a) -{ - _id = QWidget::qt_metacall(_c, _id, _a); - if (_id < 0) - return _id; - if (_c == QMetaObject::InvokeMetaMethod) { - if (_id < 1) - qt_static_metacall(this, _c, _id, _a); - _id -= 1; - } - if (_c == QMetaObject::RegisterMethodArgumentMetaType) { - if (_id < 1) - *reinterpret_cast(_a[0]) = QMetaType(); - _id -= 1; - } - return _id; -} - -// SIGNAL 0 -void PageWelcome::startClicked() -{ - QMetaObject::activate(this, &staticMetaObject, 0, nullptr); -} -QT_WARNING_POP diff --git a/QTCart/moc_pagewelcome.o b/QTCart/moc_pagewelcome.o deleted file mode 100644 index 5282127..0000000 Binary files a/QTCart/moc_pagewelcome.o and /dev/null differ diff --git a/QTCart/moc_predefs.h b/QTCart/moc_predefs.h deleted file mode 100644 index 6f841a0..0000000 --- a/QTCart/moc_predefs.h +++ /dev/null @@ -1,428 +0,0 @@ -#define __SSP_STRONG__ 3 -#define __DBL_MIN_EXP__ (-1021) -#define __cpp_attributes 200809L -#define __cpp_nontype_template_parameter_auto 201606L -#define __UINT_LEAST16_MAX__ 0xffff -#define __ATOMIC_ACQUIRE 2 -#define __FLT128_MAX_10_EXP__ 4932 -#define __FLT_MIN__ 1.17549435082228750796873653722224568e-38F -#define __GCC_IEC_559_COMPLEX 2 -#define __cpp_aggregate_nsdmi 201304L -#define __UINT_LEAST8_TYPE__ unsigned char -#define __SIZEOF_FLOAT80__ 16 -#define __INTMAX_C(c) c ## L -#define __CHAR_BIT__ 8 -#define __UINT8_MAX__ 0xff -#define __SCHAR_WIDTH__ 8 -#define __WINT_MAX__ 0xffffffffU -#define __FLT32_MIN_EXP__ (-125) -#define __cpp_static_assert 201411L -#define __ORDER_LITTLE_ENDIAN__ 1234 -#define __SIZE_MAX__ 0xffffffffffffffffUL -#define __WCHAR_MAX__ 0x7fffffff -#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1 -#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1 -#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1 -#define __DBL_DENORM_MIN__ double(4.94065645841246544176568792868221372e-324L) -#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1 -#define __GCC_ATOMIC_CHAR_LOCK_FREE 2 -#define __GCC_IEC_559 2 -#define __FLT32X_DECIMAL_DIG__ 17 -#define __FLT_EVAL_METHOD__ 0 -#define __cpp_binary_literals 201304L -#define __FLT64_DECIMAL_DIG__ 17 -#define __CET__ 3 -#define __cpp_noexcept_function_type 201510L -#define __GCC_ATOMIC_CHAR32_T_LOCK_FREE 2 -#define __cpp_variadic_templates 200704L -#define __UINT_FAST64_MAX__ 0xffffffffffffffffUL -#define __SIG_ATOMIC_TYPE__ int -#define __DBL_MIN_10_EXP__ (-307) -#define __FINITE_MATH_ONLY__ 0 -#define __cpp_variable_templates 201304L -#define __FLT32X_MAX_EXP__ 1024 -#define __FLT32_HAS_DENORM__ 1 -#define __UINT_FAST8_MAX__ 0xff -#define __cpp_rvalue_reference 200610L -#define __cpp_nested_namespace_definitions 201411L -#define __DEC64_MAX_EXP__ 385 -#define __INT8_C(c) c -#define __INT_LEAST8_WIDTH__ 8 -#define __cpp_variadic_using 201611L -#define __UINT_LEAST64_MAX__ 0xffffffffffffffffUL -#define __INT_LEAST8_MAX__ 0x7f -#define __cpp_capture_star_this 201603L -#define __SHRT_MAX__ 0x7fff -#define __LDBL_MAX__ 1.18973149535723176502126385303097021e+4932L -#define __FLT64X_MAX_10_EXP__ 4932 -#define __cpp_if_constexpr 201606L -#define __LDBL_IS_IEC_60559__ 2 -#define __FLT64X_HAS_QUIET_NAN__ 1 -#define __UINT_LEAST8_MAX__ 0xff -#define __GCC_ATOMIC_BOOL_LOCK_FREE 2 -#define __FLT128_DENORM_MIN__ 6.47517511943802511092443895822764655e-4966F128 -#define __UINTMAX_TYPE__ long unsigned int -#define __linux 1 -#define __DEC32_EPSILON__ 1E-6DF -#define __FLT_EVAL_METHOD_TS_18661_3__ 0 -#define __OPTIMIZE__ 1 -#define __unix 1 -#define __UINT32_MAX__ 0xffffffffU -#define __GXX_EXPERIMENTAL_CXX0X__ 1 -#define __FLT128_MIN_EXP__ (-16381) -#define __WINT_MIN__ 0U -#define __FLT128_MIN_10_EXP__ (-4931) -#define __FLT32X_IS_IEC_60559__ 2 -#define __INT_LEAST16_WIDTH__ 16 -#define __SCHAR_MAX__ 0x7f -#define __FLT128_MANT_DIG__ 113 -#define __WCHAR_MIN__ (-__WCHAR_MAX__ - 1) -#define __INT64_C(c) c ## L -#define __GCC_ATOMIC_POINTER_LOCK_FREE 2 -#define _FORTIFY_SOURCE 2 -#define __FLT32X_MANT_DIG__ 53 -#define __GCC_ATOMIC_CHAR16_T_LOCK_FREE 2 -#define __cpp_aligned_new 201606L -#define __USER_LABEL_PREFIX__ -#define __FLT32_MAX_10_EXP__ 38 -#define __FLT64X_EPSILON__ 1.08420217248550443400745280086994171e-19F64x -#define __STDC_HOSTED__ 1 -#define __DEC64_MIN_EXP__ (-382) -#define __cpp_decltype_auto 201304L -#define __DBL_DIG__ 15 -#define __FLT32_DIG__ 6 -#define __FLT_EPSILON__ 1.19209289550781250000000000000000000e-7F -#define __GXX_WEAK__ 1 -#define __SHRT_WIDTH__ 16 -#define __FLT32_IS_IEC_60559__ 2 -#define __LDBL_MIN__ 3.36210314311209350626267781732175260e-4932L -#define __DBL_IS_IEC_60559__ 2 -#define __DEC32_MAX__ 9.999999E96DF -#define __cpp_threadsafe_static_init 200806L -#define __cpp_enumerator_attributes 201411L -#define __FLT64X_DENORM_MIN__ 3.64519953188247460252840593361941982e-4951F64x -#define __FLT32X_HAS_INFINITY__ 1 -#define __INT32_MAX__ 0x7fffffff -#define __unix__ 1 -#define __INT_WIDTH__ 32 -#define __SIZEOF_LONG__ 8 -#define __STDC_IEC_559__ 1 -#define __STDC_ISO_10646__ 201706L -#define __UINT16_C(c) c -#define __DECIMAL_DIG__ 21 -#define __STDC_IEC_559_COMPLEX__ 1 -#define __FLT64_EPSILON__ 2.22044604925031308084726333618164062e-16F64 -#define __gnu_linux__ 1 -#define __INT16_MAX__ 0x7fff -#define __FLT64_MIN_EXP__ (-1021) -#define __FLT64X_MIN_10_EXP__ (-4931) -#define __LDBL_HAS_QUIET_NAN__ 1 -#define __FLT64_MANT_DIG__ 53 -#define __FLT64X_MANT_DIG__ 64 -#define __GNUC__ 11 -#define __GXX_RTTI 1 -#define __MMX__ 1 -#define __FLT_HAS_DENORM__ 1 -#define __SIZEOF_LONG_DOUBLE__ 16 -#define __BIGGEST_ALIGNMENT__ 16 -#define __STDC_UTF_16__ 1 -#define __FLT64_MAX_10_EXP__ 308 -#define __cpp_delegating_constructors 200604L -#define __FLT32_HAS_INFINITY__ 1 -#define __DBL_MAX__ double(1.79769313486231570814527423731704357e+308L) -#define __cpp_raw_strings 200710L -#define __INT_FAST32_MAX__ 0x7fffffffffffffffL -#define __DBL_HAS_INFINITY__ 1 -#define __SIZEOF_FLOAT__ 4 -#define __HAVE_SPECULATION_SAFE_VALUE 1 -#define __cpp_fold_expressions 201603L -#define __DEC32_MIN_EXP__ (-94) -#define __INTPTR_WIDTH__ 64 -#define __FLT64X_HAS_INFINITY__ 1 -#define __UINT_LEAST32_MAX__ 0xffffffffU -#define __FLT32X_HAS_DENORM__ 1 -#define __INT_FAST16_TYPE__ long int -#define __MMX_WITH_SSE__ 1 -#define __LDBL_HAS_DENORM__ 1 -#define __cplusplus 201703L -#define __cpp_ref_qualifiers 200710L -#define __DEC32_MIN__ 1E-95DF -#define __DEPRECATED 1 -#define __cpp_rvalue_references 200610L -#define __DBL_MAX_EXP__ 1024 -#define __WCHAR_WIDTH__ 32 -#define __FLT32_MAX__ 3.40282346638528859811704183484516925e+38F32 -#define __DEC128_EPSILON__ 1E-33DL -#define __SSE2_MATH__ 1 -#define __ATOMIC_HLE_RELEASE 131072 -#define __PTRDIFF_MAX__ 0x7fffffffffffffffL -#define __amd64 1 -#define __ATOMIC_HLE_ACQUIRE 65536 -#define __GNUG__ 11 -#define __LONG_LONG_MAX__ 0x7fffffffffffffffLL -#define __SIZEOF_SIZE_T__ 8 -#define __cpp_nsdmi 200809L -#define __FLT64X_MIN_EXP__ (-16381) -#define __SIZEOF_WINT_T__ 4 -#define __LONG_LONG_WIDTH__ 64 -#define __cpp_initializer_lists 200806L -#define __FLT32_MAX_EXP__ 128 -#define __cpp_hex_float 201603L -#define __GXX_ABI_VERSION 1016 -#define __FLT128_HAS_INFINITY__ 1 -#define __FLT_MIN_EXP__ (-125) -#define __GCC_HAVE_DWARF2_CFI_ASM 1 -#define __x86_64 1 -#define __cpp_lambdas 200907L -#define __INT_FAST64_TYPE__ long int -#define __FLT64_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F64 -#define __cpp_template_auto 201606L -#define __DBL_MIN__ double(2.22507385850720138309023271733240406e-308L) -#define __FLT128_EPSILON__ 1.92592994438723585305597794258492732e-34F128 -#define __FLT64X_NORM_MAX__ 1.18973149535723176502126385303097021e+4932F64x -#define __SIZEOF_POINTER__ 8 -#define __LP64__ 1 -#define __DBL_HAS_QUIET_NAN__ 1 -#define __FLT32X_EPSILON__ 2.22044604925031308084726333618164062e-16F32x -#define __DECIMAL_BID_FORMAT__ 1 -#define __FLT64_MIN_10_EXP__ (-307) -#define __FLT64X_DECIMAL_DIG__ 21 -#define __DEC128_MIN__ 1E-6143DL -#define __REGISTER_PREFIX__ -#define __UINT16_MAX__ 0xffff -#define __LDBL_HAS_INFINITY__ 1 -#define __FLT32_MIN__ 1.17549435082228750796873653722224568e-38F32 -#define __UINT8_TYPE__ unsigned char -#define __FLT_DIG__ 6 -#define __DEC_EVAL_METHOD__ 2 -#define __DEC128_MAX__ 9.999999999999999999999999999999999E6144DL -#define __FLT_MANT_DIG__ 24 -#define __LDBL_DECIMAL_DIG__ 21 -#define __VERSION__ "11.4.0" -#define __UINT64_C(c) c ## UL -#define __cpp_unicode_characters 201411L -#define _STDC_PREDEF_H 1 -#define __INT_LEAST32_MAX__ 0x7fffffff -#define __GCC_ATOMIC_INT_LOCK_FREE 2 -#define __FLT128_MAX_EXP__ 16384 -#define __FLT32_MANT_DIG__ 24 -#define __FLOAT_WORD_ORDER__ __ORDER_LITTLE_ENDIAN__ -#define __STDC_IEC_60559_COMPLEX__ 201404L -#define __cpp_aggregate_bases 201603L -#define __FLT128_HAS_DENORM__ 1 -#define __FLT32_DECIMAL_DIG__ 9 -#define __FLT128_DIG__ 33 -#define __INT32_C(c) c -#define __DEC64_EPSILON__ 1E-15DD -#define __ORDER_PDP_ENDIAN__ 3412 -#define __DEC128_MIN_EXP__ (-6142) -#define __INT_FAST32_TYPE__ long int -#define __UINT_LEAST16_TYPE__ short unsigned int -#define unix 1 -#define __DBL_HAS_DENORM__ 1 -#define __cpp_rtti 199711L -#define __SIZE_TYPE__ long unsigned int -#define __UINT64_MAX__ 0xffffffffffffffffUL -#define __FLT_IS_IEC_60559__ 2 -#define __GNUC_WIDE_EXECUTION_CHARSET_NAME "UTF-32LE" -#define __FLT64X_DIG__ 18 -#define __INT8_TYPE__ signed char -#define __cpp_digit_separators 201309L -#define __ELF__ 1 -#define __GCC_ASM_FLAG_OUTPUTS__ 1 -#define __UINT32_TYPE__ unsigned int -#define __FLT_RADIX__ 2 -#define __INT_LEAST16_TYPE__ short int -#define __LDBL_EPSILON__ 1.08420217248550443400745280086994171e-19L -#define __UINTMAX_C(c) c ## UL -#define __GLIBCXX_BITSIZE_INT_N_0 128 -#define __k8 1 -#define __FLT32X_MIN__ 2.22507385850720138309023271733240406e-308F32x -#define __SIG_ATOMIC_MAX__ 0x7fffffff -#define __GCC_ATOMIC_WCHAR_T_LOCK_FREE 2 -#define __STDC_IEC_60559_BFP__ 201404L -#define __SIZEOF_PTRDIFF_T__ 8 -#define __LDBL_DIG__ 18 -#define __FLT64_IS_IEC_60559__ 2 -#define __x86_64__ 1 -#define __FLT32X_MIN_EXP__ (-1021) -#define __DEC32_SUBNORMAL_MIN__ 0.000001E-95DF -#define __INT_FAST16_MAX__ 0x7fffffffffffffffL -#define __FLT64_DIG__ 15 -#define __UINT_FAST32_MAX__ 0xffffffffffffffffUL -#define __UINT_LEAST64_TYPE__ long unsigned int -#define __FLT_HAS_QUIET_NAN__ 1 -#define __FLT_MAX_10_EXP__ 38 -#define __LONG_MAX__ 0x7fffffffffffffffL -#define __FLT64X_HAS_DENORM__ 1 -#define __DEC128_SUBNORMAL_MIN__ 0.000000000000000000000000000000001E-6143DL -#define __FLT_HAS_INFINITY__ 1 -#define __GNUC_EXECUTION_CHARSET_NAME "UTF-8" -#define __cpp_unicode_literals 200710L -#define __UINT_FAST16_TYPE__ long unsigned int -#define __DEC64_MAX__ 9.999999999999999E384DD -#define __INT_FAST32_WIDTH__ 64 -#define __CHAR16_TYPE__ short unsigned int -#define __PRAGMA_REDEFINE_EXTNAME 1 -#define __SIZE_WIDTH__ 64 -#define __SEG_FS 1 -#define __INT_LEAST16_MAX__ 0x7fff -#define __DEC64_MANT_DIG__ 16 -#define __INT64_MAX__ 0x7fffffffffffffffL -#define __SEG_GS 1 -#define __FLT32_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F32 -#define __SIG_ATOMIC_WIDTH__ 32 -#define __INT_LEAST64_TYPE__ long int -#define __INT16_TYPE__ short int -#define __INT_LEAST8_TYPE__ signed char -#define __cpp_structured_bindings 201606L -#define __SIZEOF_INT__ 4 -#define __DEC32_MAX_EXP__ 97 -#define __INT_FAST8_MAX__ 0x7f -#define __FLT128_MAX__ 1.18973149535723176508575932662800702e+4932F128 -#define __INTPTR_MAX__ 0x7fffffffffffffffL -#define __cpp_sized_deallocation 201309L -#define __cpp_guaranteed_copy_elision 201606L -#define linux 1 -#define __FLT64_HAS_QUIET_NAN__ 1 -#define __FLT32_MIN_10_EXP__ (-37) -#define __EXCEPTIONS 1 -#define __PTRDIFF_WIDTH__ 64 -#define __LDBL_MANT_DIG__ 64 -#define __cpp_range_based_for 201603L -#define __FLT64_HAS_INFINITY__ 1 -#define __FLT64X_MAX__ 1.18973149535723176502126385303097021e+4932F64x -#define __STDCPP_DEFAULT_NEW_ALIGNMENT__ 16 -#define __SIG_ATOMIC_MIN__ (-__SIG_ATOMIC_MAX__ - 1) -#define __code_model_small__ 1 -#define __GCC_ATOMIC_LONG_LOCK_FREE 2 -#define __cpp_nontype_template_args 201411L -#define __DEC32_MANT_DIG__ 7 -#define __cpp_return_type_deduction 201304L -#define __k8__ 1 -#define __INTPTR_TYPE__ long int -#define __UINT16_TYPE__ short unsigned int -#define __WCHAR_TYPE__ int -#define __pic__ 2 -#define __UINTPTR_MAX__ 0xffffffffffffffffUL -#define __INT_FAST64_WIDTH__ 64 -#define __cpp_decltype 200707L -#define __INT_FAST64_MAX__ 0x7fffffffffffffffL -#define __GCC_ATOMIC_TEST_AND_SET_TRUEVAL 1 -#define __FLT_NORM_MAX__ 3.40282346638528859811704183484516925e+38F -#define __FLT64X_MAX_EXP__ 16384 -#define __UINT_FAST64_TYPE__ long unsigned int -#define __cpp_inline_variables 201606L -#define __INT_MAX__ 0x7fffffff -#define __linux__ 1 -#define __INT64_TYPE__ long int -#define __FLT_MAX_EXP__ 128 -#define __ORDER_BIG_ENDIAN__ 4321 -#define __DBL_MANT_DIG__ 53 -#define __cpp_inheriting_constructors 201511L -#define __SIZEOF_FLOAT128__ 16 -#define __INT_LEAST64_MAX__ 0x7fffffffffffffffL -#define __DEC64_MIN__ 1E-383DD -#define __WINT_TYPE__ unsigned int -#define __UINT_LEAST32_TYPE__ unsigned int -#define __SIZEOF_SHORT__ 2 -#define __FLT32_NORM_MAX__ 3.40282346638528859811704183484516925e+38F32 -#define __SSE__ 1 -#define __LDBL_MIN_EXP__ (-16381) -#define __FLT64_MAX__ 1.79769313486231570814527423731704357e+308F64 -#define __amd64__ 1 -#define __WINT_WIDTH__ 32 -#define __INT_LEAST64_WIDTH__ 64 -#define __LDBL_MAX_EXP__ 16384 -#define __FLT32X_MAX_10_EXP__ 308 -#define __SIZEOF_INT128__ 16 -#define __FLT64X_IS_IEC_60559__ 2 -#define __LDBL_MAX_10_EXP__ 4932 -#define __ATOMIC_RELAXED 0 -#define __DBL_EPSILON__ double(2.22044604925031308084726333618164062e-16L) -#define __FLT128_MIN__ 3.36210314311209350626267781732175260e-4932F128 -#define _LP64 1 -#define __UINT8_C(c) c -#define __FLT64_MAX_EXP__ 1024 -#define __INT_LEAST32_TYPE__ int -#define __SIZEOF_WCHAR_T__ 4 -#define __GNUC_PATCHLEVEL__ 0 -#define __FLT128_NORM_MAX__ 1.18973149535723176508575932662800702e+4932F128 -#define __FLT64_NORM_MAX__ 1.79769313486231570814527423731704357e+308F64 -#define __FLT128_HAS_QUIET_NAN__ 1 -#define __INTMAX_MAX__ 0x7fffffffffffffffL -#define __INT_FAST8_TYPE__ signed char -#define __cpp_namespace_attributes 201411L -#define __FLT64X_MIN__ 3.36210314311209350626267781732175260e-4932F64x -#define __STDCPP_THREADS__ 1 -#define __GNUC_STDC_INLINE__ 1 -#define __FLT64_HAS_DENORM__ 1 -#define __FLT32_EPSILON__ 1.19209289550781250000000000000000000e-7F32 -#define __DBL_DECIMAL_DIG__ 17 -#define __STDC_UTF_32__ 1 -#define __INT_FAST8_WIDTH__ 8 -#define __FXSR__ 1 -#define __FLT32X_MAX__ 1.79769313486231570814527423731704357e+308F32x -#define __DBL_NORM_MAX__ double(1.79769313486231570814527423731704357e+308L) -#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__ -#define __INTMAX_WIDTH__ 64 -#define __cpp_runtime_arrays 198712L -#define __UINT64_TYPE__ long unsigned int -#define __UINT32_C(c) c ## U -#define __cpp_alias_templates 200704L -#define __FLT_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F -#define __FLT128_IS_IEC_60559__ 2 -#define __INT8_MAX__ 0x7f -#define __LONG_WIDTH__ 64 -#define __PIC__ 2 -#define __UINT_FAST32_TYPE__ long unsigned int -#define __FLT32X_NORM_MAX__ 1.79769313486231570814527423731704357e+308F32x -#define __CHAR32_TYPE__ unsigned int -#define __FLT_MAX__ 3.40282346638528859811704183484516925e+38F -#define __cpp_constexpr 201603L -#define __SSE2__ 1 -#define __cpp_deduction_guides 201703L -#define __INT32_TYPE__ int -#define __SIZEOF_DOUBLE__ 8 -#define __cpp_exceptions 199711L -#define __FLT_MIN_10_EXP__ (-37) -#define __FLT64_MIN__ 2.22507385850720138309023271733240406e-308F64 -#define __INT_LEAST32_WIDTH__ 32 -#define __INTMAX_TYPE__ long int -#define __DEC128_MAX_EXP__ 6145 -#define __FLT32X_HAS_QUIET_NAN__ 1 -#define __ATOMIC_CONSUME 1 -#define __GNUC_MINOR__ 4 -#define __GLIBCXX_TYPE_INT_N_0 __int128 -#define __INT_FAST16_WIDTH__ 64 -#define __UINTMAX_MAX__ 0xffffffffffffffffUL -#define __FLT32X_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F32x -#define __cpp_template_template_args 201611L -#define __DBL_MAX_10_EXP__ 308 -#define __LDBL_DENORM_MIN__ 3.64519953188247460252840593361941982e-4951L -#define __INT16_C(c) c -#define __STDC__ 1 -#define __FLT32X_DIG__ 15 -#define __PTRDIFF_TYPE__ long int -#define __ATOMIC_SEQ_CST 5 -#define __FLT32X_MIN_10_EXP__ (-307) -#define __UINTPTR_TYPE__ long unsigned int -#define __DEC64_SUBNORMAL_MIN__ 0.000000000000001E-383DD -#define __DEC128_MANT_DIG__ 34 -#define __LDBL_MIN_10_EXP__ (-4931) -#define __cpp_generic_lambdas 201304L -#define __SSE_MATH__ 1 -#define __SIZEOF_LONG_LONG__ 8 -#define __cpp_user_defined_literals 200809L -#define __FLT128_DECIMAL_DIG__ 36 -#define __GCC_ATOMIC_LLONG_LOCK_FREE 2 -#define __FLT32_HAS_QUIET_NAN__ 1 -#define __FLT_DECIMAL_DIG__ 9 -#define __UINT_FAST16_MAX__ 0xffffffffffffffffUL -#define __LDBL_NORM_MAX__ 1.18973149535723176502126385303097021e+4932L -#define __GCC_ATOMIC_SHORT_LOCK_FREE 2 -#define __UINT_FAST8_TYPE__ unsigned char -#define _GNU_SOURCE 1 -#define __cpp_init_captures 201304L -#define __ATOMIC_ACQ_REL 4 -#define __ATOMIC_RELEASE 3 diff --git a/QTCart/pagecart.cpp b/QTCart/pagecart.cpp deleted file mode 100644 index a812c21..0000000 --- a/QTCart/pagecart.cpp +++ /dev/null @@ -1,284 +0,0 @@ -#include "pagecart.h" -#include "ui_pagecart.h" - -#include -#include - -PageCart::PageCart(QWidget *parent) : - QWidget(parent), - ui(new Ui::PageCart) -{ - ui->setupUi(this); - - // 더미 데이터 - initDummyItems(); - - - qDebug() << "[PageCart] constructor called"; - InitItemDb(); // ⬅ 상품 DB 세팅 - - // 1) 바코드 입력용 숨겨진 QLineEdit 생성 - m_editBarcode = new QLineEdit(this); - m_editBarcode->setVisible(false); // 화면에 안 보이게 - m_editBarcode->setFocusPolicy(Qt::StrongFocus); - m_editBarcode->setFocus(); // Cart 페이지 열리면 포커스 여기로 - - connect(m_editBarcode, SIGNAL(returnPressed()), this, SLOT(onBarcodeEntered())); - - - // 테이블 컬럼은 UI에 이미 설정됨 - ui->tableCart->setColumnCount(6); - - updateTotal(); -} - -PageCart::~PageCart() -{ - delete ui; -} - -// ---------------------------------------- -// 더미 데이터 3개 생성 -// ---------------------------------------- -void PageCart::initDummyItems() -{ - QStringList names = {"사과", "바나나", "우유"}; - QVector prices = {3000, 1500, 2500}; - - ui->tableCart->setRowCount(names.size()); - m_unitPrice = prices; - - for (int row = 0; row < names.size(); ++row) { - - // 상품명 - ui->tableCart->setItem(row, 0, new QTableWidgetItem(names[row])); - // 개수 - ui->tableCart->setItem(row, 1, new QTableWidgetItem("0")); - // 금액 - ui->tableCart->setItem(row, 4, new QTableWidgetItem("0")); - - // + 버튼 (col 2) - QPushButton *btnPlus = new QPushButton("+", this); - ui->tableCart->setCellWidget(row, 2, btnPlus); - connect(btnPlus, SIGNAL(clicked()), this, SLOT(onPlusClicked())); - - // - 버튼 (col 3) - QPushButton *btnMinus = new QPushButton("-", this); - ui->tableCart->setCellWidget(row, 3, btnMinus); - connect(btnMinus, SIGNAL(clicked()), this, SLOT(onMinusClicked())); - - // 삭제 버튼 (col 5) - QPushButton *btnDelete = new QPushButton("삭제", this); - ui->tableCart->setCellWidget(row, 5, btnDelete); - connect(btnDelete, SIGNAL(clicked()), this, SLOT(onDeleteClicked())); - } -} - -// ---------------------------------------- -// + 버튼 눌렸을 때 -// ---------------------------------------- -void PageCart::onPlusClicked() -{ - QPushButton *btn = qobject_cast(sender()); - if (!btn) return; - - int row = -1; - - for (int r = 0; r < ui->tableCart->rowCount(); ++r) { - if (ui->tableCart->cellWidget(r, 2) == btn) { // col 2 = + - row = r; - break; - } - } - - if (row < 0) return; - - QTableWidgetItem *qtyItem = ui->tableCart->item(row, 1); - int qty = qtyItem->text().toInt(); - qty++; - qtyItem->setText(QString::number(qty)); - - updateRowAmount(row); - updateTotal(); -} - -// ---------------------------------------- -// - 버튼 눌렸을 때 -// ---------------------------------------- -void PageCart::onMinusClicked() -{ - QPushButton *btn = qobject_cast(sender()); - if (!btn) return; - - int row = -1; - - for (int r = 0; r < ui->tableCart->rowCount(); ++r) { - if (ui->tableCart->cellWidget(r, 3) == btn) { // col 3 = - - row = r; - break; - } - } - - if (row < 0) return; - - QTableWidgetItem *qtyItem = ui->tableCart->item(row, 1); - int qty = qtyItem->text().toInt(); - if (qty > 0) qty--; - qtyItem->setText(QString::number(qty)); - - updateRowAmount(row); - updateTotal(); -} - -// ---------------------------------------- -// 삭제 버튼 눌렸을 때 -// ---------------------------------------- -void PageCart::onDeleteClicked() -{ - QPushButton *btn = qobject_cast(sender()); - if (!btn) return; - - int row = -1; - - for (int r = 0; r < ui->tableCart->rowCount(); ++r) { - if (ui->tableCart->cellWidget(r, 5) == btn) { // col 5 = 삭제 - row = r; - break; - } - } - - if (row < 0) return; - - // 단가 리스트에서도 삭제 - if (row < m_unitPrice.size()) - m_unitPrice.removeAt(row); - - // 테이블에서 행 삭제 - ui->tableCart->removeRow(row); - - updateTotal(); -} - -// ---------------------------------------- -// 한 줄 금액 업데이트 → 개수 * 단가 -// ---------------------------------------- -void PageCart::updateRowAmount(int row) -{ - if (row < 0 || row >= m_unitPrice.size()) return; - - int qty = ui->tableCart->item(row, 1)->text().toInt(); - int amount = m_unitPrice[row] * qty; - - ui->tableCart->item(row, 4)->setText(QString::number(amount)); -} - -// ---------------------------------------- -// 전체 총액 업데이트 -// ---------------------------------------- -void PageCart::updateTotal() -{ - int total = 0; - - for (int r = 0; r < ui->tableCart->rowCount(); ++r) { - QTableWidgetItem *amt = ui->tableCart->item(r, 4); - if (!amt) continue; - total += amt->text().toInt(); - } - - ui->labelTotalPriceValue->setText(QString::number(total) + "원"); -} - -void PageCart::onBarcodeEntered() -{ - QString code = m_editBarcode->text().trimmed(); - m_editBarcode->clear(); - - if (code.isEmpty()) - return; - - handleBarcode(code); // 이 함수에서 실제 상품 추가/개수 증가 처리 -} - -void PageCart::InitItemDb() -{ - ItemInfo apple; - apple.name = "사과"; - apple.price = 3000; - apple.weight = 200.0; // g, 나중에 로드셀 검증에 씀 - - ItemInfo banana; - banana.name = "바나나"; - banana.price = 1500; - banana.weight = 120.0; - - ItemInfo milk; - milk.name = "우유"; - milk.price = 2500; - milk.weight = 900.0; - - // ⬇ 바코드 문자열은 우리가 임의로 정하는 값 - m_itemDb["111111"] = apple; - m_itemDb["222222"] = banana; - m_itemDb["333333"] = milk; -} - -void PageCart::handleBarcode(const QString &code) -{ - // 1) 등록된 바코드인지 확인 - if (!m_itemDb.contains(code)) { - // TODO: QMessageBox로 "등록되지 않은 바코드입니다" 띄우기 - return; - } - - ItemInfo info = m_itemDb.value(code); - - // 2) 이미 테이블에 있는 상품인지 이름으로 검색 - int rowFound = -1; - for (int r = 0; r < ui->tableCart->rowCount(); ++r) { - QTableWidgetItem *nameItem = ui->tableCart->item(r, 0); - if (nameItem && nameItem->text() == info.name) { - rowFound = r; - break; - } - } - - if (rowFound == -1) { - // 3-1) 없으면 새 행 추가 - int row = ui->tableCart->rowCount(); - ui->tableCart->insertRow(row); - - // 상품명 / 개수 / 금액 - ui->tableCart->setItem(row, 0, new QTableWidgetItem(info.name)); - ui->tableCart->setItem(row, 1, new QTableWidgetItem("1")); - ui->tableCart->setItem(row, 4, new QTableWidgetItem(QString::number(info.price))); - - // 단가 목록에도 추가 - m_unitPrice.append(info.price); - - // + / - / 삭제 버튼 연결 (기존 initDummyItems의 코드 재활용) - QPushButton *btnPlus = new QPushButton("+", this); - QPushButton *btnMinus = new QPushButton("-", this); - QPushButton *btnDelete = new QPushButton("삭제", this); - - ui->tableCart->setCellWidget(row, 2, btnPlus); - ui->tableCart->setCellWidget(row, 3, btnMinus); - ui->tableCart->setCellWidget(row, 5, btnDelete); - - connect(btnPlus, SIGNAL(clicked()), this, SLOT(onPlusClicked())); - connect(btnMinus, SIGNAL(clicked()), this, SLOT(onMinusClicked())); - connect(btnDelete,SIGNAL(clicked()), this, SLOT(onDeleteClicked())); - } - else { - // 3-2) 이미 있는 상품이면 개수 +1 - QTableWidgetItem *qtyItem = ui->tableCart->item(rowFound, 1); - int qty = qtyItem->text().toInt(); - qty++; - qtyItem->setText(QString::number(qty)); - - updateRowAmount(rowFound); - } - - updateTotal(); -} - - diff --git a/QTCart/pagecart.h b/QTCart/pagecart.h deleted file mode 100644 index 794dc22..0000000 --- a/QTCart/pagecart.h +++ /dev/null @@ -1,48 +0,0 @@ -#ifndef PAGECART_H -#define PAGECART_H - -#include -#include -#include -#include - -struct ItemInfo { - QString name; - int price; - double weight; // 나중에 로드셀 검증용, 지금은 0으로 둬도 됨 -}; - -namespace Ui { -class PageCart; -} - -class PageCart : public QWidget -{ - Q_OBJECT - -private slots: - void onPlusClicked(); - void onMinusClicked(); - void onDeleteClicked(); - - void onBarcodeEntered(); - -public: - explicit PageCart(QWidget *parent = nullptr); - ~PageCart(); - -private: - Ui::PageCart *ui; - - void initDummyItems(); - void updateRowAmount(int row); - void InitItemDb(); - void updateTotal(); - void handleBarcode(const QString &code); // ⬅ 바코드 처리용 - - QVector m_unitPrice; - QLineEdit *m_editBarcode; // ⬅ 스캐너 입력용 숨김 edit - QMap m_itemDb; // ⬅ 바코드 → 상품정보 -}; - -#endif // PAGECART_H diff --git a/QTCart/pagecart.ui b/QTCart/pagecart.ui deleted file mode 100644 index d3ff7f2..0000000 --- a/QTCart/pagecart.ui +++ /dev/null @@ -1,135 +0,0 @@ - - - PageCart - - - - 0 - 0 - 624 - 469 - - - - Form - - - - - - - - - - - - - Shopping List - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - 안내모드 - - - - - - - - - - - - 상품명 - - - - - 개수 - - - - - + - - - - - - - - - - - 금액 - - - - - 삭제 - - - - - - - - - - - - 총액 : - - - - - - - 0원 - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - 결제 - - - - - - - - - - - - diff --git a/QTCart/pagewelcome.cpp b/QTCart/pagewelcome.cpp deleted file mode 100644 index 4a357a9..0000000 --- a/QTCart/pagewelcome.cpp +++ /dev/null @@ -1,15 +0,0 @@ -#include "pagewelcome.h" -#include "ui_pagewelcome.h" - -PageWelcome::PageWelcome(QWidget *parent) - : QWidget(parent) - , ui(new Ui::PageWelcome) -{ - ui->setupUi(this); - - connect(ui->pPBStart, &QPushButton::clicked, this, &PageWelcome::startClicked); -} - -PageWelcome::~PageWelcome(){ - delete ui; -} diff --git a/QTCart/pagewelcome.h b/QTCart/pagewelcome.h deleted file mode 100644 index 9bb3dc9..0000000 --- a/QTCart/pagewelcome.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef PAGEWELCOME_H -#define PAGEWELCOME_H - -#include - -namespace Ui { -class PageWelcome; -} - -class PageWelcome : public QWidget -{ - Q_OBJECT - -public: - explicit PageWelcome(QWidget *parent = nullptr); - ~PageWelcome(); - -signals: - void startClicked(); - -private: - Ui::PageWelcome *ui; -}; - -#endif // PAGEWELCOME_H diff --git a/QTCart/pagewelcome.o b/QTCart/pagewelcome.o deleted file mode 100644 index fa2c861..0000000 Binary files a/QTCart/pagewelcome.o and /dev/null differ diff --git a/QTCart/pagewelcome.ui b/QTCart/pagewelcome.ui deleted file mode 100644 index 05a010f..0000000 --- a/QTCart/pagewelcome.ui +++ /dev/null @@ -1,96 +0,0 @@ - - - PageWelcome - - - - 0 - 0 - 612 - 416 - - - - Form - - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - - 30 - true - - - - QT CART - - - Qt::AlignCenter - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - START - - - - 250 - 250 - - - - false - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - - - - diff --git a/QTCart/ppagewelcome.cpp b/QTCart/ppagewelcome.cpp deleted file mode 100644 index 33180d3..0000000 --- a/QTCart/ppagewelcome.cpp +++ /dev/null @@ -1,5 +0,0 @@ -#include "ppagewelcome.h" - -pPageWelcome::pPageWelcome(QWidget *parent) - : QWidget{parent} -{} diff --git a/QTCart/ppagewelcome.h b/QTCart/ppagewelcome.h deleted file mode 100644 index 2972da9..0000000 --- a/QTCart/ppagewelcome.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef PPAGEWELCOME_H -#define PPAGEWELCOME_H - -#include - -class pPageWelcome : public QWidget -{ - Q_OBJECT -public: - explicit pPageWelcome(QWidget *parent = nullptr); - -signals: -}; - -#endif // PPAGEWELCOME_H diff --git a/QTCart/ui_mainwidget.h b/QTCart/ui_mainwidget.h deleted file mode 100644 index 7c8910e..0000000 --- a/QTCart/ui_mainwidget.h +++ /dev/null @@ -1,65 +0,0 @@ -/******************************************************************************** -** Form generated from reading UI file 'mainwidget.ui' -** -** Created by: Qt User Interface Compiler version 6.8.3 -** -** WARNING! All changes made in this file will be lost when recompiling UI file! -********************************************************************************/ - -#ifndef UI_MAINWIDGET_H -#define UI_MAINWIDGET_H - -#include -#include -#include -#include -#include - -QT_BEGIN_NAMESPACE - -class Ui_MainWidget -{ -public: - QVBoxLayout *verticalLayout; - QStackedWidget *pstackedWidget; - QWidget *page; - QWidget *page_2; - - void setupUi(QWidget *MainWidget) - { - if (MainWidget->objectName().isEmpty()) - MainWidget->setObjectName("MainWidget"); - MainWidget->resize(685, 463); - verticalLayout = new QVBoxLayout(MainWidget); - verticalLayout->setObjectName("verticalLayout"); - pstackedWidget = new QStackedWidget(MainWidget); - pstackedWidget->setObjectName("pstackedWidget"); - page = new QWidget(); - page->setObjectName("page"); - pstackedWidget->addWidget(page); - page_2 = new QWidget(); - page_2->setObjectName("page_2"); - pstackedWidget->addWidget(page_2); - - verticalLayout->addWidget(pstackedWidget); - - - retranslateUi(MainWidget); - - QMetaObject::connectSlotsByName(MainWidget); - } // setupUi - - void retranslateUi(QWidget *MainWidget) - { - MainWidget->setWindowTitle(QCoreApplication::translate("MainWidget", "MainWidget", nullptr)); - } // retranslateUi - -}; - -namespace Ui { - class MainWidget: public Ui_MainWidget {}; -} // namespace Ui - -QT_END_NAMESPACE - -#endif // UI_MAINWIDGET_H diff --git a/QTCart/ui_pagewelcome.h b/QTCart/ui_pagewelcome.h deleted file mode 100644 index afd7495..0000000 --- a/QTCart/ui_pagewelcome.h +++ /dev/null @@ -1,100 +0,0 @@ -/******************************************************************************** -** Form generated from reading UI file 'pagewelcome.ui' -** -** Created by: Qt User Interface Compiler version 6.8.3 -** -** WARNING! All changes made in this file will be lost when recompiling UI file! -********************************************************************************/ - -#ifndef UI_PAGEWELCOME_H -#define UI_PAGEWELCOME_H - -#include -#include -#include -#include -#include -#include -#include - -QT_BEGIN_NAMESPACE - -class Ui_PageWelcome -{ -public: - QVBoxLayout *verticalLayout_2; - QVBoxLayout *verticalLayout; - QSpacerItem *verticalSpacer; - QLabel *label; - QSpacerItem *verticalSpacer_2; - QPushButton *pPBStart; - QSpacerItem *verticalSpacer_3; - - void setupUi(QWidget *PageWelcome) - { - if (PageWelcome->objectName().isEmpty()) - PageWelcome->setObjectName("PageWelcome"); - PageWelcome->resize(612, 416); - verticalLayout_2 = new QVBoxLayout(PageWelcome); - verticalLayout_2->setObjectName("verticalLayout_2"); - verticalLayout = new QVBoxLayout(); - verticalLayout->setObjectName("verticalLayout"); - verticalSpacer = new QSpacerItem(20, 40, QSizePolicy::Policy::Minimum, QSizePolicy::Policy::Expanding); - - verticalLayout->addItem(verticalSpacer); - - label = new QLabel(PageWelcome); - label->setObjectName("label"); - QFont font; - font.setPointSize(30); - font.setBold(true); - label->setFont(font); - label->setAlignment(Qt::AlignCenter); - - verticalLayout->addWidget(label); - - verticalSpacer_2 = new QSpacerItem(20, 40, QSizePolicy::Policy::Minimum, QSizePolicy::Policy::Expanding); - - verticalLayout->addItem(verticalSpacer_2); - - pPBStart = new QPushButton(PageWelcome); - pPBStart->setObjectName("pPBStart"); - pPBStart->setIconSize(QSize(250, 250)); - pPBStart->setCheckable(false); - - verticalLayout->addWidget(pPBStart); - - verticalSpacer_3 = new QSpacerItem(20, 40, QSizePolicy::Policy::Minimum, QSizePolicy::Policy::Expanding); - - verticalLayout->addItem(verticalSpacer_3); - - verticalLayout->setStretch(0, 1); - verticalLayout->setStretch(1, 4); - verticalLayout->setStretch(2, 1); - verticalLayout->setStretch(3, 4); - verticalLayout->setStretch(4, 1); - - verticalLayout_2->addLayout(verticalLayout); - - - retranslateUi(PageWelcome); - - QMetaObject::connectSlotsByName(PageWelcome); - } // setupUi - - void retranslateUi(QWidget *PageWelcome) - { - PageWelcome->setWindowTitle(QCoreApplication::translate("PageWelcome", "Form", nullptr)); - label->setText(QCoreApplication::translate("PageWelcome", "QT CART", nullptr)); - pPBStart->setText(QCoreApplication::translate("PageWelcome", "START", nullptr)); - } // retranslateUi - -}; - -namespace Ui { - class PageWelcome: public Ui_PageWelcome {}; -} // namespace Ui - -QT_END_NAMESPACE - -#endif // UI_PAGEWELCOME_H diff --git a/README.md b/README.md new file mode 100644 index 0000000..57a0d76 --- /dev/null +++ b/README.md @@ -0,0 +1,126 @@ +# UWB 기반 ROS 자율주행 쇼핑카트 (QT-CART) + +## 프로젝트 개요 +QT-CART는 UWB 기반 위치 추적과 ROS 2 자율주행 시스템을 결합한 스마트 쇼핑카트입니다. +사용자를 따라 이동하거나 매장 내 특정 상품 구역으로 안내하며, 무게 센서를 이용한 도난 방지 결제 시스템과 +관리자용 대시보드를 제공합니다. + +- **프로젝트 기간**: 2025.11.20 ~ 2026.01.04 +- **팀명**: 아자아자아자쓰! +- **과정**: INTEL AI SW 8기 + +--- + +## 팀 구성 +| 이름 | 역할 | +|---|---| +| 김기환 | PM | +| 서채건 | 하드웨어, 로드셀 | +| 이동현 | ROS 제어 시스템 | +| 박서정 | 하드웨어, 로드셀 | +| 김동현 | GUI 디자인 | + +--- + +## 프로젝트 목표 +- UWB 기반 사용자 위치 추적을 통한 주인 따라가기 기능 +- ROS 2 Navigation을 이용한 매장 내 자율주행 안내 +- 무게 센서를 활용한 비정상 상품 감지 및 도난 방지 +- QT 기반 터치 UI와 관리자 대시보드 제공 + +--- + +## 시스템 아키텍처 +image +image + + + +- **Frontend** + - QT 기반 터치스크린 UI + - 상품 안내, 장바구니 관리, 결제 화면 제공 +- **Backend** + - API Server (상품/결제/무게 검증) + - 관리자 대시보드 +- **Robot System** + - ROS 2 기반 네비게이션 + - UWB 위치 추적 + - 모터 제어 및 센서 데이터 처리 + +--- + +## 주요 기능 + +### 1️. 안내 모드 +- 매장 지도에서 상품 구역 선택 +- 선택된 좌표로 카트가 자율주행 이동 +- 목적지 도착 후 장바구니 위치로 복귀 + +--- + +### 2️. 주인 따라가기 모드 +- UWB 태그를 소지한 사용자를 실시간 추적 +- 삼각측량 기반 위치 계산 +- 사용자 이동에 맞춰 카트가 자동 추종 + +--- + +### 3️. 관리자 대시보드 +- 실시간 카트 상태 모니터링 +- 상품 및 결제 정보 관리 +- 센서 데이터 시각화 + +--- + +### 4️. 도난 방지 시스템 +- HX711 로드셀 센서 기반 무게 측정 +- 상품 DB의 예상 무게와 실측 무게 비교 +- 오차 발생 시 결제 차단 및 경고 표시 + +--- + +## UWB 위치 추적 원리 +- ToF(Time of Flight) 기반 거리 측정 +- 3개의 UWB 앵커와 1개의 태그를 이용한 삼각측량 +- 계산된 좌표를 ROS 토픽으로 2초 주기로 발행 + +--- + +## Hardware 구성 +- Raspberry Pi 4 +- ESP32 + UWB DW3000 +- HX711 로드셀 센서 +- QR 코드 스캐너 +- Raspberry Pi 7인치 터치스크린 +- TurtleBot 기반 이동 플랫폼 + +--- + +## Software 구성 +- ROS 2 (Navigation, Motor Control) +- QT (UI/UX) +- API Server (Python) +- UDP / HTTP 통신 +- FSM 기반 로봇 상태 제어 + +--- + +## Trouble Shooting +| 문제 | 해결 | +|---|---| +| UWB 통신 일시 중단 | 2초 이상 데이터 미수신 시 자동 복구 | +| 로드셀 노이즈 | 다중 샘플링 평균 필터 적용 | +| API 응답 지연 | 센서 처리 비동기화 (800ms → 240ms) | + +--- + +## 시연 +- 안내 모드 시연 +- 주인 따라가기 시연 +- 도난 방지 결제 시연 + + +https://github.com/user-attachments/assets/d50bf697-262b-453a-afcf-843e31196774 + + +--- diff --git a/UWB-Arduino/anchor.ino b/UWB-Arduino/anchor.ino new file mode 100644 index 0000000..3a0b26a --- /dev/null +++ b/UWB-Arduino/anchor.ino @@ -0,0 +1,110 @@ +/* + * [앵커 (Anchor) - 컴파일 에러 수정 및 3개 확장] + * ★ 중요: 업로드할 때마다 ANCHOR_ID를 1, 2, 3으로 변경하세요. + */ + +// ▼▼▼ 이 숫자를 1, 2, 3 중 하나로 설정해서 각각 업로드! ▼▼▼ +#define ANCHOR_ID 1 +// ▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲ + +#include +#include "DW3000.h" +#include +#include + +const char* ssid = "intel8"; +const char* password = "intel00008"; + +// ★ 리시버(PC/우분투)의 IP 주소 +const char* hostIp = "192.168.123.42"; +const int hostPort = 44444; + +const uint8_t PIN_SS = 4; +const uint8_t PIN_RST = 27; + +WiFiUDP udp; +int loop_delay = 100; + +static long long tx_poll, rx_resp, tx_final; +static int t_round1, t_reply1; + +void setup() { + Serial.begin(115200); + + // ID별 딜레이 설정 (충돌 방지) + if (ANCHOR_ID == 1) loop_delay = 97; + else if (ANCHOR_ID == 2) loop_delay = 113; + else loop_delay = 127; + + WiFi.begin(ssid, password); + while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } + Serial.printf("\nAnchor %d WiFi Connected!\n", ANCHOR_ID); + + SPI.begin(18, 19, 23, 4); + DW3000.begin(); + + pinMode(PIN_RST, OUTPUT); + digitalWrite(PIN_RST, LOW); delay(50); + digitalWrite(PIN_RST, HIGH); delay(200); + + DW3000.init(); + DW3000.setupGPIO(); + + // ★★★ [수정] RX 설정 삭제, TX만 0으로 설정 ★★★ + DW3000.setTXAntennaDelay(0); + + Serial.printf("ANCHOR %d READY\n", ANCHOR_ID); +} + +float measureDistance() { + DW3000.clearSystemStatus(); + + // 1. Poll 전송 + DW3000.ds_sendFrame(1); + tx_poll = DW3000.readTXTimestamp(); + + // 2. Response 대기 (타임아웃 30ms) + unsigned long start = millis(); + while (!DW3000.receivedFrameSucc()) { + if (millis() - start > 30) return -1.0; + } + + rx_resp = DW3000.readRXTimestamp(); + t_round1 = rx_resp - tx_poll; + + // 3. Final 전송 + DW3000.ds_sendFrame(3); + tx_final = DW3000.readTXTimestamp(); + t_reply1 = tx_final - rx_resp; + + // 4. 거리 데이터 수신 대기 (타임아웃 30ms) + start = millis(); + while (!DW3000.receivedFrameSucc()) { + if (millis() - start > 30) return -1.0; + } + + // 5. 계산 + uint32_t t_round_tag = DW3000.read(0x12, 0x04); + uint32_t t_reply_tag = DW3000.read(0x12, 0x08); + + if (t_round_tag == 0 || t_reply_tag == 0) return -1.0; + + int ranging_time = DW3000.ds_processRTInfo(t_round1, t_reply1, t_round_tag, t_reply_tag, DW3000.getRawClockOffset()); + return DW3000.convertToCM(ranging_time) / 100.0; +} + +void loop() { + float dist = measureDistance(); + + if (dist > 0.1 && dist < 50.0) { // 50m 이내 유효 + String label = "A" + String(ANCHOR_ID) + ":"; + + Serial.print(label); Serial.println(dist); + + udp.beginPacket(hostIp, hostPort); + udp.print(label + String(dist, 2)); + udp.endPacket(); + } + + delay(loop_delay); +} \ No newline at end of file diff --git a/UWB-Arduino/tag.ino b/UWB-Arduino/tag.ino new file mode 100644 index 0000000..e69de29