#include <QApplication>
#include <QGraphicsScene>
#include <QGraphicsView>
#include <QGraphicsItem>
#include <QGraphicsProxyWidget>
#include <QPushButton>
#include <QGraphicsRectItem>
#include <QGraphicsEllipseItem>
#include <QPainter>
#include <QTableWidget>
#include <QHeaderView>
#include <QMenu>
class MyTableWidget : public QTableWidget {
public:
MyTableWidget(QWidget* parent = nullptr) : QTableWidget(parent) {
setRowCount(3); // 设置初始行数
setColumnCount(3); // 设置初始列数
resize(m_columnWidth * 3 + 25, m_rowHeight * 3 + 30);
setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
horizontalHeader()->setStyleSheet("QHeaderView::section{background:white;color: black;}");
verticalHeader()->setStyleSheet("QHeaderView::section{background:white;color: black;}");
for (int row = 0; row < 3; ++row) {
setRowHeight(row, m_rowHeight);
}
for (int col = 0; col < 3; ++col) {
setColumnWidth(col, m_columnWidth);
}
// 连接信号与槽
connect(horizontalHeader(), &QHeaderView::sectionResized, this, &MyTableWidget::onColumnResized);
connect(verticalHeader(), &QHeaderView::sectionResized, this, &MyTableWidget::onRowResized);
}
protected:
void contextMenuEvent(QContextMenuEvent* event) override {
// 创建右键菜单
QMenu menu(this);
// 添加“插入行”选项
QAction* insertRowAction = menu.addAction("Add row");
connect(insertRowAction, &QAction::triggered, this, &MyTableWidget::insertRowToEnd);
// 添加“插入列”选项
QAction* insertColumnAction = menu.addAction("Add column");
connect<
使用QGraphicsProxyWidget将widget绘制在QGraphicsView中
于 2025-01-09 21:59:23 首次发布