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

[pyqt5]關(guān)于在pyqt5界面上鼠標(biāo)位置問題

這篇具有很好參考價值的文章主要介紹了[pyqt5]關(guān)于在pyqt5界面上鼠標(biāo)位置問題。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

先上代碼,主要看鼠標(biāo)移動事件里面代碼

import sys
from PyQt5 import QtCore
from PyQt5.QtCore import Qt, QPoint
from PyQt5.QtGui import QPainter, QPen, QPixmap, QPainterPath, QFont, QColor, QBrush
from PyQt5.QtWidgets import QApplication, QWidget
import numpy as np


class DemoMouseEvent(QWidget):
    def __init__(self, parent=None):
        super(DemoMouseEvent, self).__init__(parent)
        # 設(shè)置窗口標(biāo)題
        self.setWindowTitle('鼠標(biāo)事件演示')
        # 設(shè)置窗口大小
        self.setFixedSize(480, 320)

        self.beginPoint = QPoint()  # 起始點(diǎn)
        self.endPoint = QPoint()  # 結(jié)束點(diǎn)

        self.pixmap = QPixmap('d:\\67.jpg')
        #self.pixmap.fill(Qt.lightGray)
        self.copt_pixmap =self.pixmap.copy()
        self.setMouseTracking(True)
        self.cur_x = 0
        self.cur_y = 0


    def draw(self, painter):
        path = QPainterPath()
        f = QFont('黑體', 10)
        point = QPoint(20, 20)
        path.addText(point, f, "世界您好")
        point1 = QPoint(250, 250)
        point2 = QPoint(self.cur_x, self.cur_y)
        path.moveTo(point)
        path.lineTo(point1)
        path.lineTo(point2)
        path.lineTo(point)
        #path.addEllipse(point, 5, 5)
        painter.fillPath(path, QColor(0, 255, 0, 128))
        painter.drawPath(path)

    # 重繪窗口事件
    def paintEvent(self, event):
        self.pixmap=self.copt_pixmap.copy()
        pp = QPainter(self.pixmap)
        pp.setPen(QPen(Qt.blue, 2))  # 設(shè)置畫筆
        self.draw(pp)
        # 繪制直線
        pp.drawLine(self.beginPoint, self.endPoint)
        # 上一直線的終點(diǎn)就是下一直線的起點(diǎn)
        self.beginPoint = self.endPoint

        # 在畫布上畫出
        painter = QPainter(self)
        painter.drawPixmap(0, 0, self.pixmap)


    def wheelEvent(self, ev):
        mods = ev.modifiers()
        # print('mods=', mods)
        delta = ev.angleDelta()
        # print('delta=', delta)
        if QtCore.Qt.ControlModifier == int(mods):
            if int(delta.y()) > 0:
                print("ctrl 向上滾輪")
            else:
                print("ctrl 向下滾輪")

    def mousePressEvent(self, event):
        # 鼠標(biāo)左鍵按下
        if event.button() == Qt.LeftButton:
            self.startPoint = event.pos()

    def mouseReleaseEvent(self, event):
        # 鼠標(biāo)左鍵釋放
        if event.button() == Qt.LeftButton:
            self.endPoint = event.pos()
            # 重新繪制
            self.update()

    def mouseMoveEvent(self, event):
        tmp1 = event.y()
        tmp2 = event.localPos().y()
        tmp3 = event.pos().y()
        tmp4 = event.windowPos().y()

        tmp5 = event.y() + self.y()
        
        tmp6 = event.screenPos().y()
        tmp7 = event.globalPos().y()
        print("所有點(diǎn)的位置:")
        print(tmp1)
        print(tmp2)
        print(tmp3)
        print(tmp4)
        print(tmp5)
        print(tmp6)
        print(tmp7)
        # 鼠標(biāo)左鍵按下的同時移動鼠標(biāo)
        if event.buttons() and Qt.LeftButton:
            self.endPoint = event.pos()
            # 重新繪制
            self.update()


if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = DemoMouseEvent()
    window.show()
    sys.exit(app.exec())

通過運(yùn)行代碼可以發(fā)現(xiàn):

tmp1 = event.y()
tmp2 = event.localPos().y()
tmp3 = event.pos().y()
tmp4 = event.windowPos().y()
上面四個是相對于父控件的坐標(biāo),搞編程都知道圖像坐標(biāo)是x軸是圖像上面,y軸是圖像左側(cè)


tmp5 = event.y() + self.y()
上面這個是相對于窗口坐標(biāo)
tmp6 = event.screenPos().y()
tmp7 = event.globalPos().y()?

上面這2行就是相當(dāng)于屏幕左上角坐標(biāo)了文章來源地址http://www.zghlxwxcb.cn/news/detail-551004.html

到了這里,關(guān)于[pyqt5]關(guān)于在pyqt5界面上鼠標(biāo)位置問題的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 如何在pycharm里邊配置pyqt5、qt5-applications,使用拖拽功能設(shè)計UI界面

    如何在pycharm里邊配置pyqt5、qt5-applications,使用拖拽功能設(shè)計UI界面

    安裝pyqt5和qt5-applications 網(wǎng)上很多說要安裝pyqt5-tools,但是里邊并沒有找到designer.exe這個文件,最終是在qt5-applications里邊的Qt/bin找到了designer.exe文件。 在pycharm中配置designer working directory可以自己手動配置工程目錄,也可以直接點(diǎn)擊后面的按鈕選擇$ProjectFileDir$ 在pycharm中配置p

    2024年02月02日
    瀏覽(27)
  • PyQt5設(shè)計好UI界面后,通過Python文件打開,控件集中在左上角問題解決方案

    PyQt5設(shè)計好UI界面后,通過Python文件打開,控件集中在左上角問題解決方案

    ????????在用PyQt5做GUI界面時遇到的一個問題,在QtDesigner預(yù)覽的界面正常,但是轉(zhuǎn)換成.py文件后show()出來的界面,控件都擠在左上角無法使用。 目錄 一、問題 1.QtDesigner預(yù)覽的界面正常?編輯 2.轉(zhuǎn)換.py文件后通過show()方法,顯示異常 二,解決方法 1.在MainWindow = QtWidgets.QM

    2024年02月04日
    瀏覽(33)
  • 【pyqt5】【多線程】【matplotlib】解決子線程上運(yùn)行的matplotlib無法在主線程上的UI界面上繪制圖形的問題

    【pyqt5】【多線程】【matplotlib】解決子線程上運(yùn)行的matplotlib無法在主線程上的UI界面上繪制圖形的問題

    在使用PyQt5為一個項目寫UI界面的時候,我試圖把matplotlib繪制的圖像展示在UI界面的窗口中,但matplotlib是運(yùn)行在一個子線程中的,這導(dǎo)致它出現(xiàn)了如下警告: UserWarning: Starting a Matplotlib GUI outside of the main thread will likely fail. 并且我無法使用 matplotlib.backends.backend_qt5agg 下的 Figur

    2024年02月08日
    瀏覽(31)
  • pyqt5界面自適應(yīng)

    pyqt5界面自適應(yīng)

    打開Qt Designer 創(chuàng)建一個窗體 假設(shè)界面控件需要這樣的,想讓這些控件跟著窗體任意大小 ?如果沒有設(shè)計好這個控件之間的布局,直接將這個窗體創(chuàng)建布局(即在空白處右鍵點(diǎn)擊布局選擇符合的布局)會導(dǎo)致根據(jù)所選的布局直接把所有的控件移位。比如點(diǎn)擊了垂直布局,就直接

    2024年02月11日
    瀏覽(19)
  • PyQt5登錄界面跳轉(zhuǎn)

    PyQt5登錄界面跳轉(zhuǎn)

    目錄 1、設(shè)計ui界面 2、設(shè)計邏輯代碼,實(shí)現(xiàn)登錄界面跳轉(zhuǎn) 3、結(jié)果 1、設(shè)計ui界面 設(shè)計后的ui界面 在這里可以設(shè)置密碼不顯示 這里可以設(shè)置快捷鍵 最后將ui界面轉(zhuǎn)為py文件后獲得的邏輯代碼為:(文件名為 Login.py ) 2、設(shè)計邏輯代碼,實(shí)現(xiàn)登錄界面跳轉(zhuǎn) 這里登錄后,我們轉(zhuǎn)到

    2024年02月12日
    瀏覽(17)
  • pyqt5優(yōu)化美化界面代碼

    pyqt5優(yōu)化美化界面代碼

    自用的pyqt5界面優(yōu)化美化代碼,方便自己寫界面時復(fù)制,也順便造福廣大網(wǎng)友吧! 首先安裝基礎(chǔ)工具: Pycharm配置QtDesigner(PyUIC、PyRcc ) 并懂得如何規(guī)范化創(chuàng)建qt界面: QtDesigner規(guī)范創(chuàng)建應(yīng)用界面 文章將持續(xù)更新....... 鼠標(biāo)不置于其上效果: 鼠標(biāo)置于其上但不點(diǎn)擊效果: 點(diǎn)擊效

    2024年02月03日
    瀏覽(28)
  • [pyqt5]觸發(fā)ctrl+鼠標(biāo)滾輪事件

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

    2024年02月13日
    瀏覽(34)
  • 界面開發(fā)(2)--- 使用PyQt5制作用戶登陸界面

    界面開發(fā)(2)--- 使用PyQt5制作用戶登陸界面

    上篇文章已經(jīng)介紹了如何配置PyQt5環(huán)境,這篇文章在此基礎(chǔ)上展開,主要記錄一下如何使用 PyQt5 制作用戶登陸界面,并對一些基礎(chǔ)操作進(jìn)行介紹。 下面是具體步驟,一起來看看吧! 1. 打開 Pycharm 中的 Qt Designer 工具。 2. 選擇Main Window模式,創(chuàng)建界面窗口。 3. 移除菜單欄和狀態(tài)

    2024年02月05日
    瀏覽(22)
  • 界面開發(fā)(1) --- PyQt5環(huán)境配置

    界面開發(fā)(1) --- PyQt5環(huán)境配置

    第一步:首先安裝社區(qū)版Pycharm 下載地址:https://www.jetbrains.com/pycharm/download/#section=windows 第二步:安裝Anaconda3,配置虛擬環(huán)境 下載地址:https://www.anaconda.com/ 第三步:安裝 Python 第三方庫,包括 pyqt5,pyqt5-tools 和 pyqt5designer 在cmd中使用 pip install pyqt5 , pip install pyqt5-tools , pip in

    2024年04月12日
    瀏覽(28)
  • 使用PYQT5設(shè)計登錄界面并實(shí)現(xiàn)界面跳轉(zhuǎn)

    使用PYQT5設(shè)計登錄界面并實(shí)現(xiàn)界面跳轉(zhuǎn)

    目錄 ? 1 UI登錄界面的布局 2 UI登錄界面布局對應(yīng)的代碼 3 登錄界面和界面跳轉(zhuǎn)完整代碼 4 跳轉(zhuǎn)界面代碼函數(shù)和優(yōu)化界面代碼 5 最終效果 ? ? ? ?其中, 歡迎使用 XXXX 軟件管理員密碼 使用的是左邊功能的 label 類、 登錄 使用的是左邊功能的 Push Button 類、 管理員和密碼的輸入

    2024年02月02日
    瀏覽(21)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包