#include <QtGui>
#include <QWidget>
#include "notepad.h"
notepad::notepad()
{
textField = new QTextEdit;
setCentralWidget(textField);
setWindowTitle(tr("The building of a notepad...."));
}
这是我的一个Qt项目的文件。 setCentralWidget部分有一些错误。错误是它未在范围中声明。但是我已经包含了它包含在内的QWidget类。这是什么错误?
答案 0 :(得分:3)
setCentralWidget
是QMainWindow
上的一种方法。它不是顶级功能。如果您的notepad
类来自QMainWindow
,那么它只会在此范围内,我认为它不能。{/ p>
答案 1 :(得分:0)
正如其他人所说,setCentralWidget(..)
只是QMainWindow的成员。我认为您可以通过向QWidget添加布局然后将QTextEdit添加到布局来实现您要寻找的行为。我会建议QPlainTextEdit,因为它是为编辑文本文档的多行而设置的。 QTextEdit通常用于单行输入。这是一些示例代码:
notepad::notepad()
{
QVBoxLayout *layout = new QVBoxLayout();
QPlainTextEdit *textBox = new QPlainTextEdit();
layout->addWidget(textBox);
this->setLayout(layout);
setWindowTitle(tr("The building of a notepad...."));
}
布局可以是QVBoxLayout,QHBoxLayout,QGridLayout等。这完全取决于您希望通过表单布局实现的目标。您还可以使用this->addWidget(QWidget*)
而不是使用新创建的布局添加到现有布局。我希望这会有所帮助。