これは私がかなりの量のドキュメントを見たものですが、私の知識のこの特定のギャップに対する正確な答えを得ることができず、それのために壁にぶつかり続けています。このレベルでは実際には何もカバーしていないようです。
いくつかのウィンドウがあり、それらはすべてドラッグ可能である必要があるため、ユーティリティファイルを作成しています。このファイルにはこれがあります:
def mouseMoveEvent(self, event):
if self.moving: self.move(event.globalPos()-self.offset)
def mousePressEvent(self, event):
if event.button() == QtCore.Qt.LeftButton:
self.moving = True; self.offset = event.pos()
def mouseReleaseEvent(self, event):
if event.button() == QtCore.Qt.LeftButton:
self.moving = False
そして、これは、実際のウィンドウで1つのファイルに入れて(別のファイルから呼び出さないで)機能します。
問題は、別のファイル(UIウィンドウがあるファイル)からこれを呼び出すにはどうすればよいですか?
私はそれを呼んでいます
from utils import *
したがって、技術的には、これらの関数はすべて、入力するだけでアクセスできます
mouseReleaseEvent(x,x)
しかし、これらの関数をインポートするにはUIが必要なので、「from utils import *」を配置した後のメインファイルに、次のように入力します。
self.moving = False
しかし、そのエラーは私が何をしても。それで、問題は、UIファイル内からそれらを呼び出すことができるように、最初にリストされた関数(最初のコードブロック)を囲む適切な方法は何ですか?
これが私のUIコードです:
#!/usr/bin/env python
import sys
import os
from PyQt4 import QtCore, QtGui
from vibotCss import css
from viUtils import *
class viBadOSUI(QtGui.QDialog):
def __init__(self):
QtGui.QDialog.__init__(self)
#setup window
self.setWindowFlags(QtCore.Qt.FramelessWindowHint)
self.resize(300, 150)
center(self)
self.setMouseTracking(True)
#additional code
self.show()
self.setStyleSheet(css)
app = QtGui.QApplication(sys.argv)
window = viBadOSUI()
sys.exit(app.exec_())
長い間AutodeskMaya内からのみPythonを学習して使用したため、Pythonの知識に大きなギャップがあります。現在、このギャップを埋めようとしています。助けてくれてありがとう。