Qt Designerでドラッグ&ドロップ要素として解釈されるカスタムウィジェット/プラグインを作成しようとしています。しかし、ほとんどの作品は、ビルドの最後に1つのエラーが発生します。 Cannot convert argument 1 from 'QWidget *' to 'const GLineEdit &'
私はこれを修正するために何をしたいのか分からないが、それほど確かではない。ここに私の関連するソースコードは次のとおりです。Qtカスタムウィジェットビルドできません
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
どのラインがエラーに関連していますか?私は表示されたコードのどこにでも 'const GLineEdit&'型の変数が必要なことはありません。 –
あなたのコードは**完全**ではなく、どちらも** minimal **ではありません。より簡単な例(プラグインの登録が含まれていて、それが何であれ、 'GLineEditInput'は必要ありません)を作成することができます。コードを問題の[mcve]にするようにコードを編集してください。そうすれば、それを再現して解決することができます。 [ask]も読んでください。 –