在Qt Creator UI Designer中,可以用其子类替换小部件。我创建了QComboBox
的模板子类:
template <typename T>
class MappedComboBox : public QComboBox
{
// ...
};
我已成功设法将QComboBox
替换为MappedComboBox<int>
。但是,例如,将QComboBox
小部件替换为MappedComboBox<QSerialPort::BaudRate>
会由于依赖性错误而失败,同时构建类似
'QSerialPort'未在此范围内声明。
当然,摆脱它们的一种方法是在QSerialPort
中包含mappedcombobox.h
,但这不是一种非常优雅的方式。我可以以某种方式告诉Qt Designer在生成UI时包含其他文件吗?
答案 0 :(得分:0)
在UI设计器中,无法包含额外的标头。更好的解决方法是在包含生成的标头之前将其包含在设计器类的cpp文件中。这比在MappedComboBox中包含的更好,后者与该标题没有业务关系。
在mainwindow.cpp中:
#include "mainwindow.h"
#include <QSerialPort>
#include "ui_mainwindow.h"