QT-信号槽有多个重载版本{ QOverload<_>::of(&_::_) }

        因为 currentIndexChanged 信号有多个重载版本(根据参数的不同),因此需要使用 QOverload 来明确指定要连接的重载版本。

connect( 发送方 , QOverload<参数类型>::of(&QT中相对应的变换形式),
        this, &所响应的函数);

   索引发生变化 
connect(ui.cboxType, QOverload<int>::of(&QComboBox::currentIndexChanged),
        this, &SubReport::Report_Type);
  文本发生变化
connect(ui.cboxType, QOverload<const QString& >::of(&QComboBox::currentIndexChanged),             
        this, &SubReport::Report_Type);
connect(ui.cboxType, QOverload<const QString& >::of(&QComboBox::currentTextChanged),             
        this, &SubReport::Report_Type);

Index:更注重用户通过界面交互当

Text:监视组合框中的文本改变,不论哪种方式

 

 

根据你提供的代码片段,我发现你使用了 `Ui::MainWindow` 这个类,这可能意味着你使用了 Qt 的可视化界面设计器来创建界面。在这种情况下,你需要确保正确连接信号函数的步骤如下: 1. 打开 `mainwindow.ui` 文件,使用 Qt 的可视化界面设计器打开你的主窗口界面。 2. 在设计器中,找到 `penColorComboBox` 下拉框控件,并确保它已正确命名并添加到主窗口中。 3. 在设计器中,选中 `penColorComboBox` 控件,然后在属性编辑器中找到 "信号" 部分。 4. 在 "信号" 部分,找到 `currentIndexChanged(int)` 信号,并将其连接到 `onpenColorChanged(int)` 函数。确保信号的名称和参数类型都是正确的。 5. 保存并关闭界面设计器。 6. 在 `MainWindow` 的构造函数中,确保正确初始化界面并调用 `setupUi(this)`。 7. 确保在构造函数中调用 `connect` 函数来连接信号函数。示例代码如下: ```cpp MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow) { ui->setupUi(this); // 其他初始化操作... // 连接信号函数 connect(ui->penColorComboBox, QOverload<int>::of(&QComboBox::currentIndexChanged), this, &MainWindow::onpenColorChanged); } ``` 请注意,上面的示例代码中,`ui->penColorComboBox` 是通过界面设计器生成的指针,表示 `penColorComboBox` 下拉框控件。 确保按照以上步骤正确连接信号函数,并在界面设计器中进行了正确的设置。如果仍然无法绘画,请提供更多相关代码,以便我可以更好地帮助你解决问题。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值