本文整理汇总了Python中PyQt5.QtWidgets.QTableView.setRowHeight方法的典型用法代码示例。如果您正苦于以下问题:Python QTableView.setRowHeight方法的具体用法?Python QTableView.setRowHeight怎么用?Python QTableView.setRowHeight使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PyQt5.QtWidgets.QTableView
的用法示例。
在下文中一共展示了QTableView.setRowHeight方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: QApplication
# 需要导入模块: from PyQt5.QtWidgets import QTableView [as 别名]
# 或者: from PyQt5.QtWidgets.QTableView import setRowHeight [as 别名]
#self._parent._fileSave()
pass
if __name__ == "__main__":
import sys
from PyQt5.QtWidgets import QApplication, QTableView
from mtg.Database import CardDatabase
app = QApplication(sys.argv)
db = CardDatabase()
mdl = CubeModel(os.path.abspath(r".\MyCube.xml"), db, parent=app)
mdl._cubeData = etree.parse(mdl._cubeFile)
tbl = QTableView()
tbl.setModel(mdl)
tbl.resize(800, 600)
for i in range(mdl.columnCount()):
tbl.setColumnWidth(i, CARD_WIDTH)
for i in range(mdl.rowCount()):
tbl.setRowHeight(i, CARD_HEIGHT)
tbl.show()
sys.exit(app.exec_())
示例2: FreezeTableWidget
# 需要导入模块: from PyQt5.QtWidgets import QTableView [as 别名]
# 或者: from PyQt5.QtWidgets.QTableView import setRowHeight [as 别名]
class FreezeTableWidget(QTableView):
def __init__(self, model):
super(FreezeTableWidget, self).__init__()
self.setModel(model)
self.frozenTableView = QTableView(self)
self.init()
self.horizontalHeader().sectionResized.connect(self.updateSectionWidth)
self.verticalHeader().sectionResized.connect(self.updateSectionHeight)
self.frozenTableView.verticalScrollBar().valueChanged.connect(
self.verticalScrollBar().setValue)
self.verticalScrollBar().valueChanged.connect(
self.frozenTableView.verticalScrollBar().setValue)
def init(self):
self.frozenTableView.setModel(self.model())
self.frozenTableView.setFocusPolicy(Qt.NoFocus)
self.frozenTableView.verticalHeader().hide()
self.frozenTableView.horizontalHeader().setSectionResizeMode(
QHeaderView.Fixed)
self.viewport().stackUnder(self.frozenTableView)
self.frozenTableView.setStyleSheet('''
QTableView { border: none;
background-color: #8EDE21;
selection-background-color: #999;
}''') # for demo purposes
self.frozenTableView.setSelectionModel(self.selectionModel())
for col in range(1, self.model().columnCount()):
self.frozenTableView.setColumnHidden(col, True)
self.frozenTableView.setColumnWidth(0, self.columnWidth(0))
self.frozenTableView.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
self.frozenTableView.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
self.frozenTableView.show()
self.updateFrozenTableGeometry()
self.setHorizontalScrollMode(self.ScrollPerPixel)
self.setVerticalScrollMode(self.ScrollPerPixel)
self.frozenTableView.setVerticalScrollMode(self.ScrollPerPixel)
def updateSectionWidth(self, logicalIndex, oldSize, newSize):
if self.logicalIndex == 0:
self.frozenTableView.setColumnWidth(0, newSize)
self.updateFrozenTableGeometry()
def updateSectionHeight(self, logicalIndex, oldSize, newSize):
self.frozenTableView.setRowHeight(logicalIndex, newSize)
def resizeEvent(self, event):
super(FreezeTableWidget, self).resizeEvent(event)
self.updateFrozenTableGeometry()
def moveCursor(self, cursorAction, modifiers):
current = super(FreezeTableWidget, self).moveCursor(cursorAction, modifiers)
if (cursorAction == self.MoveLeft and
self.current.column() > 0 and
self.visualRect(current).topLeft().x() <
self.frozenTableView.columnWidth(0)):
newValue = (self.horizontalScrollBar().value() +
self.visualRect(current).topLeft().x() -
self.frozenTableView.columnWidth(0))
self.horizontalScrollBar().setValue(newValue)
return current
def scrollTo(self, index, hint):
if index.column() > 0:
super(FreezeTableWidget, self).scrollTo(index, hint)
def updateFrozenTableGeometry(self):
self.frozenTableView.setGeometry(
self.verticalHeader().width() + self.frameWidth(),
self.frameWidth(), self.columnWidth(0),
self.viewport().height() + self.horizontalHeader().height())
示例3: Universe
# 需要导入模块: from PyQt5.QtWidgets import QTableView [as 别名]
# 或者: from PyQt5.QtWidgets.QTableView import setRowHeight [as 别名]
class Universe(QGroupBox):
"""
Handle Universe and display its attributes
Only one is created and display universe_selected attributes
"""
def __init__(self, parent):
super(Universe, self).__init__()
# make it available for the whole instance
self.ola = parent.ola
# intialize variable used in ola_connect method
self.old = None
self.universe_selected = None
# Create universe attributes
self.create_attributes()
# Create the view to display values
self.create_tableview()
# Add the previous UI stuffs to a layout
grid = self.create_layout()
self.grid = grid
self.setLayout(grid)
parent.vbox.addWidget(self)
self.parent = parent
def create_attributes(self):
"""
create attributes widget for the universe
"""
self.id = QSpinBox()
self.id.setReadOnly(True)
self.id.setRange(0, 65536)
self.name = QLineEdit()
self.name.textEdited.connect(self.edit_name)
self.name.setFixedWidth(200)
self.merge_mode_label = QLabel('Merge Mode')
self.merge_mode_htp_label = QLabel('HTP')
self.merge_mode_htp = QRadioButton()
self.merge_mode_ltp_label = QLabel('LTP')
self.merge_mode_ltp = QRadioButton()
self.merge_mode_ltp.toggled.connect(self.edit_merge_mode_ltp)
self.merge_mode_htp.toggled.connect(self.edit_merge_mode_htp)
def edit_name(self, name):
if self.universe_selected:
if self.ola.client.SetUniverseName(self.universe_selected.id, name):
self.parent.universes_refresh()
else:
self.parent.status("name edit failed")
if debug:
"edit universe name failed"
def edit_merge_mode_htp(self, state):
if state:
if debug:
print('switch universe to HTP merge mode')
self.edit_merge_mode(1)
def edit_merge_mode_ltp(self, state):
if state:
if debug:
print('switch universe to LTP merge mode')
self.edit_merge_mode(2)
def edit_merge_mode(self, merge_mode):
if self.universe_selected:
if self.ola.client.SetUniverseMergeMode(self.universe_selected.id, merge_mode):
self.parent.universes_refresh()
else:
self.parent.status("merge mode edit failed")
if debug:
"edit universe merge mode failed"
def create_tableview(self):
"""
create the table view for DMX values
"""
self.view = QTableView()
self.view.setSelectionMode(QAbstractItemView.NoSelection)
self.model = UniverseModel(self)
self.view.setModel(self.model)
# set up headers of the QTableView
v_headers = QHeaderView(Qt.Vertical)
self.view.setVerticalHeader(v_headers)
h_headers = QHeaderView(Qt.Horizontal)
self.view.setHorizontalHeader(h_headers)
if debug :
print('how many lines : ', v_headers.count())
print('how many columns : ', h_headers.count())
# set up rows and columns
for col in range(self.model.columnCount()):
self.view.setColumnWidth(col, 28)
for row in range(self.model.rowCount()):
self.view.setRowHeight(row, 20)
self.view.setMinimumHeight(350)
def create_layout(self):
"""
create the layout for the universe display
"""
grid = QGridLayout()
grid.addWidget(self.id, 0, 0, 1, 1)
#.........这里部分代码省略.........
示例4: main
# 需要导入模块: from PyQt5.QtWidgets import QTableView [as 别名]
# 或者: from PyQt5.QtWidgets.QTableView import setRowHeight [as 别名]
#.........这里部分代码省略.........
filter_line_edit.setMaximumWidth(200)
filter_line_edit.setPlaceholderText('Filter name')
filter_line_edit.setToolTip('Filter name optionally using regular expressions (' + QKeySequence(QKeySequence.Find).toString() + ')')
filter_line_edit.textChanged.connect(filter_changed)
tool_bar.addWidget(filter_line_edit)
# actions to toggle visibility of available sizes/columns
def action_toggled(index):
column = 2 + index
table_view.setColumnHidden(column, not table_view.isColumnHidden(column))
table_view.resizeColumnsToContents()
table_view.resizeRowsToContents()
signal_mapper = QSignalMapper()
for i, size in enumerate(all_sizes):
action = QAction('%dx%d' % size, tool_bar)
action.setCheckable(True)
action.setChecked(True)
tool_bar.addAction(action)
action.toggled.connect(signal_mapper.map)
signal_mapper.setMapping(action, i)
# set tool tip and handle key sequence
tool_tip = 'Toggle visibility of column'
if i < 10:
digit = ('%d' % (i + 1))[-1]
tool_tip += ' (%s)' % QKeySequence('Ctrl+%s' % digit).toString()
action.setToolTip(tool_tip)
signal_mapper.mapped.connect(action_toggled)
# label columns
header_labels = ['context', 'name']
for width, height in all_sizes:
header_labels.append('%dx%d' % (width, height))
item_model.setColumnCount(len(header_labels))
item_model.setHorizontalHeaderLabels(header_labels)
# fill rows
item_model.setRowCount(len(icons))
for row, icon_data in enumerate(icons):
# context
item = QStandardItem(icon_data['context'])
item.setFlags(item.flags() ^ Qt.ItemIsEditable)
item_model.setItem(row, 0, item)
# icon name
item = QStandardItem(icon_data['icon_name'])
item.setFlags(item.flags() ^ Qt.ItemIsEditable)
item_model.setItem(row, 1, item)
for index_in_all_sizes, size in enumerate(all_sizes):
column = 2 + index_in_all_sizes
if size in icon_data['sizes']:
# icon as pixmap to keep specific size
item = QStandardItem('')
pixmap = icon_data['icon'].pixmap(size[0], size[1])
item.setData(pixmap, Qt.DecorationRole)
item.setFlags(item.flags() ^ Qt.ItemIsEditable)
item_model.setItem(row, column, item)
else:
# single space to be sortable against icons
item = QStandardItem(' ')
item.setFlags(item.flags() ^ Qt.ItemIsEditable)
item_model.setItem(row, column, item)
table_view.resizeColumnsToContents()
# manually set row heights because resizeRowsToContents is not working properly
for row, icon_data in enumerate(icons):
if len(icon_data['sizes']) > 0:
max_size = icon_data['sizes'][-1]
table_view.setRowHeight(row, max_size[1])
# enable focus find (ctrl+f) and toggle columns (ctrl+NUM)
def main_window_keyPressEvent(self, event, old_keyPressEvent=QMainWindow.keyPressEvent):
if event.matches(QKeySequence.Find):
filter_line_edit.setFocus()
return
if event.modifiers() == Qt.ControlModifier and event.key() >= Qt.Key_0 and event.key() <= Qt.Key_9:
index = event.key() - Qt.Key_1
if event.key() == Qt.Key_0:
index += 10
action = signal_mapper.mapping(index)
if action:
action.toggle()
return
old_keyPressEvent(self, event)
main_window.keyPressEvent = MethodType(main_window_keyPressEvent, table_view)
# enable copy (ctrl+c) name of icon to clipboard
def table_view_keyPressEvent(self, event, old_keyPressEvent=QTableView.keyPressEvent):
if event.matches(QKeySequence.Copy):
selection_model = self.selectionModel()
if selection_model.hasSelection():
index = selection_model.selectedRows()[0]
source_index = self.model().mapToSource(index)
item = self.model().sourceModel().item(source_index.row(), 1)
icon_name = item.data(Qt.EditRole)
app.clipboard().setText(icon_name.toString())
return
old_keyPressEvent(self, event)
table_view.keyPressEvent = MethodType(table_view_keyPressEvent, table_view)
main_window.showMaximized()
return app.exec_()