QT自定义小部件无法构建
Qt Custom Widget Failing to Build
我正在尝试制作一个自定义的小部件/插件,以由QT Designer解释为拖放元素。但是,大多数作品在构建结束时确实会遇到一个错误。Cannot convert argument 1 from 'QWidget *' to 'const GLineEdit &'
我不太确定这要我要解决什么,但是不太确定。这是我的相关源代码:
GlineEditPlugin.cpp片段
QWidget *GLineEditPlugin::createWidget(QWidget *parent)
{
return new GLineEdit(parent);
}
glineedit.cpp
#include "glineedit.h"
GLineEdit::GLineEdit(const QString &str, const QString &color, QWidget *parent)
: QWidget(parent)
{
QVBoxLayout *layoutMain = new QVBoxLayout(this);
setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
m_header = new GLineEditHeader(this, str);
m_header->setStyleSheet("QLabel { color: " + color + "; }");
m_input = new GLineEditInput(this);
m_input->setStyleSheet(QString("QLineEdit { font-size: 12pt; padding-bottom: 5px; border: none; background-color: transparent; border-bottom: 2px solid %1; color: %1;}").arg(color));
layoutMain->addSpacerItem(new QSpacerItem(20, 15, QSizePolicy::Minimum, QSizePolicy::Fixed));
layoutMain->addWidget(m_input);
layoutMain->setContentsMargins(0, 0, 0, 0);
layoutMain->setSpacing(0);
connect(m_input, &GLineEditInput::focusChanged, m_header, &GLineEditHeader::zoom);
connect(m_input, &GLineEditInput::cleared, m_header, &GLineEditHeader::enableZoom);
}
glineedit.h
#ifndef GLINEEDIT_H
#define GLINEEDIT_H
#include "glineeditheader.h"
#include "glineeditinput.h"
#include <QWidget>
#include <QVBoxLayout>
class GLineEdit : public QWidget
{
Q_OBJECT
public:
GLineEdit(const QString &str, const QString &color, QWidget *parent = 0);
QString text() const;
QString title() const;
void setText(const QString &str);
void setTitle(const QString &str);
private:
GLineEditHeader *m_header;
GLineEditInput *m_input;
};
#endif //GLINEEDIT_H
这不是一个最小,完整且可验证的示例,您缺少指向失败的线
但是,很可能您的问题可以在这里找到:
return new GLineEdit(parent);
您的类GLineEdit
不提供一个构造函数,该构造函数对QWidget*
类型的单个参数,只有一个接受多个参数。因此,编译器试图诉诸于自动创建的复制构造器,看起来像
GLineEdit::GLineEdit(const GLineEdit&)
可能的解决方案:
- 将丢失的参数添加到您的构造函数调用中。
- 提供一个构造函数,该构造函数接受指向父窗口小部件的指针仅为参数。
相关文章:
- Android Studio:如何在build.gradle中定义自定义宏(针对不同的构建变体),并让原生C / C++
- 用于自定义调试构建的 CMake qt 输入库后缀
- 自定义构建文件更改不会触发VS 2017中的项目重建
- 从 ParaView 构建自定义 Qt 应用程序示例时出错
- 如何使用C++将MXNET自定义运算符构建到单独的库/包中?
- 有没有办法构建C++自定义限定符?
- 在多个目标上 CMake 后期构建自定义命令?
- 使用 QtCreator 部署自定义构建的项目
- 使用自定义GCC位置构建软件包
- 自定义 Python 构建 - time.so:未定义的符号:PyExc_ValueError
- Android NDK 中的预构建工具链和自定义工具链编译器之间的差异
- Cmake:如何构建自定义编译器二进制文件,然后将其用于某些目标?
- 在Z3中构建自定义理论
- Qt 5.5 构建自定义 QTreeView
- 在 Windows 上使用 CMake 2.8.11 构建自定义 Qt 4.8.3 库时出错
- 我可以在Visual Studio 2010中使用C构建自定义Apache模块扩展吗
- 使用scons构建自定义文件
- 如何构建自定义libcurl只支持HTTP / HTTPS协议
- 构建自定义提升库
- 在没有标头依赖项的情况下构建自定义库