mirror of
https://gitgud.io/ll.mirrors/sizedapparel.git
synced 2024-08-15 00:43:40 +00:00
Mirror of 1.4.15 from Lovers Lab
This commit is contained in:
parent
9a3d9f4185
commit
a5ed05c17b
1180 changed files with 4378 additions and 1905 deletions
128
Tools/SizedApparelTool/main.py
Normal file
128
Tools/SizedApparelTool/main.py
Normal file
|
@ -0,0 +1,128 @@
|
|||
import sys
|
||||
import math
|
||||
from PyQt5.QtCore import QPoint
|
||||
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QToolTip , QMainWindow, QAction, qApp , QHBoxLayout, QVBoxLayout, QFrame
|
||||
from PyQt5.QtWidgets import QRadioButton, QCheckBox, QGroupBox, QGridLayout, QMenu, QTabWidget, QDesktopWidget, QLabel, QStatusBar
|
||||
from PyQt5.QtGui import QPixmap
|
||||
from PyQt5.QtGui import QFont
|
||||
from PyQt5.QtGui import QIcon
|
||||
from PyQt5.QtCore import QCoreApplication
|
||||
|
||||
|
||||
|
||||
class MyApp(QWidget):
|
||||
graphic_image = QPixmap
|
||||
lbl_img = QLabel
|
||||
|
||||
def __init__(self):
|
||||
super().__init__()
|
||||
self.setWindowTitle('ImagePointFinder')
|
||||
self.statusbar = QStatusBar()
|
||||
self.statusbar.showMessage("Click Image to Get Position")
|
||||
self.initUI()
|
||||
self.setAcceptDrops(True)
|
||||
self.posX = 0.0
|
||||
self.posY = 0.0
|
||||
self.Rot = 0.0
|
||||
self.Len = 0
|
||||
|
||||
#self.setStatusBar(self.statusbar)
|
||||
|
||||
def dragEnterEvent(self, event):
|
||||
if event.mimeData().hasUrls():
|
||||
event.accept()
|
||||
else:
|
||||
event.ignore()
|
||||
|
||||
def dropEvent(self, event):
|
||||
files = [u.toLocalFile() for u in event.mimeData().urls()]
|
||||
for f in files:
|
||||
print(f)
|
||||
self.graphic_image = QPixmap(files[0])
|
||||
|
||||
self.lbl_img.setPixmap(self.graphic_image.scaled(512,512))
|
||||
#self.lbl_img.frame = QFrame(self.lbl_img.frame)
|
||||
self.lbl_img.setFrameShape(QFrame.Box)
|
||||
|
||||
def mousePressEvent(self, event):
|
||||
#event.x()
|
||||
|
||||
#print()
|
||||
self.posX = event.globalX() - self.lbl_img.mapToGlobal(QPoint(0,0)).x()
|
||||
self.posY = event.globalY() - self.lbl_img.mapToGlobal(QPoint(0,0)).y()
|
||||
self.Rot = 0.0
|
||||
self.Len = 0.0
|
||||
U = 0
|
||||
V = 0
|
||||
if(self.lbl_img.pixmap()):
|
||||
U = (self.posX / self.lbl_img.pixmap().height())-0.5
|
||||
V = (self.posY / self.lbl_img.pixmap().width())*-1 + 0.5
|
||||
txt = "Clicked Position ; Position(x,y) =({0:.3f}, {1:.3f}) , Rotation = {2:.1f}, Length = {3:.3f} ".format(U, V, self.Rot, self.Len)
|
||||
self.statusbar.showMessage(txt)
|
||||
#print(event.globalX())
|
||||
|
||||
def mouseMoveEvent(self, event):
|
||||
target_posX = event.globalX() - self.lbl_img.mapToGlobal(QPoint(0,0)).x()
|
||||
target_posY = event.globalY() - self.lbl_img.mapToGlobal(QPoint(0,0)).y()
|
||||
|
||||
self.Rot = math.degrees( math.atan2(target_posY - self.posY, target_posX - self.posX)) + 90
|
||||
if(self.Rot < 0):
|
||||
self.Rot = self.Rot + 360
|
||||
|
||||
|
||||
if(self.lbl_img.pixmap()):
|
||||
U = (self.posX / self.lbl_img.pixmap().height())-0.5
|
||||
V = (self.posY / self.lbl_img.pixmap().width())*-1 + 0.5
|
||||
tU = target_posX / self.lbl_img.pixmap().height()
|
||||
tV = target_posY / self.lbl_img.pixmap().width()
|
||||
self.Len = math.fabs(math.dist((U,V),( tU, tV)))
|
||||
txt = "Clicked Position ; Position(x,y) =({0:.3f}, {1:.3f}) , Rotation = {2:.1f}, Length = {3:.3f} ".format(U, V, self.Rot, self.Len)
|
||||
self.statusbar.showMessage(txt)
|
||||
|
||||
def initUI(self):
|
||||
tab1 = QWidget()
|
||||
tab2 = QWidget()
|
||||
|
||||
tabs = QTabWidget()
|
||||
tabs.addTab(tab1, 'Texture Pivot and Point Editor')
|
||||
#tabs.addTab(tab2, 'Sized Texture List Editor')
|
||||
|
||||
vbox = QVBoxLayout()
|
||||
vbox.addWidget(tabs)
|
||||
|
||||
self.graphic_image = QPixmap()
|
||||
self.lbl_img = QLabel()
|
||||
#self.lbl_img.setPixmap(self.graphic_image)
|
||||
self.lbl_img.setText("Drag and Drop Image Here")
|
||||
|
||||
vbox2 = QVBoxLayout()
|
||||
vbox2.addWidget(self.lbl_img)
|
||||
vbox2.addWidget(self.statusbar)
|
||||
tab1.setLayout(vbox2)
|
||||
|
||||
|
||||
self.setLayout(vbox)
|
||||
|
||||
#print(self.hasMouseTracking())
|
||||
self.setMouseTracking(True)
|
||||
|
||||
#print(self.hasMouseTracking())
|
||||
|
||||
|
||||
self.setGeometry(500, 500, 500, 400)
|
||||
self.center()
|
||||
|
||||
self.show()
|
||||
#self.statusbar.show()
|
||||
|
||||
def center(self):
|
||||
qr = self.frameGeometry()
|
||||
cp = QDesktopWidget().availableGeometry().center()
|
||||
qr.moveCenter(cp)
|
||||
self.move(qr.topLeft())
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
app = QApplication(sys.argv)
|
||||
ex = MyApp()
|
||||
sys.exit(app.exec_())
|
Loading…
Add table
Add a link
Reference in a new issue