Python源码示例:PyQt5.QtCore.Qt.AlignLeft()
示例1
def __init__(self, parent=None):
super(BaseTab, self).__init__(parent)
self.setTextFormat(Qt.RichText)
self.setWordWrap(True)
self.setAlignment(Qt.AlignLeft | Qt.AlignTop)
self.setOpenExternalLinks(True)
if parent.theme == 'dark':
bgcolor = 'rgba(12, 15, 16, 210)'
pencolor = '#FFF'
else:
bgcolor = 'rgba(255, 255, 255, 200)'
pencolor = '#000'
self.setStyleSheet('''
QLabel {{
background-color: {bgcolor};
color: {pencolor};
padding: 8px;
}}'''.format(**locals()))
# noinspection PyBroadException
示例2
def paintEvent(self, event):
super(Label, self).paintEvent(event)
# 中正间画十字
painter = QPainter(self)
painter.setPen(Qt.red)
x = int(self.width() / 2)
y = int(self.height() / 2)
painter.drawLine(x, 0, x, self.height())
painter.drawLine(0, y, self.width(), y)
if self.ismd:
# 画坐标点
pos = QCursor.pos()
ret = win32gui.GetPixel(win32gui.GetWindowDC(
win32gui.GetDesktopWindow()), pos.x(), pos.y())
r, g, b = ret & 0xff, (ret >> 8) & 0xff, (ret >> 16) & 0xff
print(r, g, b)
painter.setPen(Qt.white)
painter.drawText(self.rect(), Qt.AlignLeft |
Qt.AlignBottom, '({}, {})\nRGB: ({}, {}, {})\n{}'.format(
pos.x(), pos.y(), r, g, b, QColor(r, g, b).name()))
示例3
def data(self, index, role=Qt.DisplayRole):
'''The data stored under the given role for the item referred
to by the index.
Args:
index (:obj:`QtCore.QModelIndex`): Index
role (:obj:`Qt.ItemDataRole`): Default :obj:`Qt.DisplayRole`
Returns:
data
'''
if role == Qt.DisplayRole:
row = self._data[index.row()]
if (index.column() == 0) and (type(row) != dict):
return row
elif index.column() < self.columnCount():
if type(row) == dict:
if self.header[index.column()] in row:
return row[self.header[index.column()]]
elif self.header[index.column()].lower() in row:
return row[self.header[index.column()].lower()]
return row[index.column()]
return None
elif role == Qt.FontRole:
return QtGui.QFont().setPointSize(30)
elif role == Qt.DecorationRole and index.column() == 0:
return None
elif role == Qt.TextAlignmentRole:
return Qt.AlignLeft;
示例4
def paintEvent(self, event):
painter = QPainter(self)
painter.setFont(self.font)
linear = QLinearGradient(QPoint(self.rect().topLeft()), QPoint(self.rect().bottomLeft()))
linear.setStart(0, 10)
linear.setFinalStop(0, 50)
linear.setColorAt(0.1, QColor(14, 179, 255));
linear.setColorAt(0.5, QColor(154, 232, 255));
linear.setColorAt(0.9, QColor(14, 179, 255));
linear2 = QLinearGradient(QPoint(self.rect().topLeft()), QPoint(self.rect().bottomLeft()))
linear2.setStart(0, 10)
linear2.setFinalStop(0, 50)
linear2.setColorAt(0.1, QColor(222, 54, 4));
linear2.setColorAt(0.5, QColor(255, 172, 116));
linear2.setColorAt(0.9, QColor(222, 54, 4));
painter.setPen(QColor(0, 0, 0, 200));
painter.drawText(QRect(1, 1, self.screen.width(), 60), Qt.AlignHCenter | Qt.AlignVCenter, self.lyric)
painter.setPen(QColor('transparent'));
self.textRect = painter.drawText(QRect(0, 0, self.screen.width(), 60), Qt.AlignHCenter | Qt.AlignVCenter, self.lyric)
painter.setPen(QPen(linear, 0))
painter.drawText(self.textRect, Qt.AlignLeft | Qt.AlignVCenter, self.lyric)
if self.intervel != 0:
self.widthBlock = self.textRect.width()/(self.intervel/150.0)
else:
self.widthBlock = 0
self.maskRect = QRectF(self.textRect.x(), self.textRect.y(), self.textRect.width(), self.textRect.height())
self.maskRect.setWidth(self.maskWidth)
painter.setPen(QPen(linear2, 0));
painter.drawText(self.maskRect, Qt.AlignLeft | Qt.AlignVCenter, self.lyric)
示例5
def alignLeft(self):
self.text.setAlignment(Qt.AlignLeft)
示例6
def alignLeft(self):
self.text.setAlignment(Qt.AlignLeft)
示例7
def alignLeft(self):
self.text.setAlignment(Qt.AlignLeft)
示例8
def paintEvent(self, event):
self.startX = (self.width() - self.textWidth) / 2
self.startY = self.toolBarHeight + (self.height() - self.toolBarHeight - self.textHeight) / 2
painter = QPainter(self)
painter.setRenderHint(QPainter.Antialiasing)
# pixelSize = self.font.pixelSize()
# pixelSize += 1
# self.font.setPixelSize(pixelSize)
# self.setFont(self.font)
# self.textHeight = self.fontMetrics().height()
# spacing = (self.height() - self.toolBarHeight - self.textHeight) / 2
# # if spacing > 0:
painter.setFont(self.font)
if self.boderFlag:
color = QColor('lightgray')
color.setAlpha(30)
painter.fillRect(0, self.toolBarHeight, self.width(), self.height() - self.toolBarHeight, color)
painter.setPen(QColor(0, 0, 0, 200))
painter.drawText(self.startX + 1, self.startY + 1, self.textWidth, self.textHeight, Qt.AlignLeft, self.text)
painter.setPen(QPen(self.linear_gradient, 0))
painter.drawText(self.startX, self.startY, self.textWidth, self.textHeight, Qt.AlignLeft, self.text)
painter.setPen(QPen(self.mask_linear_gradient, 0))
painter.drawText(self.startX, self.startY, self.textWidth * self.p , self.textHeight, Qt.AlignLeft, self.text)
self.p += 0.01
if self.p >= 1:
self.p = 0
self.font.setPixelSize(30)
示例9
def setup_turn_label(self):
size_policy = constants.default_size_policy(self.dateLabel, QSizePolicy.Preferred, QSizePolicy.Fixed)
self.dateLabel.setSizePolicy(size_policy)
self.dateLabel.setFont(constants.default_font())
self.dateLabel.setText('Turn ' + str(self.battleView.turn))
self.dateLabel.setAlignment(Qt.AlignLeft | Qt.AlignVCenter)
self.gridLayout.addWidget(self.dateLabel, 0, 0, 1, 1)
示例10
def init_ui(self):
layout = QHBoxLayout(self)
self.find_label = QLabel("Find:")
self.find_label.setMaximumSize(35, 24)
layout.addWidget(self.find_label)
self.find_combo_box = QComboBox()
self.find_combo_box.setMaximumSize(105, 24)
layout.addWidget(self.find_combo_box)
self.find_edit = QLineEdit()
self.find_edit.setMaximumSize(140, 24)
self.find_edit.returnPressed.connect(
lambda: self.on_find_btn_clicked(self.last_direction)
)
layout.addWidget(self.find_edit)
self.prev_btn = QToolButton(self)
self.prev_btn.clicked.connect(lambda: self.on_find_btn_clicked(-1))
self.prev_btn.setArrowType(Qt.UpArrow)
self.prev_btn.setToolTip("Find previous")
layout.addWidget(self.prev_btn)
self.next_btn = QToolButton(self)
self.next_btn.clicked.connect(lambda: self.on_find_btn_clicked(1))
self.next_btn.setArrowType(Qt.DownArrow)
self.next_btn.setToolTip("Find next")
layout.addWidget(self.next_btn)
layout.setAlignment(Qt.AlignLeft)
示例11
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.previous_selection = []
self.setColumnCount(len(Column))
h_header = self.horizontalHeader()
h_header.setDefaultAlignment(Qt.AlignLeft | Qt.AlignVCenter)
for col in Column:
h_header.setSectionResizeMode(col, QHeaderView.Fixed)
self.setColumnWidth(Column.ICON, 50)
self.setColumnWidth(
Column.NAME,
max(self.size().width() - FileTable.FIXED_COL_SIZE, FileTable.NAME_COL_MIN_SIZE),
)
self.setColumnWidth(Column.CREATED, 200)
self.setColumnWidth(Column.UPDATED, 200)
self.setColumnWidth(Column.SIZE, 100)
v_header = self.verticalHeader()
v_header.setSectionResizeMode(QHeaderView.Fixed)
v_header.setDefaultSectionSize(48)
self.setItemDelegate(ItemDelegate())
self.setContextMenuPolicy(Qt.CustomContextMenu)
self.itemSelectionChanged.connect(self.change_selection)
self.customContextMenuRequested.connect(self.show_context_menu)
self.cellDoubleClicked.connect(self.item_double_clicked)
self.cellClicked.connect(self.item_clicked)
self.current_user_role = WorkspaceRole.OWNER
self.paste_disabled = True
effect = QGraphicsDropShadowEffect(self)
effect.setColor(QColor(34, 34, 34, 25))
effect.setBlurRadius(8)
effect.setXOffset(0)
effect.setYOffset(2)
self.setGraphicsEffect(effect)
示例12
def add_tabbar(self, tabbar):
self._right_layout.addWidget(tabbar)
self._right_layout.setAlignment(self.parent().tabbar, Qt.AlignLeft)
示例13
def crearLeyendaCaja(self):
leyendaComboBox = QComboBox()
leyendaComboBox.addItem("No Leyenda", 0)
leyendaComboBox.addItem("Leyenda superior", Qt.AlignTop)
leyendaComboBox.addItem("Leyenda inferior", Qt.AlignBottom)
leyendaComboBox.addItem("Leyenda izquierda", Qt.AlignLeft)
leyendaComboBox.addItem("Leyenda derecha", Qt.AlignRight)
return leyendaComboBox
示例14
def add_module(self, module):
name = QStandardItem()
name.setTextAlignment(Qt.AlignLeft)
if 'name' in module:
name.setText(module['name'])
base = QStandardItem()
base.setTextAlignment(Qt.AlignCenter)
str_fmt = '0x{0:X}'
if not self.uppercase_hex:
str_fmt = '0x{0:x}'
if 'base' in module:
base.setText(str_fmt.format(int(module['base'], 16)))
size = QStandardItem()
size.setTextAlignment(Qt.AlignRight)
if 'size' in module:
size.setText("{0:,d}".format(int(module['size'])))
path = QStandardItem()
path.setTextAlignment(Qt.AlignLeft)
if 'path' in module:
path.setText(module['path'])
self.modules_model.appendRow([name, base, size, path])
module_info = ModuleInfo(module)
if 'exports' in module and module['exports']:
module_info.apply_exports(module['exports'])
if 'imports' in module and module['imports']:
module_info.apply_imports(module['imports'])
if 'symbols' in module and module['symbols']:
module_info.apply_symbols(module['symbols'])
module_info._updated_details = True
示例15
def set_imports(self, imports):
""" Fills the ImportsList with data
"""
if self.imports_list is None:
return
self.imports_list.clear()
for import_ in imports:
name = QStandardItem()
name.setTextAlignment(Qt.AlignLeft)
if 'name' in import_:
name.setText(import_['name'])
address = QStandardItem()
address.setTextAlignment(Qt.AlignCenter)
str_fmt = '0x{0:X}'
if not self.uppercase_hex:
str_fmt = '0x{0:x}'
if 'address' in import_:
address.setText(str_fmt.format(int(import_['address'], 16)))
module = QStandardItem()
if 'module' in import_:
module.setTextAlignment(Qt.AlignLeft)
module.setText(import_['module'])
type_ = QStandardItem()
if 'type' in import_:
type_.setTextAlignment(Qt.AlignLeft)
type_.setText(import_['type'])
self.imports_model.appendRow([name, address, module, type_])
示例16
def set_exports(self, exports):
""" Fills the ExportsList with data
"""
if self.exports_list is None:
return
self.exports_list.clear()
for export in exports:
name = QStandardItem()
name.setTextAlignment(Qt.AlignLeft)
if 'name' in export:
name.setText(export['name'])
address = QStandardItem()
address.setTextAlignment(Qt.AlignCenter)
str_fmt = '0x{0:X}'
if not self.uppercase_hex:
str_fmt = '0x{0:x}'
if 'address' in export:
address.setText(str_fmt.format(int(export['address'], 16)))
type_ = QStandardItem()
type_.setTextAlignment(Qt.AlignLeft)
if 'type' in export:
type_.setText(export['type'])
self.exports_model.appendRow([name, address, type_])
示例17
def set_symbols(self, symbols):
""" Fills the SymbolsList with data
"""
if self.symbols_list is None:
return
self.symbols_list.clear()
for symbol in symbols:
name = QStandardItem()
name.setTextAlignment(Qt.AlignLeft)
if 'name' in symbol:
name.setText(symbol['name'])
address = QStandardItem()
address.setTextAlignment(Qt.AlignCenter)
str_fmt = '0x{0:X}'
if not self.uppercase_hex:
str_fmt = '0x{0:x}'
if 'address' in symbol:
address.setText(str_fmt.format(int(symbol['address'], 16)))
type_ = QStandardItem()
type_.setTextAlignment(Qt.AlignLeft)
if 'type' in symbol:
type_.setText(symbol['type'])
self.symbols_model.appendRow([name, address, type_])
# ************************************************************************
# **************************** Handlers **********************************
# ************************************************************************
示例18
def createLegendBox(self):
legendComboBox = QComboBox()
legendComboBox.addItem("No Legend ", 0)
legendComboBox.addItem("Legend Top", Qt.AlignTop)
legendComboBox.addItem("Legend Bottom", Qt.AlignBottom)
legendComboBox.addItem("Legend Left", Qt.AlignLeft)
legendComboBox.addItem("Legend Right", Qt.AlignRight)
return legendComboBox
示例19
def __init__(self):
super().__init__()
self.m_step = 0
self.m_x = 5
self.m_y = 1
# 初始化图像
self.series = QSplineSeries(self)
green_pen = QPen(Qt.red)
green_pen.setWidth(3)
self.series.setPen(green_pen)
self.axisX = QValueAxis()
self.axisY = QValueAxis()
self.series.append(self.m_x, self.m_y)
self.addSeries(self.series)
self.addAxis(self.axisX, Qt.AlignBottom)
self.addAxis(self.axisY, Qt.AlignLeft)
self.series.attachAxis(self.axisX)
self.series.attachAxis(self.axisY)
self.axisX.setTickCount(5)
self.axisX.setRange(0, 10)
self.axisY.setRange(-5, 10)
self.timer = QTimer(self)
self.timer.setInterval(1000)
self.timer.timeout.connect(self.handleTimeout)
self.timer.start()
示例20
def __getAlignment(self, alignment):
'''
:param alignment: left|top|right|bottom
'''
try:
return getattr(Qt, "Align" + alignment.capitalize())
except:
return Qt.AlignTop
# if alignment == "left":
# return Qt.AlignLeft
# if alignment == "right":
# return Qt.AlignRight
# if alignment == "bottom":
# return Qt.AlignBottom
# return Qt.AlignTop
示例21
def headerData(self, section, orientation, role=Qt.DisplayRole):
if role == Qt.DisplayRole and orientation == Qt.Horizontal:
return self.header_labels[section]
elif role == Qt.TextAlignmentRole:
return Qt.AlignLeft
return super().headerData(section, orientation, role)
示例22
def headerData(self, section, orientation, role=Qt.DisplayRole):
if role == Qt.DisplayRole and orientation == Qt.Horizontal:
return self.header_labels[section]
elif role == Qt.TextAlignmentRole:
return Qt.AlignLeft
return super().headerData(section, orientation, role)
示例23
def conteudoTabelaLeft(self, tabela, row, col, data):
item = QtWidgets.QTableWidgetItem()
item.setTextAlignment(Qt.AlignJustify |
Qt.AlignLeft | Qt.AlignVCenter)
item.setFlags(Qt.NoItemFlags)
item.setText(data)
tabela.setItem(row, col, item)
# Botão Tabela
示例24
def TabelaNomeTelefone(self, tabela, row, col, nome, telefone):
item = QtWidgets.QLabel()
item.setAlignment(Qt.AlignLeading|Qt.AlignLeft|
Qt.AlignVCenter)
item.setIndent(3)
item.setMargin(0)
item.setStyleSheet('background: #FFF')
html = (("""
<span style="font-family:Arial; font-size:13px; ">{}</span><br/>
<span style="font-family:Arial; font-size:10px;">{}</span>"""
)).format(nome, telefone)
item.setText(html)
tabela.setCellWidget(row, col, item)
# texto quantidade e status produtos tabela Produto
示例25
def __init__(self):
super(ViewerWindow,self).__init__()
self.setGeometry(QRect(100, 100, 800, 600))
self.setWindowTitle("PHIDL quickplot");
# Create "grid size = 40.0" label
self.gridsize_label = QLabel('ABCDEF', self)
self.gridsize_label.setFont(QtGui.QFont('SansSerif', 10))
self.gridsize_label.move(0, 200)
self.gridsize_label.setAlignment(Qt.AlignLeft)
self.gridsize_label.setStyleSheet('color: gray')
self.gridsize_label.setFixedWidth(120)
self.gridsize_label.setAttribute(QtCore.Qt.WA_TransparentForMouseEvents)
# Create "X=40.001, Y = 70.183" label
self.position_label = QLabel('ABCDEF', self)
self.position_label.setFont(QtGui.QFont('SansSerif', 10))
self.position_label.move(50, 200)
self.position_label.setAlignment(Qt.AlignRight)
self.position_label.setStyleSheet('color: gray')
self.position_label.setFixedWidth(240)
self.position_label.setAttribute(QtCore.Qt.WA_TransparentForMouseEvents)
# Create "Press ? for help" label
self.help_label = QLabel('ABCDEF', self)
self.help_label.setFont(QtGui.QFont('SansSerif', 10))
self.help_label.move(50, 200)
self.help_label.setAlignment(Qt.AlignCenter)
self.help_label.setStyleSheet('color: gray')
self.help_label.setFixedWidth(200)
self.help_label.setAttribute(QtCore.Qt.WA_TransparentForMouseEvents)
# Create label useful for debugging
self.debug_label = QLabel('', self)
self.debug_label.setFont(QtGui.QFont('SansSerif', 10))
self.debug_label.move(200, 200)
self.debug_label.setAlignment(Qt.AlignCenter)
self.debug_label.setStyleSheet('color: gray')
self.debug_label.setAttribute(QtCore.Qt.WA_TransparentForMouseEvents)
# Create QGraphicsView
self.viewer = Viewer(gridsize_label = self.gridsize_label,
position_label = self.position_label,
help_label = self.help_label)
self.setCentralWidget(self.viewer)
# Reorder widgets
self.gridsize_label.raise_()
self.position_label.raise_()
self.debug_label.raise_()
self.help_label.raise_()
self.show()
示例26
def __init__(self, parent, persepolis_setting):
super().__init__(parent)
self.persepolis_setting = persepolis_setting
# set ui direction
ui_direction = self.persepolis_setting.value('ui_direction')
if ui_direction == 'rtl':
self.setLayoutDirection(Qt.RightToLeft)
elif ui_direction in 'ltr':
self.setLayoutDirection(Qt.LeftToRight)
# set size
self.resize(QSize(400, 80))
self.setFixedWidth(400)
# show this widget as ToolTip widget
self.setWindowFlags(Qt.ToolTip)
# find bottom right position
bottom_right_screen = QDesktopWidget().availableGeometry().bottomRight()
bottom_right_notification = QRect(QPoint(0, 0), QSize(410, 120))
bottom_right_notification.moveBottomRight(bottom_right_screen)
self.move(bottom_right_notification.topLeft())
# get persepolis icon path
icons = ':/' + \
str(self.persepolis_setting.value('settings/icons')) + '/'
notification_horizontalLayout = QHBoxLayout(self)
# persepolis icon
svgWidget = QtSvg.QSvgWidget(':/persepolis.svg')
svgWidget.setFixedSize(QSize(64, 64))
notification_horizontalLayout.addWidget(svgWidget)
notification_verticalLayout = QVBoxLayout()
# 2 labels for notification messages
self.label1 = QLabel(self)
self.label1.setAlignment(Qt.AlignLeft | Qt.AlignVCenter)
self.label1.setStyleSheet("font-weight: bold")
self.label1.setWordWrap(True)
self.label2 = QLabel(self)
self.label2.setWordWrap(True)
self.label2.setAlignment(Qt.AlignLeft | Qt.AlignVCenter)
notification_verticalLayout.addWidget(self.label1)
notification_verticalLayout.addWidget(self.label2)
notification_horizontalLayout.addLayout(notification_verticalLayout)
示例27
def data(self, index, role):
if not index.isValid():
return None
if not (0 <= index.row() < self.rowCount()):
return None
elif role == Qt.FontRole:
return QtGui.QFont().setPointSize(30)
elif role == Qt.DecorationRole and index.column() == 0:
return None
elif role == Qt.TextAlignmentRole:
return Qt.AlignLeft;
# Color background
if role == Qt.BackgroundRole:
function = self._data[index.row()]
# Row is selected
if index.row() in self.rows_selected:
return FIRST.color_selected
# Data has been updated since original
if function.has_changed:
return FIRST.color_changed
#
if function.id is not None:
return FIRST.color_unchanged
# Return the default color
return FIRST.color_default
if role == Qt.DisplayRole:
function = self._data[index.row()]
column = index.column()
if 0 == column:
return '0x{0:X}'.format(function.address)
elif 1 == column:
return function.name
elif 2 == column:
return function.prototype
elif 3 == column:
return function.comment
return None
return super(FIRST.Model.Upload, self).data(index, role)
示例28
def drawContents(self, painter):
if self._to_stop:
return
painter.save()
painter.setPen(QColor(255, 255, 255, 255))
painter.setRenderHint(QPainter.Antialiasing)
painter.setRenderHint(QPainter.Antialiasing, True)
version = Application.getInstance().getVersion().split("-")
# Draw version text
font = QFont() # Using system-default font here
font.setPixelSize(18)
painter.setFont(font)
painter.drawText(60, 70 + self._version_y_offset, 330 * self._scale, 230 * self._scale, Qt.AlignLeft | Qt.AlignTop, version[0])
if len(version) > 1:
font.setPixelSize(16)
painter.setFont(font)
painter.setPen(QColor(200, 200, 200, 255))
painter.drawText(247, 105 + self._version_y_offset, 330 * self._scale, 255 * self._scale, Qt.AlignLeft | Qt.AlignTop, version[1])
painter.setPen(QColor(255, 255, 255, 255))
# Draw the loading image
pen = QPen()
pen.setWidth(6 * self._scale)
pen.setColor(QColor(32, 166, 219, 255))
painter.setPen(pen)
painter.drawArc(60, 150, 32 * self._scale, 32 * self._scale, self._loading_image_rotation_angle * 16, 300 * 16)
# Draw message text
if self._current_message:
font = QFont() # Using system-default font here
font.setPixelSize(13)
pen = QPen()
pen.setColor(QColor(255, 255, 255, 255))
painter.setPen(pen)
painter.setFont(font)
painter.drawText(100, 128, 170, 64,
Qt.AlignLeft | Qt.AlignVCenter | Qt.TextWordWrap,
self._current_message)
painter.restore()
super().drawContents(painter)
示例29
def _create_gui(self):
self.setWindowTitle("Chunk editor")
lbl = QtWidgets.QLabel("0x%X" % self.addr)
lbl.setStyleSheet("font-weight: bold")
form = QtWidgets.QFormLayout()
form.setLabelAlignment(Qt.AlignLeft|Qt.AlignVCenter)
self.t_prev_size = QtWidgets.QLineEdit()
self.t_size = QtWidgets.QLineEdit()
self.t_fd = QtWidgets.QLineEdit()
self.t_bk = QtWidgets.QLineEdit()
self.t_fd_nextsize = QtWidgets.QLineEdit()
self.t_bk_nextsize = QtWidgets.QLineEdit()
widgets = [
self.t_prev_size,
self.t_size,
self.t_fd,
self.t_bk,
self.t_fd_nextsize,
self.t_bk_nextsize
]
for w in widgets:
w.setFixedWidth(170)
groupbox_flags = QtWidgets.QGroupBox()
self.f_prev_inuse = QtWidgets.QCheckBox("prev_inuse")
self.f_is_mmaped = QtWidgets.QCheckBox("is_mmapped")
self.f_non_main_arena = QtWidgets.QCheckBox("non_main_arena")
vbox_flags = QtWidgets.QVBoxLayout()
vbox_flags.addWidget(self.f_prev_inuse)
vbox_flags.addWidget(self.f_is_mmaped)
vbox_flags.addWidget(self.f_non_main_arena)
groupbox_flags.setLayout(vbox_flags)
form.addRow("address", lbl)
form.addRow(QtWidgets.QLabel())
form.addRow("prev_size", self.t_prev_size)
form.addRow("size", self.t_size)
form.addRow("fd", self.t_fd)
form.addRow("bk", self.t_bk)
form.addRow("fd_nextsize", self.t_fd_nextsize)
form.addRow("bk_nextsize", self.t_bk_nextsize)
form.addRow("flags", groupbox_flags)
self.btn_cancel = QtWidgets.QPushButton("Cancel")
self.btn_cancel.clicked.connect(self.btn_cancel_on_click)
self.btn_save = QtWidgets.QPushButton("Save")
self.btn_save.clicked.connect(self.btn_save_on_click)
self.btn_save.setDefault(True)
form.addRow(QtWidgets.QLabel())
form.addRow(self.btn_cancel, self.btn_save)
self.setLayout(form)
示例30
def paint(self, painter: QPainter, option: QStyleOptionViewItem, index: QModelIndex) -> None:
r = option.rect
pencolor = Qt.white if self.theme == 'dark' else Qt.black
if self.parent.isEnabled():
if option.state & QStyle.State_Selected:
painter.setBrush(QColor(150, 190, 78, 150))
elif option.state & QStyle.State_MouseOver:
painter.setBrush(QColor(227, 212, 232))
pencolor = Qt.black
else:
brushcolor = QColor(79, 85, 87, 175) if self.theme == 'dark' else QColor('#EFF0F1')
painter.setBrush(Qt.transparent if index.row() % 2 == 0 else brushcolor)
painter.setPen(Qt.NoPen)
painter.drawRect(r)
thumbicon = QIcon(index.data(Qt.DecorationRole + 1))
starttime = index.data(Qt.DisplayRole + 1)
endtime = index.data(Qt.UserRole + 1)
externalPath = index.data(Qt.UserRole + 2)
chapterName = index.data(Qt.UserRole + 3)
painter.setPen(QPen(pencolor, 1, Qt.SolidLine))
if len(chapterName):
offset = 20
r = option.rect.adjusted(5, 5, 0, 0)
cfont = QFont('Futura LT', -1, QFont.Medium)
cfont.setPointSizeF(12.25 if sys.platform == 'darwin' else 10.25)
painter.setFont(cfont)
painter.drawText(r, Qt.AlignLeft, self.clipText(chapterName, painter, True))
r = option.rect.adjusted(5, offset, 0, 0)
else:
offset = 0
r = option.rect.adjusted(5, 0, 0, 0)
thumbicon.paint(painter, r, Qt.AlignVCenter | Qt.AlignLeft)
r = option.rect.adjusted(110, 10 + offset, 0, 0)
painter.setFont(QFont('Noto Sans', 11 if sys.platform == 'darwin' else 9, QFont.Bold))
painter.drawText(r, Qt.AlignLeft, 'FILENAME' if len(externalPath) else 'START')
r = option.rect.adjusted(110, 23 + offset, 0, 0)
painter.setFont(QFont('Noto Sans', 11 if sys.platform == 'darwin' else 9, QFont.Normal))
if len(externalPath):
painter.drawText(r, Qt.AlignLeft, self.clipText(os.path.basename(externalPath), painter))
else:
painter.drawText(r, Qt.AlignLeft, starttime)
if len(endtime) > 0:
r = option.rect.adjusted(110, 48 + offset, 0, 0)
painter.setFont(QFont('Noto Sans', 11 if sys.platform == 'darwin' else 9, QFont.Bold))
painter.drawText(r, Qt.AlignLeft, 'RUNTIME' if len(externalPath) else 'END')
r = option.rect.adjusted(110, 60 + offset, 0, 0)
painter.setFont(QFont('Noto Sans', 11 if sys.platform == 'darwin' else 9, QFont.Normal))
painter.drawText(r, Qt.AlignLeft, endtime)