def _createBillboardWidgets(self): self.pixmap_label = QLabel() self.pixmap_label.size = QSize(512, 352) self.pixmap_label.scaledContents = True self.pixmap_label.setPixmap( QPixmap('./data/ui/images/comm/voiceindicator.png')) self._voiceBillboardWidget = self.pixmap_label
def testBillboard(self): avatar = naali.getUserAvatar() avatar_pos = avatar.GetComponentRaw("EC_Placeable") self.pixmap_label = QLabel() self.pixmap_label.size = QSize(200, 200) self.pixmap_label.scaledContents = True self.pixmap_label.setPixmap(QPixmap('./data/ui/images/naali_icon.png')) self.text_label = QLabel() self.text_label.size = QSize(300, 50) self.text_label.text = "Hello world" self.my_widget = QWidget() self.my_widget.setLayout(QVBoxLayout()) self.my_widget.layout().addWidget(self.pixmap_label) self.my_widget.layout().addWidget(self.text_label) if self.my_widget is None: print("Cannot find image file.") return self.my_entity = naali.createEntity() position = self.my_entity.GetOrCreateComponentRaw( "EC_Placeable", "pos", PythonQt.private.AttributeChange.Disconnected, False) position.position = avatar_pos.position self.ec_billboard = self.my_entity.GetOrCreateComponentRaw( "EC_BillboardWidget", "test", PythonQt.private.AttributeChange.Disconnected, False) if self.ec_billboard is None: print("Cannot create EC_Billboard component.") return self.ec_billboard.SetPosition(0, 0, 1) self.ec_billboard.SetWidth(1) self.ec_billboard.SetHeight(1) self.ec_billboard.SetWidget(self.my_widget) self.size_timer = QTimer() self.size_timer.connect("timeout()", self.animateSize) self.size_timer.start(100) self.text_timer = QTimer() self.text_timer.connect("timeout()", self.animateText) self.text_timer.start(1000)
def initWidget(self): mainBox = QVBoxLayout(self) mainBox.addWidget(QLabel("Press " + self.action.shortcut.toString() + " to " +\ self.action.text)) self.widgets = [_GraspMode(self), _PlacementMode(self)] mainBox.addWidget(self.widgets[0]) mainBox.addWidget(self.widgets[1]) self.widgets[1].hide()
def createWidget(self): box = QVBoxLayout(self) self.text = "You're in grasp/pregrasp mode.\n" +\ "In this mode, you can select two object.\n" +\ "To do so, click on it.\n" +\ "Once you choose one, press :\n" self.addActions(self.actionsList) for a in self.actionsList: self.text += " - " + a.shortcut.toString() + " to " + a.text + ".\n" box.addWidget(QLabel(self.text, self)) fBox = QFormLayout() self.handleLabel = QLabel("None selected", self) fBox.addRow("Current handle", self.handleLabel) self.gripperLabel = QLabel("None selected", self) fBox.addRow("Current gripper", self.gripperLabel) box.addLayout(fBox) self.mainWindow.connect("selectJointFromBodyName(QString)", self.changeSelected)
def createWidget(self): box = QVBoxLayout(self) text = "You are in placement mode.\n" +\ "In this mode you can place an object\non an environment surface.\n" +\ "The object and the environment must\nhave contact surface defined.\n" +\ "Press :\n" +\ " - " + self.action.shortcut.toString() + " to " + self.action.text + "\n\n" +\ "First selected body will be\nconsidered as the object.\n" +\ "Second selected body will be\nconsidered as the environment.\n" +\ "The object will be place where\nyou clicked on the environment." box.addWidget(QLabel(text, self))
def onTextMessageEvent(self, schid, targetMode, toID, fromID, fromName, fromUniqueIdentifier, message, ffIgnored): if self.status: (error, myid) = ts3.getClientID(schid) # get plain url from bbcode url # https://github.com/DerLuemmel/pyTSon_ts3_linkinfo/blob/master/__init__.py message = message.lower() if not myid == fromID and ("[url]" in message or "[url=" in message): start = message.find("[url]") if not start == -1: end = message.find("[/url]") message = message[start + 5:end] else: start = message.find("[url=") end = message.find("]") message = message[start + 5:end] # Open stream and read content type stream = urllib.request.urlopen(message) contenttype = stream.info().get_content_type() # if contenttype is png, gif, jpeg if contenttype in self.contenttypes: # get image data data = stream.read() # label and pixmap image = QLabel("image") pixmap = QPixmap() # load url data to pixmap pixmap.loadFromData(data) # set max width to self.imageMaxHeight pixmap = pixmap.scaledToHeight(self.imageMaxHeight, Qt.FastTransformation) # set image to label image.setPixmap(pixmap) # set margins for better looking image.setStyleSheet("QLabel{margin: 10px;}") # Get chatlayout chatlayout = self.getWidgetByObjectName("MainWindowChatWidget").layout() # Add image to chatlayout chatlayout.addWidget(image) # Deletes image label after self.showTime QTimer.singleShot(self.showTime, lambda : self.removeImage(chatlayout, image))
def __init__(self, title, label1, label2, parent=None): super().__init__(parent) self.setWindowTitle(title) self.lay = QVBoxLayout(self) self.lay1 = QHBoxLayout() self.label1 = QLabel(label1, self) self.lay1.addWidget(self.label1) self.input1 = QLineEdit(self) self.lay1.addWidget(self.input1) self.lay.addLayout(self.lay1) self.lay2 = QHBoxLayout() self.label2 = QLabel(label2, self) self.lay2.addWidget(self.label2) self.input2 = QLineEdit(self) self.lay2.addWidget(self.input2) self.lay.addLayout(self.lay2) bbox = QDialogButtonBox(QDialogButtonBox.Ok | QDialogButtonBox.Cancel, self) bbox.connect("accepted()", self.accept) bbox.connect("rejected()", self.reject) self.lay.addWidget(bbox)
def initWidget(self): # Main layout mainBox = QVBoxLayout(self) # Add text edit to write regex by hand box = QVBoxLayout() mainBox.addLayout(box) self.textEdit = QLineEdit(self) box.addWidget(QLabel("You can write your regexp here", self)) box.addWidget(self.textEdit) button = QPushButton("Find", self) button.connect("clicked()", self.applyRegex) box.addWidget(button) # Add grippers list self.grippersList = QListWidget(self) mainBox.addWidget(self.grippersList) # Sub layout for the action type box = QHBoxLayout() mainBox.addLayout(box) self.graspCheck = QCheckBox("Grasp", self) box.addWidget(self.graspCheck) self.pregraspCheck = QCheckBox("Pregrasp", self) box.addWidget(self.pregraspCheck) # Add handle list self.handlesList = QListWidget(self) mainBox.addWidget(self.handlesList) # Add a table to display results self.resultList = QListWidget(self) mainBox.addWidget(self.resultList) # Add button to refresh button = QPushButton(self) button.setText("Refresh") button.connect("clicked()", self.refresh) mainBox.addWidget(button) # Get the grippers and handles names # Connect the widget to functions self.addConnection()
def __init__(self, cfg, parent): super().__init__(parent) self.setAttribute(Qt.WA_DeleteOnClose) self.setWindowTitle("Eventlog") self.cfg = cfg self.pauseButton = QPushButton("Pause", self) self.pauseButton.setCheckable(True) self.pauseButton.connect("toggled(bool)", self.onPauseButtonToggled) self.spacer = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.maxLabel = QLabel("Maximum Events:", self) self.maxSpin = QSpinBox(self) self.maxSpin.setMaximum(10000) self.maxSpin.setToolTip("Set to 0 to not shrink events at all") self.maxSpin.setValue(cfg.getint("maximumEvents")) self.maxSpin.connect("valueChanged(int)", self.onMaxSpinChanged) self.sublay1 = QHBoxLayout() self.sublay1.addWidget(self.pauseButton) self.sublay1.addItem(self.spacer) self.sublay1.addWidget(self.maxLabel) self.sublay1.addWidget(self.maxSpin) self.filterLabel = QLabel("Filter:", self) self.filterEdit = QLineEdit(self) self.filterEdit.connect("textChanged(QString)", self.onFilterEditChanged) self.filterButton = QToolButton(self) self.filterButton.connect("clicked()", self.filterEdit.clear) try: ico = ts3client.IconPack.current() ico.open() self.filterButton.setIcon(QIcon(ico.icon("ERROR"))) ico.close() except Exception as e: self.filterButton.setText("X") self.sublay2 = QHBoxLayout() self.sublay2.addWidget(self.filterLabel) self.sublay2.addWidget(self.filterEdit) self.sublay2.addWidget(self.filterButton) self.model = EventlogModel(self) self.model.maximumEvents = cfg.getint("maximumEvents") self.proxy = QSortFilterProxyModel(self) self.proxy.setFilterRole(Qt.UserRole) self.proxy.setSourceModel(self.model) self.tree = QTreeView(self) self.tree.header().hide() self.tree.setModel(self.proxy) self.lay = QVBoxLayout(self) self.lay.addLayout(self.sublay1) self.lay.addLayout(self.sublay2) self.lay.addWidget(self.tree) self.resize(cfg.getint("width"), cfg.getint("height")) self.connect("finished(int)", self.onFinished)
#~ thingie.delete() #~ r.pw.show() if 0: box = r.formwidget.findChild("QGridLayout", "gridLayout") print box.rowCount() if 0: from PythonQt.QtCore import QFile, QSize from PythonQt.QtGui import QLineEdit, QHBoxLayout, QComboBox, QLabel, QPushButton, QSizePolicy, QIcon box = r.formwidget.findChild("QGridLayout", "gridLayout") #print box.rowCount() label = QLabel() label.text = "n/a" row = 3 box.addWidget(label, row, 0) #print r.c.materialDialogFormWidget line = QLineEdit() #QLineEdit() line.text = "whee" line.name = "whee" box.addWidget(line, row, 1) button = QPushButton() icon = QIcon("pymodules/editgui/ok.png") icon.actualSize(QSize(16, 16))
def __init__(self, controller): self.controller = controller loader = QUiLoader() loader.setLanguageChangeEnabled(True) uifile = QFile(self.UIFILE) ui = loader.load(uifile) width = ui.size.width() height = ui.size.height() uism = naali.ui self.widget = ui # Material/Texture widgets self.materialTabFormWidget = ui.findChild( "QWidget", "MaterialsTab").formLayoutWidget # Mesh line edit and buttons self.meshline = lines.MeshAssetidEditline(controller) self.meshline.name = "meshLineEdit" button_ok = self.getButton("Apply", self.ICON_OK, self.meshline, self.meshline.applyAction) button_cancel = self.getButton("Cancel", self.ICON_CANCEL, self.meshline, self.meshline.cancelAction) button_browse = self.getButton("Browse", self.ICON_FOLDER, None, None) box = QHBoxLayout() box.setContentsMargins(0, 0, 0, 0) box.addWidget(self.meshline) box.addWidget(button_browse) box.addWidget(button_ok) box.addWidget(button_cancel) self.mesh_widget = QWidget() self.mesh_widget.setLayout(box) # Sound line edit and buttons self.soundline = lines.SoundAssetidEditline(controller) self.soundline.name = "soundLineEdit" soundbutton_ok = self.getButton("Apply", self.ICON_OK, self.soundline, self.soundline.applyAction) soundbutton_cancel = self.getButton("Cancel", self.ICON_CANCEL, self.soundline, self.soundline.cancelAction) soundbutton_browse = self.getButton("Browse", self.ICON_FOLDER, None, None) soundRadius = self.getDoubleSpinBox("soundRadius", "Set sound radius", self.soundline) soundVolume = self.getDoubleSpinBox("soundVolume", "Set sound volume", self.soundline) main_box = QVBoxLayout() main_box.setContentsMargins(0, 0, 0, 0) box_buttons = QHBoxLayout() box_buttons.setContentsMargins(0, 0, 0, 0) # TODO no need for self? # crashed always if didnt put self to second label :P you can try to remove them... # basically the qwidget ptr must stay somewhere in py otherwise will crash when gets to painting -Pforce self.label_radius = QLabel("Radius") self.label_radius.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Preferred) self.label_volume = QLabel("Volume") self.label_volume.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Preferred) box_buttons.addWidget(self.label_radius) box_buttons.addWidget(soundRadius) box_buttons.addWidget(self.label_volume) box_buttons.addWidget(soundVolume) box_buttons.addWidget(soundbutton_browse) box_buttons.addWidget(soundbutton_ok) box_buttons.addWidget(soundbutton_cancel) main_box.addWidget(self.soundline) main_box.addLayout(box_buttons) self.sound_widget = QWidget() self.sound_widget.setLayout(main_box) # Animation line edit and buttons self.animation_title = QLabel("Skeleton Animation") self.animation_title.setStyleSheet( "font-size:18px;font-weight:bold;padding-top:5px;") self.animation_title.setIndent(0) self.animationline = lines.AnimationAssetidEditline(controller) self.animationline.name = "animationLineEdit" animation_combobox = self.getCombobox("AnimationName", "Animation Name", self.animationline) animationbutton_ok = self.getButton("Apply", self.ICON_OK, self.animationline, self.animationline.applyAction) animationbutton_cancel = self.getButton( "Cancel", self.ICON_CANCEL, self.animationline, self.animationline.cancelAction) animationbutton_browse = self.getButton("Browse", self.ICON_FOLDER, None, None) animationRate = self.getDoubleSpinBox("animationRate", "Set animation rate", self.animationline) animationbox = QVBoxLayout() animationbox.setContentsMargins(0, 0, 0, 0) self.anim_box_buttons = QHBoxLayout() self.anim_box_buttons.name = "AnimBoxButtons" self.anim_box_buttons.setContentsMargins(0, 0, 0, 0) label_rate = QLabel("Rate") label_rate.name = "Animation Rate" label_rate.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Preferred) self.anim_box_buttons.addWidget(animation_combobox) self.anim_box_buttons.addWidget(label_rate) self.anim_box_buttons.addWidget(animationRate) self.anim_box_buttons.addWidget(animationbutton_browse) self.anim_box_buttons.addWidget(animationbutton_ok) self.anim_box_buttons.addWidget(animationbutton_cancel) animationbox.addWidget(self.animation_title) animationbox.addWidget(self.animationline) animationbox.addLayout(self.anim_box_buttons) self.animation_widget = QWidget() self.animation_widget.setLayout(animationbox) self.animation_widget.hide() self.updatingSelection = False # mesh buttons self.meshline.connect('textEdited(QString)', button_ok.lineValueChanged) self.meshline.connect('textEdited(QString)', button_cancel.lineValueChanged) # audio buttons self.soundline.connect('textEdited(QString)', soundbutton_ok.lineValueChanged) self.soundline.connect('textEdited(QString)', soundbutton_cancel.lineValueChanged) soundRadius.connect('valueChanged(double)', soundbutton_ok.lineValueChanged) soundRadius.connect('valueChanged(double)', soundbutton_cancel.lineValueChanged) soundVolume.connect('valueChanged(double)', soundbutton_ok.lineValueChanged) soundVolume.connect('valueChanged(double)', soundbutton_cancel.lineValueChanged) # animation buttons self.animationline.connect('textEdited(QString)', animationbutton_ok.lineValueChanged) self.animationline.connect('textEdited(QString)', animationbutton_cancel.lineValueChanged) animationRate.connect('valueChanged(double)', animationbutton_ok.lineValueChanged) animationRate.connect('valueChanged(double)', animationbutton_cancel.lineValueChanged) animation_combobox.connect('currentIndexChanged(int)', animationbutton_ok.lineValueChanged) animation_combobox.connect('currentIndexChanged(int)', animationbutton_cancel.lineValueChanged) self.mainTabList = {} self.currentlySelectedTreeWidgetItem = []