繁体   English   中英

用Qt Creator设计器中的自定义模板小部件替换小部件

[英]Replacing widget with custom template widget in Qt Creator Designer

在Qt Creator UI设计器中,可以用其子类替换小部件。 我创建了QComboBox的模板子类:

template <typename T>
class MappedComboBox : public QComboBox
{
    // ...
};

而且我已经成功地用MappedComboBox<int>替换了QComboBox 但是,例如,使用MappedComboBox<QSerialPort::BaudRate>替换QComboBox小部件时,由于进行类似构建时的依赖项错误而失败

未在此范围内声明“ QSerialPort”。

Qt Designer屏幕截图

当然,摆脱它们的一种方法是将QSerialPort包含在mappedcombobox.h但这不是一种非常优雅的方法。 我可以以某种方式告诉Qt Designer在生成UI时包括其他文件吗?

在UI设计器中,无法包含额外的标题。 更好的解决方法是在包含生成的标头之前将其包含在设计器类的cpp文件中。 这比将MappedComboBox包含在该标头中没有任何关系要好。

在mainwindow.cpp中:

#include "mainwindow.h"
#include <QSerialPort>
#include "ui_mainwindow.h"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM