저는 Qt 초보자이고 몇 가지 사용자 정의 (기본 정렬 및 기본 텍스트)를 사용하여 사용자 정의 QLineEdit 클래스를 작성하려고합니다. 지금은 QWidget 만 상속받은 기본 클래스를 만들려고하고 있습니다.Qt 5에서 상속 된 클래스를 만드는 가장 쉬운 방법은 무엇입니까?
userText (utxt.h) : 이것은 내가 (내가 아는 아주 나쁜 코드)가 무엇
#ifndef UTXT_H
#define UTXT_H
#include <QWidget>
#include <QLineEdit>
class utxt : public QWidget
{
Q_OBJECT
public:
explicit utxt(QWidget *parent = 0);
QString text() const;
const QString displayText;
Qt::Alignment alignment;
void setAlignment(Qt::Alignment);
signals:
public slots:
};
#endif // UTXT_H
utxt.cpp :
#include "utxt.h"
utxt::utxt(QWidget *parent) :
QWidget(parent)
{
QString utxt::text()
{
return this->displayText;
}
void utxt::setAlignment(Qt::Alignment align)
{
this->alignment = align;
}
}
나는이 정말 잘못 알고 utxt.cpp의 두 함수에서 "로컬 함수 정의가 잘못되었습니다."오류가 계속 발생합니다. 누군가 올바른 방향으로 나를 가리킬 수 있습니까? 나는 다른 라인 편집을 촉진하기 위해 커스텀 QLineEdit을 생성하려고하고있다. 미리 감사드립니다 !! 어떤 도움을 주셔서 감사합니다!
당신은 C++ 초보자 인 것처럼 보입니다. 생성자 내에서 함수를 정의 할 수 없습니다. Qt로 작업하기 전에 간단한 프로젝트로 시작해야합니다. "커스텀 QLineEdit"을 만들고 싶다면 우선 QLineEdit에서 상속받습니다. –
오 마이 갓, 나는 바보 야! C# 에서처럼 클래스 정의가 소스 파일에있는 데 익숙해졌습니다. 클래스 정의라고 가정했습니다. 내 함수를 생성자에서 제외하고 오류가 해결되었습니다. 감사! QLineEdit에서 상속 받으면 QWidget을 상속합니까? QLineEdit에서 한 번 상속 받았으며 SetGeometry 등의 함수를 사용할 수 없다고 생각하기 때문에. 나는 둘 다 상속해야합니까? – Nickersoft
아니요, QWidget과 QLineEdit 모두에서 상속받을 수 없습니다 (QObject에서 간접적으로 상속되며 클래스 계층 구조에서 QObject를 두 번 사용할 수 없기 때문에). 어쨌든 당신이하려는 일에 대해 더 많이 알려줍니다. 기술은 QLineEdit을 상속받지 않고도 수행 할 수 있습니다. – Zlatomir