[英]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”。
当然,摆脱它们的一种方法是将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.