首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >推广QTableWidget的正确途径

推广QTableWidget的正确途径
EN

Stack Overflow用户
提问于 2017-10-30 20:08:26
回答 1查看 410关注 0票数 0

我需要有一个自定义的qtablewidget,我已经在QTableWidget中为它构建了如下所示:

刚刚创建了一个名为Inventory的类,然后从QTableWidget继承它,从qt设计器将一个qtablewidget添加到mainwindow中,并将其提升为Inventory类。

代码语言:javascript
复制
//inventory.h
#ifndef INVENTORY_H
#define INVENTORY_H    
#include <QTableWidget>

class Inventory : public QTableWidget
{

public:
    Inventory(QTableWidget* parent = 0);
};

#endif // INVENTORY_H


//inventory.cpp
#include "inventory.h"    
Inventory::Inventory(QTableWidget *parent)
    : QTableWidget(parent)
{
    setRowCount(3);
    setColumnCount(3);

    horizontalHeader()->setDefaultSectionSize(160);
    verticalHeader()->setDefaultSectionSize(160);
}

但出于某些原因,它无法正确构建,而是抛出以下内容:

代码语言:javascript
复制
error: invalid conversion from ‘QWidget*’ to ‘QTableWidget*’ [-fpermissive]
         tableWidget = new Inventory(centralWidget);
                                 ^

在行的ui_mainwindow.h文件中

其中tableWidget被声明为Inventory* tableWidget

怎么了??

怎么解决这个问题?

p.s.

使用qt 5.7.1和qtcreator 4.2.0构建

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-30 20:21:45

我认为您混淆了派生类(基类为QTableWidget )和派生库存类的构造函数。显然,要使Qt和Qt工作,您需要定义一个Inventory::Inventory(QWidget* parent = 0)构造函数,将一个QWidget作为父小部件。(在容器小部件的意义上,这里的父函数通常是布局)您的构造函数使用的是一个QTableWidget*,我觉得这很可疑,而您的编译器告诉您,QWdget*不是to QTableWidget*,这是有意义的。

更改库存构造函数的签名应使作业

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47023389

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档