亚洲综合原千岁中文字幕_国产精品99久久久久久久vr_无码人妻aⅴ一区二区三区浪潮_成人h动漫精品一区二区三

主頁 > 知識庫 > Python開發之QT解決無邊框界面拖動卡屏問題(附帶源碼)

Python開發之QT解決無邊框界面拖動卡屏問題(附帶源碼)

熱門標簽:天津電話機器人公司 手機網頁嵌入地圖標注位置 應電話機器人打電話違法嗎 開封自動外呼系統怎么收費 開封語音外呼系統代理商 電銷機器人的風險 400電話辦理哪種 河北防封卡電銷卡 地圖標注線上如何操作

1.簡介

看到很多才學QT的人都會問為啥無邊框拖動為啥會花屏?

那是因為你每次拖動的過程中都一直在調用move()函數讓QT重新繪制界面,如果資源過大,就會導致當前圖形還未繪制完,便又重新改變坐標了,從而導致花屏.

2.如何解決

我們參考其它軟件,比如QQ,瀏覽器等,可以看到我們如果在拖動它們的時候,會出現一個虛線框.

如下圖所示,可以看到在白色背景下,拖出的虛線框是黑色的

而在黑色背景時,拖出的虛線框是白色的

顯然這個虛線框會根據當前桌面的像素點而去取反(也就是255-currentRGB).
解決的過程有兩種方法:

1)調用win庫來實現

2)自己動手寫一個

既然我們已經知道它的實現過程.那我們還是自己動手寫一個,只需要寫一個虛線框類即可

3.虛線框類代碼

DragShadow.h

#ifndef DRAGSHADOW_H
#define DRAGSHADOW_H
#include QtGui>
class DragShadow : public QWidget
{
  Q_OBJECT
private:
  QImage m_image;
protected:
  bool getInvertColor(int x, int y, QColor color);
  void paintEvent(QPaintEvent *);
  void showEvent( QShowEvent * event );
public:
  explicit DragShadow(QWidget *parent = 0);
  void setSizePos(int x, int y, int w, int h);
  void setPos(int x,int y );
  void setPos(QPoint pos );
signals:

public slots:

};
#endif // DRAGSHADOW_H

DragShadow.cpp

#include "DragShadow.h"
DragShadow::DragShadow(QWidget *parent) :
QWidget(NULL)
{
  setWindowFlags(Qt::FramelessWindowHint|Qt::Tool);
  setAttribute(Qt::WA_TranslucentBackground);
}
void DragShadow::setSizePos(int x, int y, int w, int h)
{
  if(w%2==0)
    w+=1;
  if(h%2==0)
    h+=1;
  this->setGeometry(x,y,w,h);
}
void DragShadow::setPos(int x,int y )
{
  this->move(x,y);
  this->update();
}
void DragShadow::setPos(QPoint pos )
{
  this->move(pos);
  this->update();
}
void DragShadow::showEvent( QShowEvent * event )
{
   #if (QT_VERSION = QT_VERSION_CHECK(5,0,0))        m_image = QPixmap::grabWindow(QApplication::desktop()->winId()).toImage();   #else        QScreen *screen = QGuiApplication::primaryScreen();        m_image = screen->grabWindow(0).toImage();   #endif
}
void DragShadow::paintEvent(QPaintEvent *)
{
  int LineCount=4;
  QColor color;
  QPainter painter(this);
  painter.setBrush(Qt::NoBrush);
  QPen pen(Qt::SolidLine);
  pen.setColor(Qt::black);
  pen.setWidthF(1);
  painter.setPen(pen);
  painter.drawPoint(0,0);
  for(int current=0;currentLineCount;current++)
  {
    for(int i=current;i(this->width()-current);i+=2) //x
    {
      this->getInvertColor(this->x()+i,this->y()+current,color);
      pen.setColor(color);
      painter.setPen(pen);
      painter.drawPoint(i,current);            //draw top
      this->getInvertColor(i+this->x(),this->height()-current-1+this->y(),color);
      pen.setColor(color);
      painter.setPen(pen);
      painter.drawPoint(i,this->height()-current-1); //draw bottom
    }
    for(int i=current;i(this->height()-current);i+=2) //y
    {
      this->getInvertColor(current+this->x(),i+this->y(),color);
      pen.setColor(color);
      painter.setPen(pen);
      painter.drawPoint(current,i);           //draw left
      this->getInvertColor(this->width()-current-1+this->x(),i+this->y(),color);
      pen.setColor(color);
      painter.setPen(pen);
      painter.drawPoint(this->width()-current-1,i); //draw right
    }
  }
}
bool DragShadow::getInvertColor(int x, int y, QColor color)
{
  int ret=m_image.valid(x,y);
  if(ret)
  {
    QRgb rgb = m_image.pixel(x,y);
    color.setRgb(rgb);
    color.setRed(255-color.red());
    color.setBlue(255-color.blue());
    color.setGreen(255-color.green());
  }
  else
  {
    color.setRed(0);
    color.setBlue(0);
    color.setGreen(0);
  }
  return ret;
}

4.測試UI界面如下圖所示

5.拖動時的效果圖如下所示

6.針對實線框補充
對于有些不同的windows系統設置,實現的是實線框,如下圖所示:

如果想要這種效果,就將上面代碼的paintEvent(QPaintEvent *)函數的i+=2改為i++即可.

修改后效果如下所示:

上面的兩個不同效果的demo源碼地址如下所示:

http://xiazai.jb51.net/202105/yuanma/DragTest_jb51.rar

以上就是QT-解決無邊框界面拖動卡屏問題(附帶源碼)的詳細內容,更多關于QT無邊框界面的資料請關注腳本之家其它相關文章!

您可能感興趣的文章:
  • 解決PyQt5 無邊框后窗口的移動問題
  • PyQt5 實現給無邊框widget窗口添加背景圖片
  • Qt無邊框窗口拖拽和陰影的實現方法
  • Qt透明無邊框窗口的實現示例
  • Pyqt實現無邊框窗口拖動以及窗口大小改變
  • PyQt5實現無邊框窗口的標題拖動和窗口縮放

標簽:六盤水 常州 山東 駐馬店 成都 江蘇 蘭州 宿遷

巨人網絡通訊聲明:本文標題《Python開發之QT解決無邊框界面拖動卡屏問題(附帶源碼)》,本文關鍵詞  Python,開,發之,解,決無,邊框,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Python開發之QT解決無邊框界面拖動卡屏問題(附帶源碼)》相關的同類信息!
  • 本頁收集關于Python開發之QT解決無邊框界面拖動卡屏問題(附帶源碼)的相關信息資訊供網民參考!
  • 推薦文章
    成人在免费观看视频国产| 国产一区二区精品久| 日韩中文字幕一区二区不卡| 免费一级片在线| 一级女性全黄生活片免费| 国产视频网站在线观看| 精品视频在线观看免费 | 欧美日本免费| 国产亚洲精品aaa大片| 青草国产在线观看| 四虎影视久久久免费| 亚洲 激情| 天天做日日爱夜夜爽| 欧美激情伊人| 日韩av东京社区男人的天堂| 国产一区精品| 日本在线不卡视频| 国产激情一区二区三区| 欧美激情一区二区三区视频 | 超级乱淫黄漫画免费| 欧美另类videosbestsex视频| 国产视频网站在线观看| 999精品在线| 午夜欧美成人久久久久久| 天天色成人网| 久久久成人网| 四虎久久精品国产| 午夜欧美成人久久久久久| 国产成人精品在线| 国产成a人片在线观看视频| 四虎久久精品国产| 久久99青青久久99久久| 99热精品在线| 99久久精品国产免费| 黄色短视屏| 四虎影视库国产精品一区| 国产a视频| 国产成人啪精品视频免费软件| 可以免费看毛片的网站| 国产激情视频在线观看| 黄色免费三级| 久久国产精品自由自在| 精品国产一级毛片| 欧美大片a一级毛片视频| 美女免费毛片| 午夜激情视频在线播放| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 999久久66久6只有精品| 国产麻豆精品视频| 亚洲精品影院久久久久久| 精品视频在线观看免费 | 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 精品国产一区二区三区国产馆| 香蕉视频久久| 青青久久精品| 午夜久久网| 日韩一级黄色| 高清一级淫片a级中文字幕 | 日韩一级黄色大片| 亚欧成人毛片一区二区三区四区| 香蕉视频久久| 色综合久久天天综合绕观看| 99久久网站| 久久99爰这里有精品国产| 国产成人精品在线| 日本在线www| 成人免费福利片在线观看| 麻豆网站在线看| 九九热国产视频| 精品在线视频播放| 四虎影视库国产精品一区| 欧美日本免费| 欧美国产日韩在线| 免费一级生活片| 亚洲精品久久玖玖玖玖| 欧美爱爱动态| 99热热久久| 一本高清在线| 沈樵在线观看福利| 午夜久久网| 国产一区二区福利久久| 一a一级片| 国产成人精品综合| 成人高清视频在线观看| 欧美另类videosbestsex久久| 一a一级片| 日韩一级精品视频在线观看| 亚洲不卡一区二区三区在线| 亚欧成人毛片一区二区三区四区| 日韩专区第一页| 亚欧乱色一区二区三区| 毛片的网站| 久久国产精品自由自在| 国产伦理精品| 欧美一级视频免费观看| 中文字幕97| 国产一区二区精品尤物| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 免费国产一级特黄aa大片在线| 国产韩国精品一区二区三区| 精品视频在线观看视频免费视频 | 韩国毛片免费大片| 亚洲第一色在线| 国产网站麻豆精品视频| 亚洲 国产精品 日韩| 国产伦久视频免费观看视频| 天天做人人爱夜夜爽2020毛片| 久久精品大片| 日韩免费片| 一本伊大人香蕉高清在线观看| a级黄色毛片免费播放视频| 韩国三级视频在线观看| 四虎影视久久久| 国产一区精品| 精品视频在线看 | 欧美电影免费看大全| 久久精品免视看国产明星| 亚洲精品中文一区不卡| 色综合久久天天综线观看| 欧美国产日韩在线| 成人a大片高清在线观看| 午夜在线观看视频免费 成人| 午夜在线观看视频免费 成人| 亚欧成人乱码一区二区| 久久99青青久久99久久| 日韩欧美一二三区| 亚洲第一页乱| 日韩中文字幕在线播放| 国产成人精品综合在线| 日韩中文字幕在线亚洲一区| 欧美国产日韩在线| 久久99中文字幕久久| 欧美爱爱动态| 日韩avdvd| 日本在线不卡免费视频一区| 香蕉视频亚洲一级| 麻豆午夜视频| 四虎久久影院| 欧美另类videosbestsex高清| 黄视频网站免费看| 久久国产精品只做精品| 香蕉视频久久| 精品视频在线观看免费| 国产福利免费视频| 亚欧乱色一区二区三区| 91麻豆精品国产高清在线| 午夜在线亚洲男人午在线| 成人a大片高清在线观看| 久久国产一区二区| 亚洲爆爽| 99色视频在线观看| 欧美激情一区二区三区视频 | 尤物视频网站在线观看| 在线观看成人网| 午夜欧美福利| 国产福利免费视频| 人人干人人插| 高清一级片| 国产精品1024在线永久免费 | 日韩一级精品视频在线观看| 欧美国产日韩在线| 精品国产一区二区三区久久久蜜臀| 精品视频免费看| 精品久久久久久中文| 亚州视频一区二区| 久久久久久久久综合影视网| 91麻豆国产| 国产原创视频在线| 韩国毛片免费大片| 精品国产亚洲人成在线| 久久精品店| 日本免费看视频| 精品在线观看一区| 青青青草影院| 日韩在线观看免费完整版视频| 高清一级毛片一本到免费观看| 日韩av成人| 国产伦精品一区三区视频| 精品久久久久久中文字幕一区| 四虎久久精品国产| 久久精品店| 999精品影视在线观看| 91麻豆精品国产自产在线观看一区 | 久久精品店| 国产a网| 美国一区二区三区| 日日夜夜婷婷| 欧美一级视频免费观看| 成人免费观看视频| 精品久久久久久综合网| 欧美激情在线精品video| 国产91精品一区| 日韩av成人| 成人免费网站视频ww| 九九久久99| 在线观看成人网| 欧美1区| a级精品九九九大片免费看| 成人a大片高清在线观看| 日本免费乱人伦在线观看 |