📄 q3table.h
字号:
bool eventFilter(QObject * o, QEvent *); int currentRow() const { return curRow; } int currentColumn() const { return curCol; } void ensureCellVisible(int row, int col); bool isSelected(int row, int col) const; bool isRowSelected(int row, bool full = false) const; bool isColumnSelected(int col, bool full = false) const; int numSelections() const; Q3TableSelection selection(int num) const; virtual int addSelection(const Q3TableSelection &s); virtual void removeSelection(const Q3TableSelection &s); virtual void removeSelection(int num); virtual int currentSelection() const; void selectCells(int start_row, int start_col, int end_row, int end_col); virtual void selectRow(int row); virtual void selectColumn(int col); bool showGrid() const; QVariant inputMethodQuery(Qt::InputMethodQuery query) const; bool columnMovingEnabled() const; bool rowMovingEnabled() const; virtual void sortColumn(int col, bool ascending = true, bool wholeRows = false); bool sorting() const; virtual void takeItem(Q3TableItem *i); virtual void setCellWidget(int row, int col, QWidget *e); virtual QWidget *cellWidget(int row, int col) const; virtual void clearCellWidget(int row, int col); virtual QRect cellRect(int row, int col) const; virtual void paintCell(QPainter *p, int row, int col, const QRect &cr, bool selected); virtual void paintCell(QPainter *p, int row, int col, const QRect &cr, bool selected, const QColorGroup &cg); virtual void paintFocus(QPainter *p, const QRect &r); QSize sizeHint() const; bool isReadOnly() const; bool isRowReadOnly(int row) const; bool isColumnReadOnly(int col) const; void setEnabled(bool b); void repaintSelections(); enum FocusStyle { FollowStyle, SpreadSheet }; virtual void setFocusStyle(FocusStyle fs); FocusStyle focusStyle() const; void updateHeaderStates(); bool isRowHidden(int row) const; bool isColumnHidden(int col) const; bool isColumnStretchable(int col) const; bool isRowStretchable(int row) const; bool dragEnabled() const;public Q_SLOTS: virtual void setNumRows(int r); virtual void setNumCols(int r); virtual void setShowGrid(bool b); virtual void hideRow(int row); virtual void hideColumn(int col); virtual void showRow(int row); virtual void showColumn(int col); virtual void setColumnWidth(int col, int w); virtual void setRowHeight(int row, int h); virtual void adjustColumn(int col); virtual void adjustRow(int row); virtual void setColumnStretchable(int col, bool stretch); virtual void setRowStretchable(int row, bool stretch); virtual void setSorting(bool b); virtual void swapRows(int row1, int row2, bool swapHeader = false); virtual void swapColumns(int col1, int col2, bool swapHeader = false); virtual void swapCells(int row1, int col1, int row2, int col2); virtual void setLeftMargin(int m); virtual void setTopMargin(int m); virtual void setCurrentCell(int row, int col); void clearSelection(bool repaint = true); virtual void setColumnMovingEnabled(bool b); virtual void setRowMovingEnabled(bool b); virtual void setReadOnly(bool b); virtual void setRowReadOnly(int row, bool ro); virtual void setColumnReadOnly(int col, bool ro); virtual void setDragEnabled(bool b); virtual void insertRows(int row, int count = 1); virtual void insertColumns(int col, int count = 1); virtual void removeRow(int row); virtual void removeRows(const Q3MemArray<int> &rows); virtual void removeColumn(int col); virtual void removeColumns(const Q3MemArray<int> &cols); virtual void editCell(int row, int col, bool replace = false); void setRowLabels(const QStringList &labels); void setColumnLabels(const QStringList &labels);protected: enum EditMode { NotEditing, Editing, Replacing }; void drawContents(QPainter *p, int cx, int cy, int cw, int ch); void contentsMousePressEvent(QMouseEvent*); void contentsMouseMoveEvent(QMouseEvent*); void contentsMouseDoubleClickEvent(QMouseEvent*); void contentsMouseReleaseEvent(QMouseEvent*); void contentsContextMenuEvent(QContextMenuEvent * e); void keyPressEvent(QKeyEvent*); void focusInEvent(QFocusEvent*); void focusOutEvent(QFocusEvent*); void viewportResizeEvent(QResizeEvent *); void showEvent(QShowEvent *e); void paintEvent(QPaintEvent *e); void setEditMode(EditMode mode, int row, int col);#ifndef QT_NO_DRAGANDDROP virtual void contentsDragEnterEvent(QDragEnterEvent *e); virtual void contentsDragMoveEvent(QDragMoveEvent *e); virtual void contentsDragLeaveEvent(QDragLeaveEvent *e); virtual void contentsDropEvent(QDropEvent *e); virtual Q3DragObject *dragObject(); virtual void startDrag();#endif virtual void paintEmptyArea(QPainter *p, int cx, int cy, int cw, int ch); virtual void activateNextCell(); virtual QWidget *createEditor(int row, int col, bool initFromCell) const; virtual void setCellContentFromEditor(int row, int col); virtual QWidget *beginEdit(int row, int col, bool replace); virtual void endEdit(int row, int col, bool accept, bool replace); virtual void resizeData(int len); virtual void insertWidget(int row, int col, QWidget *w); int indexOf(int row, int col) const; void windowActivationChange(bool); bool isEditing() const; EditMode editMode() const; int currEditRow() const; int currEditCol() const;protected Q_SLOTS: virtual void columnWidthChanged(int col); virtual void rowHeightChanged(int row); virtual void columnIndexChanged(int section, int fromIndex, int toIndex); virtual void rowIndexChanged(int section, int fromIndex, int toIndex); virtual void columnClicked(int col);Q_SIGNALS: void currentChanged(int row, int col); void clicked(int row, int col, int button, const QPoint &mousePos); void doubleClicked(int row, int col, int button, const QPoint &mousePos); void pressed(int row, int col, int button, const QPoint &mousePos); void selectionChanged(); void valueChanged(int row, int col); void contextMenuRequested(int row, int col, const QPoint &pos);#ifndef QT_NO_DRAGANDDROP void dropped(QDropEvent *e);#endifprivate Q_SLOTS: void doAutoScroll(); void doValueChanged(); void updateGeometriesSlot();private: void contentsMousePressEventEx(QMouseEvent*); void drawContents(QPainter*); void updateGeometries(); void repaintSelections(Q3TableSelection *oldSelection, Q3TableSelection *newSelection, bool updateVertical = true, bool updateHorizontal = true); QRect rangeGeometry(int topRow, int leftCol, int bottomRow, int rightCol, bool &optimize); void fixRow(int &row, int y); void fixCol(int &col, int x); void init(int numRows, int numCols); QSize tableSize() const; void repaintCell(int row, int col); void contentsToViewport2(int x, int y, int& vx, int& vy); QPoint contentsToViewport2(const QPoint &p); void viewportToContents2(int vx, int vy, int& x, int& y); QPoint viewportToContents2(const QPoint &p); void updateRowWidgets(int row); void updateColWidgets(int col); bool isSelected(int row, int col, bool includeCurrent) const; void setCurrentCell(int row, int col, bool updateSelections, bool ensureVisible = false); void fixCell(int &row, int &col, int key); void delayedUpdateGeometries(); struct TableWidget { TableWidget(QWidget *w, int r, int c) : wid(w), row(r), col (c) {} QWidget *wid; int row, col; }; void saveContents(Q3PtrVector<Q3TableItem> &tmp, Q3PtrVector<TableWidget> &tmp2); void updateHeaderAndResizeContents(Q3TableHeader *header, int num, int colRow, int width, bool &updateBefore); void restoreContents(Q3PtrVector<Q3TableItem> &tmp, Q3PtrVector<TableWidget> &tmp2); void finishContentsResze(bool updateBefore);private: Q3PtrVector<Q3TableItem> contents; Q3PtrVector<QWidget> widgets; int curRow; int curCol; Q3TableHeader *leftHeader, *topHeader; EditMode edMode; int editCol, editRow; Q3PtrList<Q3TableSelection> selections; Q3TableSelection *currentSel; QTimer *autoScrollTimer; int lastSortCol; bool sGrid : 1; bool mRows : 1; bool mCols : 1; bool asc : 1; bool doSort : 1; bool unused : 1; bool readOnly : 1; bool shouldClearSelection : 1; bool dEnabled : 1; bool context_menu : 1; bool drawActiveSelection : 1; bool was_visible : 1; SelectionMode selMode; int pressedRow, pressedCol; Q3TablePrivate *d; Q3IntDict<int> roRows; Q3IntDict<int> roCols; int startDragRow; int startDragCol; QPoint dragStartPos; int oldCurrentRow, oldCurrentCol; FocusStyle focusStl; Q_DISABLE_COPY(Q3Table)};QT_END_HEADER#endif // Q3TABLE_H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -