def paintEvent(self, event): painter = QtWidgets.QPainter() painter.begin(self) painter.setBrush(QtWidgets.QColor(192, 192, 192)) painter.setPen(QtWidgets.QColor(64, 64, 64)) painter.drawPolygon(*self._arrow) painter.end()
def fromFile(cls, fileName, context): image = QtGui.QImage(fileName).convertToFormat( QtGui.QImage.Format_ARGB32_Premultiplied) if image.hasAlphaChannel(): bgColor = QtWidgets.QColor(0, 0, 0, 0) else: bgColor = QtWidgets.QColor(255, 255, 255) return cls(fileName, image, bgColor, context)
def __init__(self, parent=None, size=QtCore.QSize(100, 100), borderWidth=0, fillColor=QtWidgets.QColor(255, 255, 255), borderColor=QtWidgets.QColor(0, 0, 0)): super(QArkClickableFilledRect, self).__init__(parent) self.o_size = size self.u_borderWidth = borderWidth self.o_fillColor = fillColor self.o_borderColor = borderColor self.initUi()
def guiPalItemActivated(self): u""" GUIで色が選択されたときに行う処理 """ COLOR_SIZE = 2 index = self.ui.palList.currentRow() if index == -1: return -1 r, g, b, a = self.palData[index]["color"] # 選択された色の値をセット writePos = self.palData[index]["addr"] # 色データを書き込む位置 color = QtWidgets.QColorDialog.getColor(QtWidgets.QColor( r, g, b)) # カラーダイアログを開く if color.isValid() == False: # キャンセルしたとき logger.info(u"色の選択をキャンセルしました") return 0 r, g, b, a = color.getRgb() # ダイアログでセットされた色に更新 binR = bin(r / 8)[2:].zfill(5) # 5bitカラーに変換 binG = bin(g / 8)[2:].zfill(5) binB = bin(b / 8)[2:].zfill(5) gbaColor = int(binB + binG + binR, 2) # GBAのカラーコードに変換 colorStr = struct.pack("H", gbaColor) self.romData = self.romData[:writePos] + colorStr + self.romData[ writePos + COLOR_SIZE:] self.updateImage()
def test_widget(self): o_app = QtWidgets.QApplication(sys.argv) o_w = QArkClickableFilledRect(borderWidth=1, fillColor=QtWidgets.QColor(255, 0, 0)) #o_w.setText('click me!') o_w.show() o_app.exec_()
def ConvertToQGradient(self, gfxGradient): stops = gfxGradient.GetStops() qgrad = QtWidgets.QLinearGradient() for stop in stops: color = stop.GetColor() qcolor = QtWidgets.QColor(color.Red() * 255, color.Green() * 255, color.Blue() * 255, color.Alpha() * 255) qgrad.setColorAt(stop.GetRel(), qcolor) return qgrad
def mouseMoveEvent(self, event): super(MainWindow, self).mouseMoveEvent(event) # Lo mismo de antes pero para cuando el ratón se mueve if self.ctrlPressed: widget = QtCore.QCoreApplication.instance().desktop().screen() im = QtWidgets.QPixmap.grabWindow( widget.winId()).toImage() # Captura de pantalla c = QtWidgets.QColor(im.pixel(QtWidgets.QCursor.pos( ))) # Cogemos el color de la posición del cursor if event.buttons() == Qt.LeftButton: self.context.changePrimaryColor( c ) # Cambiamos el color primario actual por el que hemos cogido elif event.buttons() == Qt.RightButton: self.context.changeSecondaryColor( c ) # Cambiamos el color secundario actual por el que hemos cogido
def __init__(self, width, height, color, parent=None): QtWidgets.QWidget.__init__(self, parent) #Membervars self.width_ = width self.height_ = height if (color is None): self.color_ = QtWidgets.QColor("White") else: self.color_ = color self.show() #ContextMenu self.change_color_ = QtWidgets.QAction('ChangeColor', self) self.change_color_.triggered.connect(self.ChangeColor) self.addAction(self.change_color_) self.setContextMenuPolicy(QtCore.Qt.ActionsContextMenu) self.Resize()
def tableView_set(self): # 添加表头: self.model = QtWidgets.QStandardItemModel(self.tableView) # 设置表格属性: self.model.setRowCount(17) self.model.setColumnCount(8) # 设置表头 self.model.setHeaderData(0, QtCore.Qt.Horizontal, _fromUtf8(u"类型")) self.model.setHeaderData(1, QtCore.Qt.Horizontal, _fromUtf8(u"值")) self.model.setHeaderData(2, QtCore.Qt.Horizontal, _fromUtf8(u"")) self.model.setHeaderData(3, QtCore.Qt.Horizontal, _fromUtf8(u"类型")) self.model.setHeaderData(4, QtCore.Qt.Horizontal, _fromUtf8(u"值")) self.model.setHeaderData(5, QtCore.Qt.Horizontal, _fromUtf8(u"")) self.model.setHeaderData(6, QtCore.Qt.Horizontal, _fromUtf8(u"类型")) self.model.setHeaderData(7, QtCore.Qt.Horizontal, _fromUtf8(u"值")) self.tableView.setModel(self.model) # 设置列宽 self.tableView.setColumnWidth(0, 100) self.tableView.setColumnWidth(1, 80) self.tableView.setColumnWidth(2, 80) self.tableView.setColumnWidth(3, 100) self.tableView.setColumnWidth(4, 80) self.tableView.setColumnWidth(5, 80) self.tableView.setColumnWidth(6, 100) self.tableView.setColumnWidth(7, 80) # 合并单元格的效果 # 第一个参数:要改变的单元格行数 # 第二个参数:要改变的单元格列数 # 第三个参数:需要合并的行数 # 第四个参数:需要合并的列数 self.tableView.setSpan(0, 2, 17, 1) self.tableView.setSpan(0, 5, 17, 1) # 设置单元格禁止更改 # self.tableView.setEditTriggers(QtGui.QAbstractItemView.NoEditTriggers) # 表头信息显示居左 # self.tableView.horizontalHeader().setDefaultAlignment(QtCore.Qt.AlignLeft) # 表头信息显示居中 self.tableView.horizontalHeader().setDefaultAlignment( QtCore.Qt.AlignCenter) ''' #添加表项 for i in range(0,3): self.model.setItem(i,0,QtGui.QStandardItem("2009441676")) #设置字符颜色 self.model.item(i,0).setForeground(QtGui.QBrush(QtGui.QColor(255, 0, 0))) #设置字符位置 self.model.item(i,0).setTextAlignment(QtCore.Qt.AlignCenter) self.model.setItem(i,1,QtGui.QStandardItem(_fromUtf8("哈哈"))) ''' # 添加表项 set_value_type_list = [ u'过流I段定值', u'过流II段定值', u'过流III段定值', u'零序过流定值', u'后加速定值', u'PT有压定值', u'PT过压定值', u'PT无压定值', u'过流I段延时', u'过流II段延时', u'过流III段延时', u'零序过流延时', u'后加速延时', u'重合闸I段延时', u'重合闸II段延时', u'重合闸III段延时', u'重合复归延时', u'反时限曲线', u'反时限启动', u'反时限倍数', u'环境温度', u'控制字', u'手机号码' ] index = 0 for i in range(0, 30): self.model.setItem( i, 0, QtWidgets.QStandardItem(_fromUtf8(set_value_type_list[index]))) index += 1 # 设置字符颜色 self.model.item(i, 0).setForeground( QtWidgets.QBrush(QtWidgets.QColor(255, 0, 0))) # 设置字符位置 self.model.item(i, 0).setTextAlignment(QtCore.Qt.AlignCenter) if index >= len(set_value_type_list): break self.model.setItem( i, 3, QtWidgets.QStandardItem(_fromUtf8(set_value_type_list[index]))) index += 1 # 设置字符颜色 self.model.item(i, 3).setForeground( QtWidgets.QBrush(QtWidgets.QColor(255, 0, 0))) # 设置字符位置 self.model.item(i, 3).setTextAlignment(QtCore.Qt.AlignCenter) if index >= len(set_value_type_list): break self.model.setItem( i, 6, QtWidgets.QStandardItem(_fromUtf8(set_value_type_list[index]))) index += 1 # 设置字符颜色 self.model.item(i, 6).setForeground( QtWidgets.QBrush(QtWidgets.QColor(255, 0, 0))) # 设置字符位置 self.model.item(i, 6).setTextAlignment(QtCore.Qt.AlignCenter) if index >= len(set_value_type_list): break self.tableView.setModel(self.model)
def SetGfxColor(self, color): qcolor = QtWidgets.QColor(color.Red() * 255, color.Green() * 255, color.Blue() * 255, color.Alpha() * 255) self.SetColor(qcolor)
def onError(self): self.output.setTextColor(QtWidgets.QColor(255, 0, 0)) self.output.insertPlainText(str(self.chestProc.readAllStandardError(), encoding="utf8")) self.output.setTextColor(QtWidgets.QColor(0, 0, 0))
def dropEvent(self, e): self.changeColor(QtWidgets.QColor(e.mimeData().colorData())) e.setDropAction(QtCore.Qt.CopyAction) e.accept()