Exemple #1
0
    def __init__(self, *args, **kwargs):
        parent = kwargs.get('parent', None)
        super(UnrealWindow, self).__init__(*args, **kwargs)

        if not parent:
            unreal.parent_external_window_to_slate(self.winId())
            print(self.parent())
Exemple #2
0
    def __init__(self, parent=None, **kwargs):
        super(UnrealWindow, self).__init__(parent, **kwargs)
        self.unreal = True
        self.standalone = False

        # Parenting external windows was only added in 4.20
        try:
            unreal.parent_external_window_to_slate(self.winId())
        except AttributeError:
            pass
def alert(msg=u"msg", title=u"警告", icon=QtWidgets.QMessageBox.Warning, button_text=u"确定"):
    # NOTE 生成 Qt 警告窗口
    msg_box = QtWidgets.QMessageBox()
    msg_box.setIcon(icon)
    msg_box.setWindowTitle(title)
    msg_box.setText(msg)
    msg_box.addButton(button_text, QtWidgets.QMessageBox.AcceptRole)
    unreal.parent_external_window_to_slate(msg_box.winId())
    dayu_theme.apply(msg_box)
    msg_box.exec_()
    def wrapper(self, single=True, *args, **kwargs):
        if single:
            # TODO crash
            for win in QtWidgets.QApplication.allWidgets():
                if win is self:
                    continue
                elif self.__class__.__name__ in str(type(win)):
                    win.deleteLater()
                    win.close()

        res = func(self, *args, **kwargs)
        # NOTE https://forums.unrealengine.com/unreal-engine/unreal-studio/1526501-how-to-get-the-main-window-of-the-editor-to-parent-qt-or-pyside-application-to-it
        unreal.parent_external_window_to_slate(self.winId())
        dayu_theme.apply(self)
        return res
    def wrapper(self, single=True, *args, **kwargs):
        # NOTE 只保留一个当前类窗口
        if single:
            for win in QtWidgets.QApplication.topLevelWidgets():
                if win is self:
                    continue
                elif self.__class__.__name__ in str(type(win)):
                    win.deleteLater()
                    # win.setParent(None)
                    win.close()

        # NOTE https://forums.unrealengine.com/unreal-engine/unreal-studio/1526501-how-to-get-the-main-window-of-the-editor-to-parent-qt-or-pyside-application-to-it
        # NOTE 让窗口嵌入到 unreal 内部
        unreal.parent_external_window_to_slate(self.winId())
        res = func(self, *args, **kwargs)
        # NOTE 添加 dayu_widget 的样式
        dayu_theme.apply(self)
        return res
Exemple #6
0
    def __init__(self, parent=None):
        super(QtWindowOne, self).__init__(parent)

        layout = QtGui.QVBoxLayout()
        self.setLayout(layout)

        self.label = QtGui.QLabel("Test")
        layout.addWidget(self.label)

        self.button = QtGui.QPushButton("click")
        self.button.clicked.connect(self.clickEvent)

        layout.addWidget(self.label)
        layout.addWidget(self.button)

        self.setWindowTitle(WINDOW_NAME)
        self.setGeometry(100, 100, self.width(), self.height())

        unreal.parent_external_window_to_slate(self.winId())
Exemple #7
0
    def run_unreal(self, **kwargs):
        # https://github.com/20tab/UnrealEnginePython
        # https://forums.unrealengine.com/development-discussion/python-scripting/1674204-dock-qtwidget-to-unreal
        # https://github.com/AlexQuevillon/UnrealPythonLibrary/blob/master/UnrealProject/UnrealPythonLibrary/Plugins/UnrealPythonLibraryPlugin/Content/Python/PythonLibraries/QtFunctions.py
        # https://forums.unrealengine.com/unreal-engine/unreal-studio/1526501-how-to-get-the-main-window-of-the-editor-to-parent-qt-or-pyside-application-to-it
        app = QtWidgets.QApplication.instance()

        if not app:
            # create the first instance
            app = QtWidgets.QApplication(sys.argv)
            app.aboutToQuit.connect(self.on_exit_unreal)

        atexit.register(self.on_exit_unreal)

        self.boil = None

        self.event_loop = QtCore.QEventLoop()
        self.boil = self.guiClass(None, self.window_title, self.window_object)
        mayapalette.set_maya_palette_with_tweaks(PALETTE_FILEPATH)
        unreal.parent_external_window_to_slate(self.boil.winId())
        self.boil.show()
Exemple #8
0
def parent_qt_window(qt_widget):
    unreal.parent_external_window_to_slate(qt_widget.winId())
Exemple #9
0
import unreal
import site
import sys

site.addsitedir("C:/Python27/Lib/site-packages")
from PySide import QtCore, QtGui, QtUiTools


class VolumeSlider(QtGui.QDialog):
    def __init__(self, parent=None):
        super(VolumeSlider, self).__init__(parent)
        self.setWindowTitle("Visual Tech - Animation Importer")
        self.setGeometry(100, 50, self.width(), self.height())
        self.importBtn = QtGui.QPushButton("Import Animation")
        layout = QtGui.QVBoxLayout()
        layout.addWidget(self.importBtn)
        self.setLayout(layout)


APP = None
if not QtGui.QApplication.instance():
    APP = QtGui.QApplication(sys.argv)

main_window = VolumeSlider()
main_window.show()
unreal.parent_external_window_to_slate(main_window.winId())
Exemple #10
0
import sys

from PySide2 import QtGui
from PySide2 import QtWidgets

import unreal


class TestWidget(QtWidgets.QWidget):
    def __init__(self, parent=None):
        super(TestWidget, self).__init__(parent)

        vbox = QtWidgets.QVBoxLayout(self)
        btn = QtWidgets.QPushButton("Test")
        btn.clicked.connect(self.btn_clicked)
        vbox.addWidget(btn)

    def btn_clicked(self):
        print("Clicked")
        unreal.log("Clicked")


app = None
if not QtWidgets.QApplication.instance():
    app = QtWidgets.QApplication(sys.argv)

widget = TestWidget()
widget.show()
unreal.parent_external_window_to_slate(widget.winId())
__author__ = 'timmyliang'
__email__ = '*****@*****.**'
__date__ = '2020-01-09 12:57:22'
"""

"""

import sys
import Tkinter
import tkMessageBox
import unreal

win = Tkinter.Tk()
win.withdraw()
unreal.parent_external_window_to_slate(win.winfo_id())
# tkMessageBox.showerror("错误", sys.argv[0])
win.mainloop()
win.destroy()

# class Error(object,tk.Toplevel):
#     def __init__(self, root ,message):
#         tk.Toplevel.__init__(self)

#         tk.Label(self, text=message).grid(row=0, column=0)
#         tk.Button(self, command=self.destroy, text="OK").grid(row=1, column=0)
#         self.lift()  # Puts Window on top
#         self.grab_set()  # Prevents other Tkinter windows from being used

#         self.root = root