def __init__(self, *args, **kwargs): QTreeWidget.__init__(self, *args, **kwargs) self._focusProxy = scrollProxy(self) self.setHeaderLabel('Behavior Trees') self.setAlternatingRowColors(True) self.setAnimated(True) self.header().close() self.highlighted = [] self.mb = None self.__grab = False self.__grabFullRefname = '' self.__grabSentSignal = False self.__project = None self.__treesWidgets = dict() self.editingItem = None self.editingText = '' self.itemDoubleClicked.connect(self.__onDoubleClick) self.itemChanged.connect(self.onItemChange) self.currentItemChanged.connect(self.__onCurrentChanged) self._icons = { 'copy': QIcon(joinPath(globals.applicationIconsPath, 'copy3.png')), 'edit': QIcon(joinPath(globals.applicationIconsPath, 'page_edit.png')), 'cancel': QIcon(joinPath(globals.applicationIconsPath, 'cancel-1.png')), 'add': QIcon(joinPath(globals.applicationIconsPath, 'chart_add.png')), 'add2': QIcon(joinPath(globals.applicationIconsPath, 'chart_add2.png')) } globals.behaviorTreeSignals.treeOpened.connect(self.__onTreeOpen) globals.behaviorTreeSignals.treeClosed.connect(self.__onTreeClose) globals.behaviorTreeSignals.treeRootChanged.connect(self.__onTreeRootChange)
def __init__(self, node, parent=None): TL_AbstractItem.__init__(self, parent) self.node = node self.path = node.path() self.__inactiveIcon = QIcon(joinPath(globals.applicationIconsPath, 'tree70.png')) self.__activeIcon = QIcon(joinPath(globals.applicationIconsPath, 'tree71.png')) self.update() self.setIcon(0, self.__inactiveIcon)
def __init__(self, *args, **kwargs): """ Constructor mode - ... parent - QWidget """ QTreeWidget.__init__(self, *args, **kwargs) self._focusProxy = scrollProxy(self) globalLanguage.languageChanged.connect(self.__onLanguageChange) self.setAlternatingRowColors(True) self.setAnimated(True) # self.itemExpanded.connect(self.onItemExpanded) self.__externalSelect = False self.__libraries = None self.__alphabet = None self.__libWidgets = dict() self.__tempLib = None self.__changed = False self.__cleaning = False self.__grab = False self.__grabbedItemLibrary = '' self.__grabbedItemNodename = '' self.__grabSentSignal = False self._editingItem = None self._editingText = '' self._editingInternal = False self.headers = ['Nodes'] # ['Available nodes','Path'] self.setHeaderLabels(self.headers) self.header().close() self.__onLanguageChange(globalLanguage.language) # self.itemSelectionChanged.connect(self.__onSelectionChanged) self.itemChanged.connect(self.__onItemChange) self.currentItemChanged.connect(self.__onCurrentChanged) self._icons = { 'delete': QIcon(joinPath(globals.applicationIconsPath, 'cancel-1.png')), 'add': QIcon(joinPath(globals.applicationIconsPath, 'add-3.png')), 'copy': QIcon(joinPath(globals.applicationIconsPath, 'copy3.png')), 'paste': QIcon(joinPath(globals.applicationIconsPath, 'paste3.png')), 'binary': QIcon(joinPath(globals.applicationIconsPath, 'binary-1.png')), 'book': QIcon(joinPath(globals.applicationIconsPath, 'book_open.png')), 'book_del': QIcon(joinPath(globals.applicationIconsPath, 'book_delete.png')), 'book_add': QIcon(joinPath(globals.applicationIconsPath, 'book_add.png')), 'book_edit': QIcon(joinPath(globals.applicationIconsPath, 'book_edit.png')) } globals.librarySignals.nodeAdded.connect(self.__onNodeAdd) globals.librarySignals.libraryExcluded.connect(self.__removeLib) globals.librarySignals.nodeRemoved.connect(self.__onNodeRemove) globals.librarySignals.libraryRenamed.connect(self.__onLibraryRename)
def __init__(self, *args, **kwargs): QMainWindow.__init__(self, *args, **kwargs) self.setObjectName('helpWindow') self._title = trStr('Behavior Studio Help', 'Справка Behavior Studio') QMainWindow.setWindowTitle(self, self._title.text()) self.setWindowIcon( QIcon(joinPath(globals.applicationIconsPath, 'help.png'))) # Create text window self.__textEdit = QTextEdit() self.__textEdit.setAcceptRichText(True) self.__textEdit.setTextInteractionFlags(Qt.TextBrowserInteraction | Qt.TextSelectableByKeyboard) self.__textEditFocusProxy = scrollProxy(self.__textEdit) # Fill table of contents self.__subjectHeaderLabel = trStr('Table of contents', 'Содержание') self.__subjectIndex = QTreeWidget() self.__subjectIndex.setAlternatingRowColors(True) self.__subjectIndex.setAnimated(True) self.__subjectIndex.setColumnCount(1) self.__subjectIndex.setHeaderLabel(self.__subjectHeaderLabel.text()) self.__subjectFocusProxy = scrollProxy(self.__subjectIndex) self.__topics = [] topItem = self.__fillContents() self.__subjectIndex.addTopLevelItem(topItem) self.__subjectIndex.currentItemChanged.connect(self.__onTopicChange) self.__subjectIndex.setCurrentItem(topItem) dock = QDockWidget() dock.setObjectName('helpIndex') dock.setAllowedAreas(Qt.LeftDockWidgetArea) dock.setFeatures(QDockWidget.NoDockWidgetFeatures) dock.setTitleBarWidget(QWidget()) dock.setWidget(self.__subjectIndex) self.addDockWidget(Qt.LeftDockWidgetArea, dock) dock = QDockWidget() dock.setObjectName('helpContents') dock.setAllowedAreas(Qt.RightDockWidgetArea) dock.setFeatures(QDockWidget.NoDockWidgetFeatures) dock.setTitleBarWidget(QWidget()) dock.setWidget(self.__textEdit) self.addDockWidget(Qt.RightDockWidgetArea, dock) self.setStatusBar(QStatusBar()) globalLanguage.languageChanged.connect(self.__onLanguageChange) self.readSettings()
def __init__(self, *args, **kwargs): QMainWindow.__init__(self, *args, **kwargs) self.setObjectName('helpWindow') self._title = trStr('Behavior Studio Help', 'Справка Behavior Studio') QMainWindow.setWindowTitle(self, self._title.text()) self.setWindowIcon(QIcon(joinPath(globals.applicationIconsPath, 'help.png'))) # Create text window self.__textEdit = QTextEdit() self.__textEdit.setAcceptRichText(True) self.__textEdit.setTextInteractionFlags(Qt.TextBrowserInteraction | Qt.TextSelectableByKeyboard) self.__textEditFocusProxy = scrollProxy(self.__textEdit) # Fill table of contents self.__subjectHeaderLabel = trStr('Table of contents', 'Содержание') self.__subjectIndex = QTreeWidget() self.__subjectIndex.setAlternatingRowColors(True) self.__subjectIndex.setAnimated(True) self.__subjectIndex.setColumnCount(1) self.__subjectIndex.setHeaderLabel(self.__subjectHeaderLabel.text()) self.__subjectFocusProxy = scrollProxy(self.__subjectIndex) self.__topics = [] topItem = self.__fillContents() self.__subjectIndex.addTopLevelItem(topItem) self.__subjectIndex.currentItemChanged.connect(self.__onTopicChange) self.__subjectIndex.setCurrentItem(topItem) dock = QDockWidget() dock.setObjectName('helpIndex') dock.setAllowedAreas(Qt.LeftDockWidgetArea) dock.setFeatures(QDockWidget.NoDockWidgetFeatures) dock.setTitleBarWidget(QWidget()) dock.setWidget(self.__subjectIndex) self.addDockWidget(Qt.LeftDockWidgetArea, dock) dock = QDockWidget() dock.setObjectName('helpContents') dock.setAllowedAreas(Qt.RightDockWidgetArea) dock.setFeatures(QDockWidget.NoDockWidgetFeatures) dock.setTitleBarWidget(QWidget()) dock.setWidget(self.__textEdit) self.addDockWidget(Qt.RightDockWidgetArea, dock) self.setStatusBar(QStatusBar()) globalLanguage.languageChanged.connect(self.__onLanguageChange) self.readSettings()
def main(argv): # Create a Qt application app = QApplication(argv) app.setStyle('macintosh') setPalette(app) eng_package_error_message, rus_package_error_message = _checkPackages() if eng_package_error_message or rus_package_error_message: error_message = u'<font color=\"red\">Next python packages are required for running the program:</font><br/>' error_message += eng_package_error_message error_message += u'<br/><font color=\"yellow\">---------------------------------' \ u'-------------------------------------------------</font><br/>' error_message += u'<font color=\"red\">Для запуска программы необходимы следующие библиотеки для python:' \ u'</font><br/>' error_message += rus_package_error_message mb = QMessageBox(QMessageBox.Critical, 'Package Error', error_message, QMessageBox.Ok) mb.exec_() sys.exit() from main_window import AppArgs, MainWindow start_path = os.environ.get('BEHAVIOR_STUDIO_ROOT', None) if start_path is None: globals.rootDirectory = os.getcwd() # globals.rootDirectory = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe()))) else: globals.rootDirectory = start_path globals.rootDirectory = toUnixPath(os.path.normpath(globals.rootDirectory)) # Read input args appArgs = AppArgs(argv) opts = None try: opts, args = getopt.getopt( argv[1:], 'hdc:', ['help', 'debug', 'config=', 'config-file=']) except getopt.GetoptError: appArgs.options_error = True mb = QMessageBox( QMessageBox.Warning, 'Options Error', '<font color=\"red\">There are some options error!<br/>Read studio output...</font>', QMessageBox.Ok) mb.exec_() if not appArgs.options_error: for opt, arg in opts: if opt in ('-h', '--help'): infoString = 'available options:<br/>\ -h, --help - see this hint<br/>\ -c, --config, --config-file - set start configuration file<br/>' infoString += '<br/>Example:<br/><b>{0} -c config.xml</b>'.format( appArgs.current_file) mb = QMessageBox(QMessageBox.Information, 'Options Help', infoString, QMessageBox.Ok) mb.exec_() sys.exit() elif opt in ('-c', '--config', '--config-file'): appArgs.config_file = arg appArgs.config_file_default = False elif opt in ('-d', '--debug'): appArgs.debug = True globals.applicationConfigFile = globals.processVars( globals.applicationConfigFile) appArgs.config_file = globals.processVars(appArgs.config_file) globals.applicationAlphabetPath = globals.processVars( globals.applicationAlphabetPath) globals.applicationShapesPath = globals.processVars( globals.applicationShapesPath) if args: appArgs.project_for_opening = toUnixPath(args[0]) if not _readConfig(appArgs): # read icons path mb = QMessageBox( QMessageBox.Critical, 'Configuration Error', 'Can\'t load application configuration!<br/>' 'Configuration file <b>\'{0}\'</b> does not exist.'.format( appArgs.config_file), QMessageBox.Ok) mb.exec_() sys.exit() if globals.showLogo: splash = QSplashScreen( QPixmap(joinPath(globals.applicationIconsPath, 'splash2.png'))) splash.showMessage( '<h2>Behavior Studio {0}</h2>'.format(globals.strVersion), Qt.AlignHCenter, Qt.red) splash.show() sleep(3) else: splash = None # Create main window window = MainWindow(appArgs) window.show() if splash is not None: splash.finish(window) # window = main_window.MainStackedWindow() # window.hide() # Enter Qt application main loop app.exec_() sys.exit()
def main(argv): # Create a Qt application app = QApplication(argv) app.setStyle("macintosh") setPalette(app) eng_package_error_message, rus_package_error_message = _checkPackages() if eng_package_error_message or rus_package_error_message: error_message = u'<font color="red">Next python packages are required for running the program:</font><br/>' error_message += eng_package_error_message error_message += ( u'<br/><font color="yellow">---------------------------------' u"-------------------------------------------------</font><br/>" ) error_message += ( u'<font color="red">Для запуска программы необходимы следующие библиотеки для python:' u"</font><br/>" ) error_message += rus_package_error_message mb = QMessageBox(QMessageBox.Critical, "Package Error", error_message, QMessageBox.Ok) mb.exec_() sys.exit() from main_window import AppArgs, MainWindow start_path = os.environ.get("BEHAVIOR_STUDIO_ROOT", None) if start_path is None: globals.rootDirectory = os.getcwd() # globals.rootDirectory = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe()))) else: globals.rootDirectory = start_path globals.rootDirectory = toUnixPath(os.path.normpath(globals.rootDirectory)) # Read input args appArgs = AppArgs(argv) opts = None try: opts, args = getopt.getopt(argv[1:], "hdc:", ["help", "debug", "config=", "config-file="]) except getopt.GetoptError: appArgs.options_error = True mb = QMessageBox( QMessageBox.Warning, "Options Error", '<font color="red">There are some options error!<br/>Read studio output...</font>', QMessageBox.Ok, ) mb.exec_() if not appArgs.options_error: for opt, arg in opts: if opt in ("-h", "--help"): infoString = "available options:<br/>\ -h, --help - see this hint<br/>\ -c, --config, --config-file - set start configuration file<br/>" infoString += "<br/>Example:<br/><b>{0} -c config.xml</b>".format(appArgs.current_file) mb = QMessageBox(QMessageBox.Information, "Options Help", infoString, QMessageBox.Ok) mb.exec_() sys.exit() elif opt in ("-c", "--config", "--config-file"): appArgs.config_file = arg appArgs.config_file_default = False elif opt in ("-d", "--debug"): appArgs.debug = True globals.applicationConfigFile = globals.processVars(globals.applicationConfigFile) appArgs.config_file = globals.processVars(appArgs.config_file) globals.applicationAlphabetPath = globals.processVars(globals.applicationAlphabetPath) globals.applicationShapesPath = globals.processVars(globals.applicationShapesPath) if args: appArgs.project_for_opening = toUnixPath(args[0]) if not _readConfig(appArgs): # read icons path mb = QMessageBox( QMessageBox.Critical, "Configuration Error", "Can't load application configuration!<br/>" "Configuration file <b>'{0}'</b> does not exist.".format(appArgs.config_file), QMessageBox.Ok, ) mb.exec_() sys.exit() if globals.showLogo: splash = QSplashScreen(QPixmap(joinPath(globals.applicationIconsPath, "splash2.png"))) splash.showMessage("<h2>Behavior Studio {0}</h2>".format(globals.strVersion), Qt.AlignHCenter, Qt.red) splash.show() sleep(3) else: splash = None # Create main window window = MainWindow(appArgs) window.show() if splash is not None: splash.finish(window) # window = main_window.MainStackedWindow() # window.hide() # Enter Qt application main loop app.exec_() sys.exit()
def main(argv): # Create a Qt application app = QApplication(argv) app.setStyle('macintosh') setPalette(app) eng_package_error_message, rus_package_error_message = _checkPackages() if eng_package_error_message or rus_package_error_message: error_message = u'<font color=\"red\">Next python packages are required for running the program:</font><br/>' error_message += eng_package_error_message error_message += u'<br/><font color=\"yellow\">---------------------------------' \ u'-------------------------------------------------</font><br/>' error_message += u'<font color=\"red\">Для запуска программы необходимы следующие библиотеки для python:' \ u'</font><br/>' error_message += rus_package_error_message mb = QMessageBox(QMessageBox.Critical, 'Package Error', error_message, QMessageBox.Ok) mb.exec_() sys.exit() from main_window import AppArgs, MainWindow # Read input args appArgs = AppArgs(argv) opts = None try: opts, args = getopt.getopt(argv[1:], 'hdc:', ['help', 'debug', 'config=', 'config-file=']) except getopt.GetoptError: appArgs.options_error = True mb = QMessageBox(QMessageBox.Warning, 'Options Error', '<font color=\"red\">There are some options error!<br/>Read studio output...</font>', QMessageBox.Ok) mb.exec_() if not appArgs.options_error: for opt, arg in opts: if opt in ('-h', '--help'): infoString = 'available options:<br/>\ -h, --help - see this hint<br/>\ -c, --config, --config-file - set start configuration file<br/>' infoString += '<br/>Example:<br/><b>{0} -c config.xml</b>'.format(appArgs.current_file) mb = QMessageBox(QMessageBox.Information, 'Options Help', infoString, QMessageBox.Ok) mb.exec_() sys.exit() elif opt in ('-c', '--config', '--config-file'): appArgs.config_file = arg appArgs.config_file_default = False elif opt in ('-d', '--debug'): appArgs.debug = True if not _readConfig(appArgs): # read icons path mb = QMessageBox(QMessageBox.Critical, 'Configuration Error', 'Can\'t load application configuration!<br/>' 'Configuration file <b>\'{0}\'</b> does not exist.'.format(appArgs.config_file), QMessageBox.Ok) mb.exec_() sys.exit() if globals.showLogo: splash = QSplashScreen(QPixmap(joinPath(globals.applicationIconsPath, 'splash2.png'))) splash.showMessage('<h2>Behavior Studio {0}</h2>'.format(globals.strVersion), Qt.AlignHCenter, Qt.red) splash.show() sleep(3) else: splash = None # Create main window window = MainWindow(appArgs) window.show() if splash is not None: splash.finish(window) # window = main_window.MainStackedWindow() # window.hide() # Enter Qt application main loop app.exec_() sys.exit()