国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Pyqt通過鼠標滾輪進行縮放界面

這篇具有很好參考價值的文章主要介紹了Pyqt通過鼠標滾輪進行縮放界面。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

wheelEvent()函數(shù)是鼠標滾輪事件的觸發(fā)函數(shù),我們通過重寫wheelEvent()函數(shù)進行控制。

大多數(shù)視圖類和一部分控件應(yīng)該都有wheelEvent()函數(shù)

#放大倍數(shù)
self.enlarge_factor=1.20
#縮小倍數(shù)
self.shrink_factor=1/self.enlarge_factor
#縮放等級
self.zoom_grade=5
#一次縮放的等級提升
self.zoom_step=1
#縮放鎖
self.zoom_lock=False
#縮放等級限制
self.zoom_range=[0,10]

首先定義變量,這里為了縮小和放大的比例相同,縮小倍數(shù)為1除以放大倍數(shù)。

    def wheelEvent(self, event) -> None:
        # print("angleDelta",event.angleDelta())
        #判斷是向前還是向后滾動
        if event.angleDelta().y() > 0:
            zoomFactor=self.enlarge_factor
            self.zoom_grade+=self.zoom_step
        else:
            # print("zoomFactor",self.shrink_factor)
            zoomFactor=self.shrink_factor
            self.zoom_grade-=self.zoom_step
            # print(" self.zoom_grade", self.zoom_grade)
        #判斷是否達到放大和縮小的限制
        self.zoom_lock=False
        if self.zoom_grade>self.zoom_range[1]:
            self.zoom_grade=self.zoom_range[1]
            self.zoom_lock=True
        elif self.zoom_grade<self.zoom_range[0]:
            self.zoom_grade=self.zoom_range[0]
            self.zoom_lock=True
        #沒有限制,就按比例操作
        if self.zoom_lock!=True:
            self.scale(zoomFactor,zoomFactor)

重寫wheelEvent函數(shù)。

這里的event對象是個QWheelEvent事件對象。

?event.angleDelta()返回一個Qpoint對象,代表滾動的數(shù)值。單位是8分之一度。轉(zhuǎn)一下一般是15度,即120。這個對象只有y有值,因為滾輪只在y軸前后滾動。這就是為什么要用event.angleDelta().y()。

.scale(x,y)是對視圖進行等比例伸縮。x,y分別代表x軸y軸的伸縮倍數(shù)。

#設(shè)置錨點是鼠標位置
self.setTransformationAnchor(QGraphicsView.AnchorUnderMouse)
#設(shè)置錨點是正中心
# self.setTransformationAnchor(QGraphicsView.AnchorViewCenter)

還要考慮到伸縮的參考點(就是中心點,也叫錨點)。setTransformationAnchor()函數(shù)可對視圖進行設(shè)定,由于這是對視圖屬性的設(shè)定,這段代碼放到初始化函數(shù)就行。文章來源地址http://www.zghlxwxcb.cn/news/detail-529065.html

到了這里,關(guān)于Pyqt通過鼠標滾輪進行縮放界面的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 243:vue+Openlayers 更改鼠標滾輪縮放地圖大小,每次縮放小一點

    243:vue+Openlayers 更改鼠標滾輪縮放地圖大小,每次縮放小一點

    第243個 點擊查看專欄目錄 本示例的目的是介紹如何在vue+openlayers項目中設(shè)置鼠標滾輪縮放地圖大小,每次滑動一格滾輪,設(shè)定的值非默認值1。具體的設(shè)置方法,參考源代碼。 直接復制下面的 vue+openlayers源代碼,操作2分鐘即可運行實現(xiàn)效果 示例效果

    2024年02月09日
    瀏覽(117)
  • Proe 5.0鼠標滾輪無法縮放的解決方法

    Proe 5.0鼠標滾輪無法縮放的解決方法

    鼠標中鍵(也就是滾輪)在軟件里起“確認”功能,滾輪上下滑動可以進行縮放,沒反應(yīng)的話解決辦法如下: 1.win+i打開設(shè)置界面 ?2.在設(shè)備選項中選擇鼠標按鍵,將懸停在·非活動窗口滾動選項關(guān)閉 ?3.然后就可以進行縮放了 ?4.按住滾輪可以旋轉(zhuǎn)零件 shift+滾輪按住不放還可

    2024年02月12日
    瀏覽(92)
  • vue 拖動、縮放容器組件,支持移動端雙指縮放和PC端鼠標滾輪縮放

    本組件基于CSS的transform實現(xiàn)。移動端監(jiān)聽touch事件(單指移動,雙指移動+縮放),PC端監(jiān)聽mouse事件(移動)和滾動事件wheel(縮放),更新transform的translateX/translateY/scale值,從而實現(xiàn)縮放、移動。由于transform不會產(chǎn)生重排,因此不節(jié)流也可以有很好的性能,用戶體驗就像德芙

    2024年02月03日
    瀏覽(93)
  • Canvas鼠標滾輪縮放以及畫布拖動(圖文并茂版)

    Canvas鼠標滾輪縮放以及畫布拖動(圖文并茂版)

    本文會帶大家認識Canvas中常用的坐標變換方法 translate 和 scale,并結(jié)合這兩個方法,實現(xiàn)鼠標滾輪縮放以及畫布拖動功能。 Canvas 繪圖的縮放以及畫布拖動主要通過 CanvasRenderingContext2D 提供的 translate 和 scale 兩個方法實現(xiàn)的,先來認識下這兩個方法。 translate 方法 語法: trans

    2023年04月09日
    瀏覽(98)
  • [pyqt5]觸發(fā)ctrl+鼠標滾輪事件

    有時候我們需要按住Ctrl+鼠標滾輪實現(xiàn)圖像放大或者縮小,因此需要這個事件,具體看代碼

    2024年02月13日
    瀏覽(33)
  • js 以鼠標滾輪位置為中心縮放、放大以及邊界判斷

    js 以鼠標滾輪位置為中心縮放、放大以及邊界判斷

    項目需求為頁面上實現(xiàn)拖拽節(jié)點和可以在頁面中通過滑動滾輪來縮放節(jié)點顯示(以鼠標位置為縮放中心點)從而放大到可以看到詳細的信息,節(jié)點有10000個。特此記錄下實現(xiàn)細節(jié) 初始化變量 為節(jié)點綁定拖拽事件,拖拽事件的邊界使用 Math 進行判斷,比起 if 判斷更加清晰快捷

    2024年02月11日
    瀏覽(89)
  • Echarts map3D 禁止鼠標滾輪縮放

    Echarts type為map3D 在使用時發(fā)現(xiàn)會存在鼠標滾輪縮放的情況 zoomSensitivity屬性本質(zhì)上是是否開啟map3D的縮放和平移 所以也可以禁止鼠標滾輪縮放的情況 禁用這個屬性就可以實現(xiàn)map3D 禁止鼠標滾輪縮放的需求了

    2024年02月15日
    瀏覽(89)
  • Fabric.js+vue 實現(xiàn)鼠標滾輪縮放畫布+移動畫布

    話不多說 直接貼代碼 一、實現(xiàn)鼠標滾輪縮放畫布 使用說明,我的canvas畫布定義為 canvas,替他均不用額外設(shè)置變量。canvas = new fabric.Canvas(\\\'editorCanvas\\\', {... 二、實現(xiàn)鼠標按下變抓手,并可移動畫布中內(nèi)容 使用說明:data中定義panning: false,用來標記鼠標按下狀態(tài)(是否鼠標按下)

    2024年02月09日
    瀏覽(92)
  • unity3D 鼠標滾輪實現(xiàn)物體的大小縮放

    鼠標滾輪響應(yīng)函數(shù)是Input.GetAxis(\\\"Mouse ScrollWheel\\\"),函數(shù)返回值類型是float,向前滾是返回正數(shù),向后滾是返回負數(shù),且鼠標滾輪滑動單次函數(shù)返回值為0.1 利用返回值修改模型transform.localscale,實現(xiàn)模型縮放 鼠標滾輪一直向后滾,會看見模型逐漸變小,當變到很小到消失的時候,

    2024年02月08日
    瀏覽(96)
  • Win10中Pro/E鼠標滾輪不能縮放該怎么辦?

    Win10中Pro/E鼠標滾輪不能縮放該怎么辦?

    Pro/E安裝好后,鼠標滾輪不能縮放模型,該怎么辦?問題多發(fā)生在win8/win10上,新裝了PROE,發(fā)現(xiàn)滑動鼠標中鍵不能放大縮小。 彩虹圖紙管理軟件_圖紙管理系統(tǒng)_圖紙文檔管理軟件系統(tǒng)_彩虹EDM【官網(wǎng)】 彩虹EDM圖紙管理軟件系統(tǒng),由南寧市二零二五科技有限公司 自主研發(fā)。為用戶

    2024年02月08日
    瀏覽(99)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包