日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Qt + Python + OpenCV图标替换工具 之 Qt界面设计(四)

發布時間:2025/3/15 python 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Qt + Python + OpenCV图标替换工具 之 Qt界面设计(四) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

?

上一篇博文

程序的下載地址以及源碼

Qt界面設計


?

上一篇博文

Qt + Python + OpenCV圖標替換工具 之 Python調用dll(三)

https://blog.csdn.net/qq78442761/article/details/85941704

?

?

程序的下載地址以及源碼

源碼已經打包:

運行版本(release版本(編譯好)下載地址如下):

https://download.csdn.net/download/qq78442761/10899496

?

源碼下載地址如下:

https://download.csdn.net/download/qq78442761/10899518

?

Qt界面設計

Qt界面結構如下:

?

界面運行截圖如下:

?

這里把使用自定義界面,就是把系統的標題欄和邊框全部去掉!

setWindowFlags(Qt::Window | Qt::FramelessWindowHint);setAttribute(Qt::WA_TranslucentBackground);

然后再使用重寫下面三個事件:

void mouseMoveEvent(QMouseEvent * event) Q_DECL_OVERRIDE;void mousePressEvent(QMouseEvent *event) Q_DECL_OVERRIDE;void mouseReleaseEvent(QMouseEvent *event) Q_DECL_OVERRIDE;

重寫

void paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE;

可以實現制作圓角界面:

void PicWidget::paintEvent(QPaintEvent *event) {QPainter painter(this);painter.setRenderHint(QPainter::Antialiasing);painter.setBrush(QBrush(Qt::white));painter.setPen(Qt::black);QRect rect = this->rect();rect.setWidth(rect.width() - 1);rect.setHeight(rect.height() - 1);painter.drawRoundedRect(rect, 15, 15);QWidget::paintEvent(event); }

?

這里再說明最后一點:

也就是 “用戶提示” 手冊,這里使用了QGraphicsView框架!

這里是構造一個界面,然后最大話,在吧item放到界面上即可:

ShowGraphicsView::ShowGraphicsView(QWidget *parent) : QGraphicsView(parent) {this->setWindowTitle("用戶使用手冊");setStyleSheet("background: transparent;border:0px");setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);setRenderHints(renderHints() | QPainter::Antialiasing | QPainter::SmoothPixmapTransform);setWindowFlags(Qt::Window | Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint);setAttribute(Qt::WA_TranslucentBackground);m_scene = new QGraphicsScene;this->setScene(m_scene);this->setGeometry(0, 0, 100, 100); }

?

通過添加item實現界面上顯示文字,如下圖:

?

void ShowGraphicsView::addTextItem(const int &posX, const int &posY, const QString &text) {TipGraphicsItem *item = new TipGraphicsItem;item->setPos(posX, posY);item->setShowText(text);m_scene->addItem(item); }

?

添加文字的源碼如下:

void PicWidget::manualBtnClicked() {QRect screenRect = QApplication::desktop()->screenGeometry();m_showGraphicsView->fixSceneWindow(screenRect.width(), screenRect.height());m_showGraphicsView->show();m_showGraphicsView->addTextItem(pos().x() + ui->iconLabel->pos().x() - 40, pos().y() + ui->iconLabel->pos().y() - 15, "程序的icon");m_showGraphicsView->addTextItem(pos().x() + ui->closeLabel->pos().x() - 40, pos().y() + ui->closeLabel->pos().y() - 15, "程序的關閉按鈕");m_showGraphicsView->addTextItem(pos().x() + ui->choosePicLabel->pos().x() - 40, pos().y() + ui->choosePicLabel->pos().y() + 75, "選著一張圖片");m_showGraphicsView->addTextItem(pos().x() + ui->chooseColorLabel->pos().x() - 20, pos().y() + ui->chooseColorLabel->pos().y() + 75, "選著圖片后選著一個顏色");m_showGraphicsView->addTextItem(pos().x() + ui->productLabel->pos().x(), pos().y() + ui->productLabel->pos().y() + 75, "調用py生成圖片并讀取");m_showGraphicsView->addTextItem(pos().x() + ui->changeProLabel->pos().x() - 10, pos().y() + ui->changeProLabel->pos().y() + 80, "轉化算法,生成其他圖片");m_showGraphicsView->addTextItem(pos().x() + ui->howToUseLabel->pos().x() - 40, pos().y() + ui->howToUseLabel->pos().y() + 90, "用戶使用手冊");m_showGraphicsView->addTextItem(pos().x() + ui->genLabel5->pos().x() + 90, pos().y() + ui->genLabel5->pos().y() + 90, "生成圖片的位置,右擊保存");QEventLoop loop;QTimer::singleShot(5 * 1000, &loop, SLOT(quit()));loop.exec();m_showGraphicsView->hide();m_showGraphicsView->clearItem(); }

?

?

?

總結

以上是生活随笔為你收集整理的Qt + Python + OpenCV图标替换工具 之 Qt界面设计(四)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。