Qt 类外调用一个 private slots 函数

本文介绍如何在Qt中从类外调用一个`private slots`函数,以`MainWindow`类的`print_on_log`函数为例,创建新类`Test_one`并在其内部调用。通过在`MainWindow`的`on_pushButton_clicked`函数中触发,实现了类外调用私有槽函数。虽然这种方式可能不常见,但展示了Qt中实现这一操作的可能。同时提到,使用`QMetaObject::invokeMethod()`调用可能优于发送自定义事件,因为它能直接与Qt信号系统配合,无需创建自定义事件类或重写事件处理函数。
摘要由CSDN通过智能技术生成

MainWindow中 private slots 函数 void print_on_log(QString strtemp);输出一个字符串到编辑窗口中

class MainWindow:publicQMainWindow

{
  
    Q_OBJECT
 
public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow
Qt中,主窗口调用子窗口函数可以通过信号与槽机制来实现。 首先,在子窗口类中定义一个需要被主窗口调用函数。例如,子窗口类为ChildWindow,函数为childFunction()。 子窗口头文件ChildWindow.h中添加以下代码: ```cpp signals: void callChildFunction(); public slots: void childFunction(); ``` 接下来,在主窗口类中,需要实例化子窗口的对象,并连接子窗口的信号和主窗口的槽函数。 主窗口头文件MainWindow.h中添加以下代码: ```cpp private slots: void onCallChildFunction(); ``` 主窗口源文件MainWindow.cpp中添加以下代码: ```cpp void MainWindow::onCallChildFunction() { childWindow->childFunction(); } ``` 最后,在主窗口类的构造函数中,进行子窗口对象的创建,并连接信号与槽函数。 主窗口源文件MainWindow.cpp中添加以下代码: ```cpp MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { // 其他代码... childWindow = new ChildWindow(this); connect(this, &MainWindow::callChildFunction, childWindow, &ChildWindow::childFunction); } ``` 这样,当主窗口需要调用子窗口的函数时,只需要在主窗口的槽函数onCallChildFunction()中发射信号emit callChildFunction()即可。 总结起来,主窗口调用子窗口函数的步骤如下: 1. 在子窗口类中定义需要被调用函数。 2. 在主窗口类中创建子窗口对象,并连接信号与槽函数。 3. 在主窗口类的槽函数中发射子窗口的信号。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值