Qt -使用QWidget类设置QWidget
Qt - set QWidget with a QWidget class
我正在学习使用Qt,我想扩展Qt的终端示例。我想在设计编辑器的de Containers选项卡中的QWidget中使用它的console.cpp。
在Qt的终端示例中,该类是这样使用的:
ui->setupUi(this);
console = new Console;
console->setEnabled(false);
setCentralWidget(console);
但是当我想在一个较小的QWidget中使用它时,我不知道如何设置它,我可以使用哪个方法作为setCentralWidget的等效方法?我想要设置为QWidget类的小部件的Design选项卡的图像
我也可以在几个选项卡中使用相同的QWidget吗?
console.cpp代码如下。
#include "console.h"
#include <QScrollBar>
#include <QtCore/QDebug>
Console::Console(QWidget *parent)
: QPlainTextEdit(parent)
, localEchoEnabled(false)
{
document()->setMaximumBlockCount(100);
QPalette p = palette();
p.setColor(QPalette::Base, Qt::black);
p.setColor(QPalette::Text, Qt::green);
setPalette(p);
}
void Console::putData(const QByteArray &data)
{
insertPlainText(QString(data));
QScrollBar *bar = verticalScrollBar();
bar->setValue(bar->maximum());
}
void Console::setLocalEchoEnabled(bool set)
{
localEchoEnabled = set;
}
void Console::keyPressEvent(QKeyEvent *e)
{
switch (e->key()) {
case Qt::Key_Backspace:
case Qt::Key_Left:
case Qt::Key_Right:
case Qt::Key_Up:
case Qt::Key_Down:
break;
default:
if (localEchoEnabled)
QPlainTextEdit::keyPressEvent(e);
emit getData(e->text().toLocal8Bit());
}
}
void Console::mousePressEvent(QMouseEvent *e)
{
Q_UNUSED(e)
setFocus();
}
void Console::mouseDoubleClickEvent(QMouseEvent *e)
{
Q_UNUSED(e)
}
void Console::contextMenuEvent(QContextMenuEvent *e)
{
Q_UNUSED(e)
}
Qt的例子是这个:http://doc.qt.io/qt-5/qtserialport-terminal-example.html
非常感谢!
如果您想通过设计器添加它,只需推广您在截屏中添加的QWidget。(右击>"推广到…")>填写姓名&控制台头的路径)。
或者不使用提升,您可以在代码中将控制台添加到布局中:
Console* console = new Console();
ui->your_layout_name_here->addWidget( console );
相关文章:
- 为不同配置设置MSVC_RUNTIME_LIBRARY的正确方法是什么
- 在C++/Linux中设置单调时钟的一些技巧
- 如何在选项卡视图Qt中设置一个新项目,并保存以前的项目
- 嵌套在类中时无法设置成员数据
- 需要帮助设置在C++中使用的Potrace
- 如何在自删除后将对象设置为nullptr
- 将指针设置为"nullptr"并不能防止双重删除?
- 为提升的小部件设置父 QWidget
- 无法在 qt 中为 QWidget 中的派生类设置样式表
- 为 QWidget 的私有成员设置样式表
- QWidget - 从C++代码设置边框
- 在设置QStylesHeet之后,如何获得Qwidget背景色
- 如何为Qwidget设置用户数据
- 如何设置通知功能,以便在创建QWidget派生对象时触发
- 是否可以继承QVBoxLayout并将其设置为QWidget中的布局
- 如何在 QGraphicsWidget 中设置 Qwidget
- Qt设置QWidget的默认宽度
- 如何重新缩放图像并将其设置为 QWidget
- Qt -使用QWidget类设置QWidget
- 设置了布局,但是QWidget看起来仍然是空的