【解决bug】qt的QVLayoutBox中的qtableview显示不全,部分内容隐藏,底下的几行看不到,滚动条的一部分也看不到

在这里插入图片描述请添加图片描述
问题:qtableview显示不全,底下的几行看不到,滚动条的一部分也看不到。

//mainwindow的代码,主界面代码
.............省略代码
this->ui->layout_table_area->addWidget(&tableView);//layout_table_area是一个QVLayoutBox 
.............省略代码
//自定义的mytableview的定义
class MyTableView : public QWidget
{
	Q_OBJECT
public:
	explicit MyTableView(QWidget *parent = nullptr);
	void addRow(QString& tmpl_name);
	void setModel();
 private:
	QTableView  view;
	QStandardItemModel model;
	QMenu menu;
	bool eventFilter(QObject* obj, QEvent *evt);//事件过滤器
signals:
	void delete_item_signal(QString name);
public slots:
	void onDelete(void);
};
//tableView类的相关代码
.....省略代码 
(view.horizontalHeader())->setVisible(false);
(view.verticalHeader())->setVisible(false);//去掉自动序号列 
view.setFocusPolicy(Qt::NoFocus);//取消焦点 
view.setEditTriggers(QAbstractItemView::NoEditTriggers);//设置无法编辑 view.setSelectionMode(QAbstractItemView::SingleSelection);//设置视图只能选择一个项目 view.setSelectionBehavior(QAbstractItemView::SelectRows);//设置视图只能选择行 
view.setModel(&model);//设置显示模型 
view.horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);//自适应所有列,让它布满空间 
,,,,,省略代码
//tableView中添加行的代码,测试过StandardItem是添加成功的
void MyTableView::addRow(QString& tmpl_name)
{ 
QStandardItem* item = new QStandardItem;
item->setData(tmpl_name, Qt::DisplayRole); 
model.appendRow(item); 
int t = model.rowCount(); 
qDebug()<< QString(t);
}

解决方法:
把继承widget,修改为继承QtableView。并且修改界面显示逻辑,不再放入QVLayoutBox。改为控件提升。
class MyTableView : public QTableView
在这里插入图片描述
这样就可以了。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值