qt5泛型模板创建以及调用
时间: 2023-07-08 14:15:14 浏览: 59
在Qt5中,泛型模板的创建和调用与C++标准相同。以下是一个在Qt5中创建和调用泛型模板的示例:
```cpp
// 声明一个泛型模板类
template<typename T>
class MyTemplateClass {
public:
MyTemplateClass(T value) : m_value(value) {}
T getValue() const {
return m_value;
}
private:
T m_value;
};
// 在Qt信号槽中使用泛型模板类
class MyWidget : public QWidget {
Q_OBJECT
public:
MyWidget(QWidget *parent = nullptr) : QWidget(parent) {
// 连接一个QPushButton的clicked信号到槽函数
connect(ui->pushButton, &QPushButton::clicked, this, &MyWidget::handleButtonClick);
}
private slots:
void handleButtonClick() {
// 创建一个MyTemplateClass<int>类型的对象并输出其值
MyTemplateClass<int> intObject(42);
qDebug() << "Int value: " << intObject.getValue();
// 创建一个MyTemplateClass<QString>类型的对象并输出其值
MyTemplateClass<QString> stringObject("Hello, world!");
qDebug() << "String value: " << stringObject.getValue();
}
private:
Ui::MyWidget ui;
};
```
在上面的示例中,我们声明了一个泛型模板类`MyTemplateClass`,并在`MyWidget`类中使用该类来创建不同类型的对象。我们还在`MyWidget`类中连接了一个`QPushButton`的`clicked`信号到`handleButtonClick`槽函数,该函数中创建了两个不同类型的`MyTemplateClass`对象并输出其值。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![xlsx](https://img-home.csdnimg.cn/images/20210720083732.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)