def retranslateUi(self, CodeEditorWidget): CodeEditorWidget.setWindowTitle( QtCompat.translate("CodeEditorWidget", "Python node editor", None, -1)) self.leLabel.setText( QtCompat.translate("CodeEditorWidget", "PythonNode", None, -1)) self.leLabel.setPlaceholderText( QtCompat.translate("CodeEditorWidget", "Node label...", None, -1)) self.pbAddInput.setText( QtCompat.translate("CodeEditorWidget", "add input", None, -1)) self.pbAddOutput.setText( QtCompat.translate("CodeEditorWidget", "add output", None, -1)) self.pbKillSelectedItems.setText( QtCompat.translate("CodeEditorWidget", "kill selected pins", None, -1)) self.tabWidget.setTabText( self.tabWidget.indexOf(self.tabPins), QtCompat.translate("CodeEditorWidget", "Pins", None, -1)) self.tabWidget.setTabText( self.tabWidget.indexOf(self.tabCode), QtCompat.translate("CodeEditorWidget", "Code", None, -1)) self.pbReset.setText( QtCompat.translate("CodeEditorWidget", "reset", None, -1)) self.pbSave.setText( QtCompat.translate("CodeEditorWidget", "save", None, -1))
def test_wrapInstance(): """Tests .wrapInstance cast of pointer to explicit class Note: sip.wrapInstance will ignore the explicit class if there is a more suitable type available. """ from Qt import QtCompat, QtWidgets app = QtWidgets.QApplication(sys.argv) try: button = QtWidgets.QPushButton("Hello world") button.setObjectName("MySpecialButton") pointer = QtCompat.getCppPointer(button) widget = QtCompat.wrapInstance(long(pointer), QtWidgets.QWidget) assert widget.objectName() == button.objectName() if binding("PyQt4") or binding("PyQt5"): # Even when we explicitly pass QWidget we will get QPushButton assert type(widget) is QtWidgets.QPushButton, widget else: assert type(widget) is QtWidgets.QWidget, widget # IMPORTANT: this differs across sip and shiboken. if binding("PySide") or binding("PySide2"): assert widget != button else: assert widget == button finally: app.exit()
def test_implicit_wrapInstance(): """.wrapInstance doesn't need the `base` argument""" from Qt import QtCompat, QtWidgets app = QtWidgets.QApplication(sys.argv) try: button = QtWidgets.QPushButton("Hello world") button.setObjectName("MySpecialButton") pointer = QtCompat.getCppPointer(button) widget = QtCompat.wrapInstance(long(pointer)) assert isinstance(widget, QtWidgets.QWidget), widget assert widget.objectName() == button.objectName() if binding("PySide"): assert widget != button elif binding("PySide2") and _pyside2_commit_date() is None: assert widget != button elif binding("PySide2") and \ _pyside2_commit_date() <= datetime.datetime( 2017, 8, 25): assert widget == button else: assert widget == button finally: app.exit()
def __init__(self, parent=None): super(StoreXml, self).__init__(parent) # load the ui #import __main__ #self.parentWindow = __main__.__dict__["blurDeformWindow"] #blurdev.gui.loadUi( __file__, self ) QtCompat.loadUi(getUiFile(__file__), self) self.parentWindow = parent #------------------------ self.parentWindow.saveXmlWin = self self.setWindowFlags(QtCore.Qt.Tool | QtCore.Qt.WindowStaysOnTopHint) self.setWindowTitle("Store xml file") self.uiAllFramesTW.setSelectionMode( QtWidgets.QAbstractItemView.ExtendedSelection) self.uiAllFramesTW.setAlternatingRowColors(True) self.uiDoStoreBTN.clicked.connect(self.buttonAction) self.uiXmlStoreFile = filepickerwidget.FilePickerWidget(self) self.botLay.insertWidget(0, self.uiXmlStoreFile) self.uiXmlStoreFile.filenameChanged.connect(self.fileIsPicked)
def __init__(self, parent): super(shortcutsClass, self).__init__(parent) self.setupUi(self) QtCompat.setSectionResizeMode(self.table.horizontalHeader(), QtWidgets.QHeaderView.Stretch) self.table.setColumnCount(2) self.table.setHorizontalHeaderLabels(['Action', 'Shortcut']) self.read()
def __init__(self): super(MyWindow, self).__init__() QtCompat.loadUi(ui_path, self) self.open_button.clicked.connect(self.open) self.export_button.clicked.connect(self.export) self.import_button.clicked.connect(self.importation)
def test_implicit_wrapInstance_for_base_types(): """Tests .wrapInstance implicit cast of `Foo` pointer to `Foo` object Testing is based upon the following parameters: 1. The `base` argument has a default value. 2. `Foo` is a standard Qt class. """ from Qt import QtCompat, QtWidgets app = QtWidgets.QApplication(sys.argv) try: button = QtWidgets.QPushButton("Hello world") button.setObjectName("MySpecialButton") pointer = QtCompat.getCppPointer(button) widget = QtCompat.wrapInstance(long(pointer)) assert widget.objectName() == button.objectName() assert type(widget) is QtWidgets.QPushButton, widget if binding("PySide"): assert widget != button elif binding("PySide2") and _pyside2_commit_date() is None: assert widget != button elif binding("PySide2") and \ _pyside2_commit_date() <= datetime.datetime( 2017, 8, 25): assert widget == button else: assert widget == button finally: app.exit()
def __init__(self, *args, **kwds): super(Launcher, self).__init__(*args, **kwds) DIR,file_name = os.path.split(__file__) base_name,_ = os.path.splitext(file_name) ui_path = os.path.join(DIR,"%s.ui" % base_name) QtCompat.loadUi(ui_path,self) # NOTE 隐藏 Error_Label self.Error_Label.hide() # NOTE 设置图标 style = QtWidgets.QApplication.style() icon = style.standardIcon(QtWidgets.QStyle.SP_FileDialogContentsView) pixmap = icon.pixmap(32,32) # pixmap = style.standardPixmap(QtWidgets.QStyle.SP_FileDialogContentsView) bitmap = pixmap.createMaskFromColor(QtGui.QColor(50, 50, 50)) pixmap.setMask(bitmap) self.Label.setPixmap(pixmap) # TODO 设置状态标签 self.setWindowFlags(QtCore.Qt.Popup|QtCore.Qt.FramelessWindowHint) self.setAttribute(QtCore.Qt.WA_TranslucentBackground) # self.setFlags(QtCore.Qt.WA_TranslucentBackground) self.LineEdit.returnPressed.connect(self.accept) self.show()
def test_isValid(): """.isValid and .delete work in all bindings""" from Qt import QtCompat, QtCore obj = QtCore.QObject() assert QtCompat.isValid(obj) QtCompat.delete(obj) assert not QtCompat.isValid(obj)
def __init__(self): super(Dialog, self).__init__() QtCompat.loadUi(os.path.join(__file__, '../downloader.ui'), self) self.file_sets = {} self._files = RemoteFiles() self.is_downloading = False # Recover from config. self.dir = CONFIG['OUTPUT_DIR'] # Setup radio buttons. self.radioButtonSubmit.toggled.connect( lambda status: self.on_radio_toggled(SUBMIT_FILE, status)) select = cgtwq.DesktopClient().selection() pipeline = select.module.database.pipeline.filter( cgtwq.Filter('entity', select['pipeline'][0]))[0] for filebox in ( select.module.database.filebox.list_by_pipeline(pipeline)): button = QRadioButton(filebox.title) button.setObjectName(filebox.title) button.toggled.connect(lambda status, target=filebox: self. on_radio_toggled(target, status)) self.groupBox.layout().addWidget(button) # Connect signals. self.toolButton.clicked.connect(self.ask_dir) self.lineEditDir.editingFinished.connect(self.autoset) self.checkBoxSkipSame.toggled.connect(self.update_filelist) self.update_filelist()
def __init__(self, system): super(SystemSettingsWidget, self).__init__() uiPath = os.path.join(os.path.dirname(__file__), "ui", "systemSettingsWidget.ui") QtCompat.loadUi(uiPath, self) self._system = None self._connectionWidgets = {} self._settingsWidgets = {} self._settingsWidget = None self.uiPreScriptWDG = ScriptWidget("pre") self.uiScriptsTAB.layout().addWidget(self.uiPreScriptWDG) self.uiPostScriptWDG = ScriptWidget("post") self.uiScriptsTAB.layout().addWidget(self.uiPostScriptWDG) if system: self.setSystem(system) # Connect Signals self.uiTypeCBOX.currentIndexChanged.connect(self.swap) self.uiVersionCBOX.currentIndexChanged.connect(self.swap) self.uiLocationCBOX.currentIndexChanged.connect(self.rename) self.uiNameLINE.editingFinished.connect(self.rename) self.uiAddConnectionBTN.clicked.connect(self.addConnection) self.uiConnectionPortCBOX.currentIndexChanged.connect(self.loadConnectionTypes) self.uiPreScriptWDG.updated.connect(self.scriptUpdated) self.uiPostScriptWDG.updated.connect(self.scriptUpdated)
def setData(self, data): # it could be argued that we should early out here if data is self.getData(), # but we can't right now as we're relying on setData() to update everything # when the data has been modified in place by some external process, or # by self.__removeSelection. if data is not None: if not isinstance(data, list): data = [data] self.__model = _Model(data, self.__tableView, self.getEditable(), self.__headerOverride, self.__columnToolTips, self.__columnEditability) self.__model.dataChanged.connect( Gaffer.WeakMethod(self.__modelDataChanged)) self.__model.rowsInserted.connect( Gaffer.WeakMethod(self.__emitDataChangedSignal)) self.__model.rowsRemoved.connect( Gaffer.WeakMethod(self.__emitDataChangedSignal)) else: self.__model = None self.__tableView.setModel(self.__model) if self.__model: columnIndex = 0 haveResizeableContents = False for accessor in self.__model.vectorDataAccessors(): for i in range(0, accessor.numColumns()): delegate = _Delegate.create(accessor.data()) delegate.setParent(self.__model) self.__tableView.setItemDelegateForColumn( columnIndex, delegate) canStretch = delegate.canStretch() haveResizeableContents = haveResizeableContents or canStretch columnIndex += 1 QtCompat.setSectionResizeMode( self.__tableView.horizontalHeader(), QtWidgets.QHeaderView.ResizeToContents if haveResizeableContents else QtWidgets.QHeaderView.Fixed) self.__tableView.horizontalHeader().setStretchLastSection( canStretch) self.__tableView.setSizePolicy( QtWidgets.QSizePolicy( QtWidgets.QSizePolicy.Expanding if canStretch else QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Maximum)) selectionModel = self.__tableView.selectionModel() selectionModel.selectionChanged.connect( Gaffer.WeakMethod(self.__selectionChanged)) self.__updateRemoveButtonEnabled() # Somehow the QTableView can leave its header in a state where updates are disabled. # If we didn't turn them back on, the header would disappear. self.__tableView.verticalHeader().setUpdatesEnabled(True) self.__tableView.updateGeometry()
def retranslateUi(self, Form): Form.setWindowTitle(QtCompat.translate("Form", "Form", None, -1)) self.label.setText(QtCompat.translate("Form", "x", None, -1)) self.label_2.setText(QtCompat.translate("Form", "y", None, -1)) self.label_3.setText(QtCompat.translate("Form", "z", None, -1)) self.pbReset.setToolTip( QtCompat.translate("Form", "Reset to defaults", None, -1))
def retranslateUi(self, Form): Form.setWindowTitle(QtCompat.translate("Form", "Form", None, -1)) self.lePinName.setText(QtCompat.translate("Form", "pinName", None, -1)) self.cbHideLabel.setToolTip( QtCompat.translate("Form", "should hide label", None, -1)) self.cbHideLabel.setText( QtCompat.translate("Form", "hide label", None, -1))
def setupUi(self): # Filepaths main_window_file = os.path.join(UI_PATH, "main_window.ui") module_file = os.path.join(UI_PATH, "module.ui") # Load UIs self.main_widget = QtCompat.load_ui(main_window_file) # Main window UI self.module_widget = QtCompat.load_ui(module_file) # Module UI # Attach module to main window UI's boilerVerticalLayout layout self.main_widget.boilerVerticalLayout.addWidget(self.module_widget) # Edit widget which resides in module UI self.module_widget.boilerLabel.setText("Push the button!") # Edit widget which reside in main window UI self.main_widget.boilerPushButton.setText("Push me!") # Set the main widget self.setCentralWidget(self.main_widget) # Define minimum size of UI self.setMinimumSize(200, 200) # Signals # The "pushButton" widget resides in the main window UI self.main_widget.boilerPushButton.clicked.connect(self.say_hello)
def __init__(self, parent=None): super(ArgileAddPose, self).__init__(parent) # load the ui QtCompat.loadUi(getUiFile(__file__), self) self.parentWindow = parent self.parentWindow.addPoseWin = self self.uiTransformLE.setText("N/A") self.uiPoseNameLE.setText("newPose") self.uiAddPoseBTN.clicked.connect(self.addNewPose) self.uiPickTransformBTN.clicked.connect(self.getSelectedTransform) self.uiLocalDeformationRB.toggled.connect( self.uiTransformLE.setEnabled) self.uiLocalDeformationRB.toggled.connect( self.uiPickTransformBTN.setEnabled) self.uiLocalDeformationRB.toggled.connect( self.uiUseTransformLBL.setEnabled) self.uiTangentDeformationRB.toggled.connect( self.uiWarningLabel.setVisible) self.uiWarningLabel.setVisible(False) self.uiWarningExistPoseNameLabel.hide() self.setWindowFlags(QtCore.Qt.Tool | QtCore.Qt.WindowStaysOnTopHint) self.setWindowTitle("Add New Pose")
def __init__(self, config=None, parent=None): self.config = config or dict() super(DialogWithDir, self).__init__(parent) QtCompat.loadUi(unicode(Path(__file__, self.uifile)), self) self._setup_icons() self._load_edits_state() self._setup_edits() self.dir_edit.textChanged.connect(self._validate_dir)
def __init__(self, guide): super(GuideVisibilityWidget, self).__init__() uiPath = os.path.join(os.path.dirname(__file__), "ui", "guideVisibilityWidget.ui") QtCompat.loadUi(uiPath, self) self._visButtons = [] self.setGuide(guide)
def test_load_ui_baseinstance(): """Tests to see if the baseinstance loading loads widgets on properly""" import sys from Qt import QtWidgets, QtCompat app = QtWidgets.QApplication(sys.argv) win = QtWidgets.QWidget() QtCompat.loadUi(self.ui_qwidget, win) assert hasattr(win, 'lineEdit'), "loadUi could not load instance to win" app.exit()
def __init__(self): super(MyWindow, self).__init__() #self.engine = MayaEngine() path = "" # setup ui QtCompat.loadUi(ui_path, self) # replace self.setupUi(Self) self.open_button.clicked.connect(self.open) self.select_button.clicked.connect(self.browse)
def retranslateUi(self, MainWindow): MainWindow.setWindowTitle( QtCompat.translate("MainWindow", "PyFlow", None, -1)) self.label_2.setText( QtCompat.translate("MainWindow", "Name:", None, -1)) self.label.setText( QtCompat.translate("MainWindow", "Category:", None, -1)) self.toolBar.setWindowTitle( QtCompat.translate("MainWindow", "toolBar", None, -1))
def retranslateUi(self, findReplace): findReplace.setWindowTitle( QtCompat.translate("findReplace", "Find and Replace", None, -1)) self.find_btn.setText( QtCompat.translate("findReplace", "Find", None, -1)) self.replace_btn.setText( QtCompat.translate("findReplace", "Replace", None, -1)) self.replaceAll_btn.setText( QtCompat.translate("findReplace", "Replace All", None, -1))
def create(self): self.setSortingEnabled(True) QtCompat.setSectionResizeMode( self.header(), QtWidgets.QHeaderView.ResizeToContents ) self.model = QtWidgets.QFileSystemModel(self) self.model.setFilter(QtCore.QDir.Files) self.setModel(self.model)
def __init__(self, layer): super(LayerSettingsWidget, self).__init__() uiPath = os.path.join(os.path.dirname(__file__), "ui", "layerSettingsWidget.ui") QtCompat.loadUi(uiPath, self) self._layer = None self.connectWidgets() self.setLayer(layer)
def __init__(self): super(ToRef, self).__init__() QtCompat.loadUi(Tools.get_ui_path(), self) self.file = None self.iter = None self.namespaces = None self.thread = MyThread() self.thread.signal.connect(self.update_process) self.toolButton.clicked.connect(self.get_file) self.refButton.clicked.connect(self.check_params)
def retranslateUi(self, Dialog): Dialog.setWindowTitle(QtCompat.translate("Dialog", "About Multi Script Editor", None, -1)) self.title_lb.setText(QtCompat.translate("Dialog", "Multi Script Editor v", None, -1)) self.text_link_lb.setText(QtCompat.translate("Dialog", "Paul Winex 2015", None, -1)) self.textBrowser.setHtml(QtCompat.translate("Dialog", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n" "<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n" "p, li { white-space: pre-wrap; }\n" "</style></head><body style=\" font-family:\'MS Shell Dlg 2\'; font-size:8.25pt; font-weight:400; font-style:normal;\">\n" "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:8pt;\">File not Found :(</span></p></body></html>", None, -1)) self.donate_btn.setText(QtCompat.translate("Dialog", "Donate", None, -1))
def __init__(self): super(MyWindow, self).__init__() self.engine = get_current() # setup ui QtCompat.loadUi(ui_path, self) self.Open_Button.clicked.connect(self.select) self.exportABC.clicked.connect(self.export)
def __init__(self): super(OpenWindow, self).__init__() QtCompat.loadUi(ui_path, self) # Assign the buttons to functions self.exportButton.clicked.connect(self.exportAbc) self.importButton.clicked.connect(self.importAbc) self.searchOpenFileButton.clicked.connect(self.searchOpenFile) self.searchExportFolderButton.clicked.connect(self.searchExportFolder) self.searchExportFileButton.clicked.connect(self.searchExportFile) self.searchOpenFolderButton.clicked.connect(self.searchOpenFolder)
def retranslateUi(self, themeEditor): themeEditor.setWindowTitle( QtCompat.translate("themeEditor", "Code Theme Editor", None, -1)) self.label.setText( QtCompat.translate("themeEditor", "Completer text size", None, -1)) self.save_btn.setText( QtCompat.translate("themeEditor", "Save", None, -1)) self.del_btn.setText(QtCompat.translate("themeEditor", "Del", None, -1)) self.apply_btn.setText( QtCompat.translate("themeEditor", "Save", None, -1))
def test_meta_remap(): """Qt._remap() appends to __modified__""" from Qt import QtCompat module = imp.new_module("QtMock") QtCompat._remap(module, "MyAttr", None) assert "MyAttr" not in QtCompat.__added__, QtCompat.__added__ assert "MyAttr" in QtCompat.__remapped__ assert "MyAttr" not in QtCompat.__modified__
def LoadUI(self, obj): path = inspect.getsourcefile(obj.__class__).replace('\\','/') relpath = path.split(self['CoreDirectory'],1)[-1].rsplit('.',1)[0]+'.ui' uipath = self.GetOverriddenPath(relpath) print('path', path) print('self[CoreDirectory]', self['CoreDirectory']) print('relpath', relpath) print('uipath', uipath) if os.path.exists(uipath): QtCompat.loadUi(uipath, baseinstance=obj)
def setData( self, data ) : # it could be argued that we should early out here if data is self.getData(), # but we can't right now as we're relying on setData() to update everything # when the data has been modified in place by some external process, or # by self.__removeSelection. if data is not None : if not isinstance( data, list ) : data = [ data ] self.__model = _Model( data, self.__tableView, self.getEditable(), self.__headerOverride, self.__columnToolTips, self.__columnEditability ) self.__model.dataChanged.connect( Gaffer.WeakMethod( self.__modelDataChanged ) ) self.__model.rowsInserted.connect( Gaffer.WeakMethod( self.__emitDataChangedSignal ) ) self.__model.rowsRemoved.connect( Gaffer.WeakMethod( self.__emitDataChangedSignal ) ) else : self.__model = None self.__tableView.setModel( self.__model ) if self.__model : columnIndex = 0 haveResizeableContents = False for accessor in self.__model.vectorDataAccessors() : for i in range( 0, accessor.numColumns() ) : delegate = _Delegate.create( accessor.data() ) delegate.setParent( self.__model ) self.__tableView.setItemDelegateForColumn( columnIndex, delegate ) canStretch = delegate.canStretch() haveResizeableContents = haveResizeableContents or canStretch columnIndex += 1 QtCompat.setSectionResizeMode( self.__tableView.horizontalHeader(), QtWidgets.QHeaderView.ResizeToContents if haveResizeableContents else QtWidgets.QHeaderView.Fixed ) self.__tableView.horizontalHeader().setStretchLastSection( canStretch ) self.__tableView.setSizePolicy( QtWidgets.QSizePolicy( QtWidgets.QSizePolicy.Expanding if canStretch else QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Maximum ) ) selectionModel = self.__tableView.selectionModel() selectionModel.selectionChanged.connect( Gaffer.WeakMethod( self.__selectionChanged ) ) self.__updateRemoveButtonEnabled() # Somehow the QTableView can leave its header in a state where updates are disabled. # If we didn't turn them back on, the header would disappear. self.__tableView.verticalHeader().setUpdatesEnabled( True ) self.__tableView.updateGeometry()
def test_load_ui_signals(): """Tests to see if the baseinstance loading loads widgets on properly""" import sys from Qt import QtWidgets, QtCompat app = QtWidgets.QApplication(sys.argv) win = QtWidgets.QWidget() QtCompat.loadUi(self.ui_qwidget, win) win.lineEdit.setText('Hello') assert str(win.label.text()) == 'Hello', "lineEdit signal did not fire" app.exit()
def test_meta_force_remap_existing(): """Unsafe Qt._remap() of existing member adds to modified""" from Qt import QtCompat module = imp.new_module("QtMock") module.MyAttr = 123 QtCompat._remap(module, "MyAttr", None, safe=False) assert "MyAttr" in QtCompat.__remapped__, QtCompat.__remapped__ assert "MyAttr" not in QtCompat.__added__ assert "MyAttr" in QtCompat.__modified__ assert module.MyAttr is None, module.MyAttr
def test_load_ui_dockwidget(): """Tests to see if the baseinstance loading loads a QDockWidget properly""" import sys from Qt import QtWidgets, QtCompat app = QtWidgets.QApplication(sys.argv) win = QtWidgets.QDockWidget() QtCompat.loadUi(self.ui_qdockwidget, win) assert hasattr(win, 'lineEdit'), \ "loadUi could not load instance to main window" app.exit()
def test_load_ui_existingLayoutOnWidget(): """Tests to see if loading a ui onto a layout in a Widget works""" import sys from Qt import QtWidgets, QtCompat msgs = 'QLayout: Attempting to add QLayout "" to QWidget ' \ '"Form", which already has a layout' with ignoreQtMessageHandler([msgs]): app = QtWidgets.QApplication(sys.argv) win = QtWidgets.QWidget() QtWidgets.QComboBox(win) QtWidgets.QHBoxLayout(win) QtCompat.loadUi(self.ui_qwidget, win) app.exit()
def test_convert_backup(): """Converting produces a backup""" fname = os.path.join(self.tempdir, "idempotency.py") with open(fname, "w") as f: f.write("") from Qt import QtCompat os.chdir(self.tempdir) QtCompat.cli(args=["--convert", "idempotency.py"]) assert os.path.exists( os.path.join(self.tempdir, "%s_backup%s" % os.path.splitext(fname)) )
def test_convert_simple(): """python -m Qt --convert works in general""" before = """\ from PySide2 import QtCore, QtGui, QtWidgets class Ui_uic(object): def setupUi(self, uic): self.retranslateUi(uic) def retranslateUi(self, uic): self.pushButton_2.setText( QtWidgets.QApplication.translate("uic", "NOT Ok", None, -1)) """.split("\n") after = """\ from Qt import QtCompat, QtCore, QtGui, QtWidgets class Ui_uic(object): def setupUi(self, uic): self.retranslateUi(uic) def retranslateUi(self, uic): self.pushButton_2.setText( QtCompat.translate("uic", "NOT Ok", None, -1)) """.split("\n") from Qt import QtCompat assert QtCompat._convert(before) == after, after
def ignoreQtMessageHandler(msgs): """A context that ignores specific qMessages for all bindings Args: msgs: list of message strings to ignore """ from Qt import QtCompat def messageOutputHandler(msgType, logContext, msg): if msg in msgs: return sys.stderr.write("{0}\n".format(msg)) QtCompat.qInstallMessageHandler(messageOutputHandler) try: yield finally: QtCompat.qInstallMessageHandler(None)
def test_load_ui_customwidget(): """Tests to see if loadUi loads a custom widget properly""" import sys from Qt import QtWidgets, QtCompat app = QtWidgets.QApplication(sys.argv) win = QtWidgets.QMainWindow() QtCompat.loadUi(self.ui_qcustomwidget, win) # Ensure that the derived class was properly created # and not the base class (in case of failure) custom_class_name = getattr(win, "customwidget", None).__class__.__name__ excepted_class_name = CustomWidget(win).__class__.__name__ assert custom_class_name == excepted_class_name, \ "loadUi could not load custom widget to main window" app.exit()
def test_load_ui_returntype(): """load_ui returns an instance of QObject""" import sys from Qt import QtWidgets, QtCore, QtCompat app = QtWidgets.QApplication(sys.argv) obj = QtCompat.loadUi(self.ui_qwidget) assert isinstance(obj, QtCore.QObject) app.exit()
def __init__(self): super(Dialog, self).__init__() layout = QtWidgets.QVBoxLayout(self) layout.setContentsMargins(0, 10, 0, 0) fname = os.path.splitext(__file__)[0] + ".ui" self.ui = QtCompat.load_ui(fname=fname) layout.addWidget(self.ui) self.create_connections()
def test_convert_idempotency(): """Converting a converted file produces an identical file""" before = """\ from PySide2 import QtCore, QtGui, QtWidgets class Ui_uic(object): def setupUi(self, uic): self.retranslateUi(uic) def retranslateUi(self, uic): self.pushButton_2.setText( QtWidgets.QApplication.translate("uic", "NOT Ok", None, -1)) """ after = """\ from Qt import QtCore, QtGui, QtWidgets class Ui_uic(object): def setupUi(self, uic): self.retranslateUi(uic) def retranslateUi(self, uic): self.pushButton_2.setText( Qt.QtCompat.translate("uic", "NOT Ok", None, -1)) """ fname = os.path.join(self.tempdir, "idempotency.py") with open(fname, "w") as f: f.write(before) from Qt import QtCompat os.chdir(self.tempdir) QtCompat.cli(args=["--convert", "idempotency.py"]) with open(fname) as f: assert f.read() == after QtCompat.cli(args=["--convert", "idempotency.py"]) with open(fname) as f: assert f.read() == after
def __init__(self): super(PackageDialog, self).__init__() main_layout = QtGui.QVBoxLayout(self) self.mainWidget = QtCompat.load_ui(ui_path) self.setWindowTitle(self.mainWidget.windowTitle()) main_layout.addWidget(self.mainWidget) self.mainWidget.FileButton.clicked.connect(self.on_FileButton_clicked) self.mainWidget.packButton.clicked.connect(self.on_packButton_clicked) self.mainWidget.cancelButton.clicked.connect(self.close)
def test_wrapInstance(): """.wrapInstance and .getCppPointer is identical across all bindings""" from Qt import QtCompat, QtWidgets app = QtWidgets.QApplication(sys.argv) try: button = QtWidgets.QPushButton("Hello world") button.setObjectName("MySpecialButton") pointer = QtCompat.getCppPointer(button) widget = QtCompat.wrapInstance(long(pointer), QtWidgets.QWidget) assert isinstance(widget, QtWidgets.QWidget), widget assert widget.objectName() == button.objectName() # IMPORTANT: this differs across sip and shiboken. if binding("PySide") or binding("PySide2"): assert widget != button else: assert widget == button finally: app.exit()
def setup_ui(uifile, base_instance=None): """Load a Qt Designer .ui file and returns an instance of the user interface Args: uifile (str): Absolute path to .ui file base_instance (QWidget): The widget into which UI widgets are loaded Returns: QWidget: the base instance """ ui = QtCompat.loadUi(uifile) # Qt.py mapped function if not base_instance: return ui else: for member in dir(ui): if not member.startswith('__') and \ member is not 'staticMetaObject': setattr(base_instance, member, getattr(ui, member)) return ui
def retranslateUi(self, mainWindow): mainWindow.setWindowTitle(QtCompat.translate("mainWindow", "OMTK - Plugin Manager", None, -1)) self.pushButton_reload.setText(QtCompat.translate("mainWindow", "Reload", None, -1)) self.actionReload.setText(QtCompat.translate("mainWindow", "Reload", None, -1)) self.actionSearchQueryChanged.setText(QtCompat.translate("mainWindow", "SearchQueryChanged", None, -1))
def retranslateUi(self, Dialog): Dialog.setWindowTitle(QtCompat.translate("Dialog", "OMTK - Preferences", None, -1)) self.label.setText(QtCompat.translate("Dialog", "Default Rig Class", None, -1))
def retranslateUi(self, Form): Form.setWindowTitle(QtCompat.translate("Form", "Form", None, -1)) self.btn_update.setText(QtCompat.translate("Form", "Update", None, -1)) self.pushButton_selectGrpMeshes.setText(QtCompat.translate("Form", "Select Meshes Grp", None, -1))
def retranslateUi(self, Form): Form.setWindowTitle(QtCompat.translate("Form", "Form", None, -1)) self.btn_update.setText(QtCompat.translate("Form", "Update", None, -1))
def retranslateUi(self, Form): Form.setWindowTitle(QtCompat.translate("Form", "Form", None, -1)) self.btn_update.setText(QtCompat.translate("Form", "Update", None, -1)) self.checkBox_hideAssigned.setText(QtCompat.translate("Form", "Hide Assigned", None, -1))
def retranslateUi(self, MainWindow): MainWindow.setWindowTitle(QtCompat.translate("MainWindow", "Component Creation Wizard", None, -1)) self.label_ctrl.setText(QtCompat.translate("MainWindow", "Ctrls:", None, -1)) self.label_infl.setText(QtCompat.translate("MainWindow", "Influences:", None, -1)) self.label_guid.setText(QtCompat.translate("MainWindow", "Guides:", None, -1))
def retranslateUi(self, Form): Form.setWindowTitle(QtCompat.translate("Form", "Form", None, -1)) self.pushButton_add.setText(QtCompat.translate("Form", "Add", None, -1)) self.pushButton_remove.setText(QtCompat.translate("Form", "Remove", None, -1)) self.pushButton_connect.setText(QtCompat.translate("Form", "Connect", None, -1)) self.pushButton_disconnect.setText(QtCompat.translate("Form", "Disconnect", None, -1))
def __init__( self, data=None, editable=True, header=False, showIndices=True, minimumVisibleRows=8, columnToolTips=None, sizeEditable=True, columnEditability=None, **kw ) : self.__column = GafferUI.ListContainer( GafferUI.ListContainer.Orientation.Vertical ) GafferUI.Widget.__init__( self, self.__column, **kw ) # table view self.__tableView = _TableView( minimumVisibleRows = minimumVisibleRows ) self.__tableView.horizontalHeader().setVisible( bool( header ) ) self.__tableView.horizontalHeader().setMinimumSectionSize( 70 ) self.__tableView.verticalHeader().setVisible( showIndices ) QtCompat.setSectionResizeMode( self.__tableView.verticalHeader(), QtWidgets.QHeaderView.Fixed ) self.__tableView.verticalHeader().setObjectName( "vectorDataWidgetVerticalHeader" ) self.__tableView.setHorizontalScrollBarPolicy( QtCore.Qt.ScrollBarAlwaysOff ) self.__tableView.setVerticalScrollBarPolicy( QtCore.Qt.ScrollBarAsNeeded ) self.__tableView.setSelectionBehavior( QtWidgets.QAbstractItemView.SelectItems ) self.__tableView.setCornerButtonEnabled( False ) self.__tableView.setContextMenuPolicy( QtCore.Qt.CustomContextMenu ) self.__tableView.customContextMenuRequested.connect( Gaffer.WeakMethod( self.__contextMenu ) ) self.__tableView.verticalHeader().setDefaultSectionSize( 20 ) self.__tableViewHolder = GafferUI.Widget( self.__tableView ) self.__column.append( self.__tableViewHolder ) # buttons self.__buttonRow = GafferUI.ListContainer( GafferUI.ListContainer.Orientation.Horizontal, spacing = 4 ) addButton = GafferUI.Button( image="plus.png", hasFrame=False ) self.__addButtonConnection = addButton.clickedSignal().connect( Gaffer.WeakMethod( self.__addRows ) ) self.__buttonRow.append( addButton ) removeButton = GafferUI.Button( image="minus.png", hasFrame=False ) self.__removeButtonConnection = removeButton.clickedSignal().connect( Gaffer.WeakMethod( self.__removeSelection ) ) self.__buttonRow.append( removeButton ) self.__buttonRow.append( GafferUI.Spacer( size = IECore.V2i( 0 ), maximumSize = IECore.V2i( 100000, 1 ) ), expand=1 ) self.__column.append( self.__buttonRow ) # stuff for drag enter/leave and drop self.__dragEnterConnections = [ self.dragEnterSignal().connect( Gaffer.WeakMethod( self.__dragEnter ) ), addButton.dragEnterSignal().connect( Gaffer.WeakMethod( self.__dragEnter ) ), removeButton.dragEnterSignal().connect( Gaffer.WeakMethod( self.__dragEnter ) ), ] self.__dragLeaveConnections = [ self.dragLeaveSignal().connect( Gaffer.WeakMethod( self.__dragLeave ) ), addButton.dragLeaveSignal().connect( Gaffer.WeakMethod( self.__dragLeave ) ), removeButton.dragLeaveSignal().connect( Gaffer.WeakMethod( self.__dragLeave ) ), ] self.__dropConnections = [ self.dropSignal().connect( Gaffer.WeakMethod( self.__drop ) ), addButton.dropSignal().connect( Gaffer.WeakMethod( self.__drop ) ), removeButton.dropSignal().connect( Gaffer.WeakMethod( self.__drop ) ), ] self.__dragPointer = "values" # stuff for drag begin self.__borrowedButtonPress = None self.__emittingButtonPress = False self.__buttonPressConnection = self.__tableViewHolder.buttonPressSignal().connect( Gaffer.WeakMethod( self.__buttonPress ) ) self.__buttonReleaseConnection = self.__tableViewHolder.buttonReleaseSignal().connect( Gaffer.WeakMethod( self.__buttonRelease ) ) self.__mouseMoveConnection = self.__tableViewHolder.mouseMoveSignal().connect( Gaffer.WeakMethod( self.__mouseMove ) ) self.__dragBeginConnection = self.__tableViewHolder.dragBeginSignal().connect( Gaffer.WeakMethod( self.__dragBegin ) ) self.__dragEndConnection = self.__tableViewHolder.dragEndSignal().connect( Gaffer.WeakMethod( self.__dragEnd ) ) # final setup self.__dataChangedSignal = GafferUI.WidgetSignal() self.__editSignal = Gaffer.Signal3() if isinstance( header, list ) : self.__headerOverride = header else : self.__headerOverride = None self.__columnToolTips = columnToolTips self.__columnEditability = columnEditability self.__propagatingDataChangesToSelection = False self.__sizeEditable = sizeEditable self.setData( data ) self.setEditable( editable )
def retranslateUi(self, OpenRiggingToolkit): OpenRiggingToolkit.setWindowTitle(QtCompat.translate("OpenRiggingToolkit", "Open Rigging Toolkit", None, -1)) self.label_modules.setText(QtCompat.translate("OpenRiggingToolkit", "Modules", None, -1)) self.label_jnts.setText(QtCompat.translate("OpenRiggingToolkit", "Influences", None, -1)) self.label.setText(QtCompat.translate("OpenRiggingToolkit", "Meshes", None, -1)) self.menuFile.setTitle(QtCompat.translate("OpenRiggingToolkit", "File", None, -1)) self.menuRig.setTitle(QtCompat.translate("OpenRiggingToolkit", "Rig", None, -1)) self.menuJoint.setTitle(QtCompat.translate("OpenRiggingToolkit", "Modules", None, -1)) self.menuInfluences.setTitle(QtCompat.translate("OpenRiggingToolkit", "Influences", None, -1)) self.menuSettings.setTitle(QtCompat.translate("OpenRiggingToolkit", "Settings", None, -1)) self.actionUpdate.setText(QtCompat.translate("OpenRiggingToolkit", "Update All", None, -1)) self.actionUpdate.setToolTip(QtCompat.translate("OpenRiggingToolkit", "Update", None, -1)) self.actionImport.setText(QtCompat.translate("OpenRiggingToolkit", "Import", None, -1)) self.actionExport.setText(QtCompat.translate("OpenRiggingToolkit", "Export", None, -1)) self.actionBuildAll.setText(QtCompat.translate("OpenRiggingToolkit", "Build All", None, -1)) self.actionUnbuildAll.setText(QtCompat.translate("OpenRiggingToolkit", "Unbuild All", None, -1)) self.actionRebuildAll.setText(QtCompat.translate("OpenRiggingToolkit", "Rebuild All", None, -1)) self.actionCreateModule.setText(QtCompat.translate("OpenRiggingToolkit", "Create Module", None, -1)) self.actionAddSelectedInfluencesToModule.setText(QtCompat.translate("OpenRiggingToolkit", "Add Selected Influences to Module", None, -1)) self.actionRemoveNodeFromModule.setText(QtCompat.translate("OpenRiggingToolkit", "Remove Selection", None, -1)) self.actionMirrorJntsLToR.setText(QtCompat.translate("OpenRiggingToolkit", "Mirror L -> R", None, -1)) self.actionMirrorJntsRToL.setText(QtCompat.translate("OpenRiggingToolkit", "Mirror R -> L", None, -1)) self.actionMirrorSelection.setText(QtCompat.translate("OpenRiggingToolkit", "Mirror using Selection", None, -1)) self.actionShowPluginManager.setText(QtCompat.translate("OpenRiggingToolkit", "Plugin Manager", None, -1)) self.actionShowPreferences.setText(QtCompat.translate("OpenRiggingToolkit", "Preferences", None, -1)) self.actionAddSelectedMeshesToModule.setText(QtCompat.translate("OpenRiggingToolkit", "Add Selected Meshes to Module", None, -1))