【Qt】VS中没有go to slot(转到槽)的解决方法

go to slot 是 Qt Creator 的功能,VS 打开的 Qt Designer 是没有的。

方法一 自定义Class的信号/槽

  1. 点击上方的“编辑信号/槽”
  2. 鼠标左键按住并拖动组件,拖到窗口的空白处,会出现类似地线的符号。注意:不要拖到其他组件上!
  3. 松开鼠标后会弹出“配置连接”的窗口,选择需要的信号,然后点击“编辑”。

在这里插入图片描述

  1. 在弹出的界面点击“加号”即可添加自定义的槽函数,添加完毕后点击“确定”,回到“配置连接”窗口选择我们自定义的函数即可。
    在这里插入图片描述
    在这里插入图片描述

  2. 来到 .h 和 .cpp 文件添加对应的代码。

// .h 文件
#pragma once
#include <QtWidgets/QMainWindow>
#include "ui_QtWidgetsApplication1.h"
class QtWidgetsApplication1 : public QMainWindow
{
    Q_OBJECT
public:
    QtWidgetsApplication1(QWidget *parent = nullptr);
    ~QtWidgetsApplication1();
// 添加 private slots:
// 添加刚才自定义的槽函数 slot1() 的声明
private slots:
    void slot1();

private:
    Ui::QtWidgetsApplication1Class ui;
};

此处为点击按钮B1后让单行文本框获取选择的文件路径

#include "QtWidgetsApplication1.h"
#include "QFileDialog"

QtWidgetsApplication1::QtWidgetsApplication1(QWidget *parent)
    : QMainWindow(parent)
{
    ui.setupUi(this);
    setWindowTitle("窗口");
}

QtWidgetsApplication1::~QtWidgetsApplication1()
{}
// 添加 自定义槽函数 slot1() 的实现
void QtWidgetsApplication1::slot1()
{
    QString fileName = QFileDialog::getOpenFileName(this, "选择文件", "", "文本文件 (*.txt);;所有文件 (*)");
    if (!fileName.isEmpty()) {
        ui.lineEdit->setText(fileName);
    }
}

成功运行
在这里插入图片描述

方法二 按照命名规则命名槽函数

命名规则如下
void on_<object name>_<signal name>(<signal parameters>)

void on_组件名_信号(信号函数的参数)
注意:此方法无需在 Qt Designer 添加槽函数,仅通过代码就能实现。

继续上一个方法中的例子,我们让B2按钮实现和B1一样的功能。
.h 文件

private slots:
    void slot1();	//B1
    void on_B2_clicked();	//B2 按照命名规则命名槽函数

.cpp 文件

// B1
void QtWidgetsApplication1::slot1()
{
    QString fileName = QFileDialog::getOpenFileName(this, "选择文件", "", "文本文件 (*.txt);;所有文件 (*)");

    if (!fileName.isEmpty()) {
        ui.lineEdit->setText(fileName);
    }
}
// B2
void QtWidgetsApplication1::on_B2_clicked()
{
    QString fileName = QFileDialog::getOpenFileName(this, "选择文件", "", "文本文件 (*.txt);;所有文件 (*)");

    if (!fileName.isEmpty()) {
        ui.lineEdit->setText(fileName);
    }
}

参考
如何在VS2017中关联QT的组件和信号槽

  • 14
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 狂神说Java全部笔记是一部非常受欢迎的Java学习资料。这份笔记主要由狂神根据自己多年的Java开发经验总结而成,包含了Java开发的各个方面。 首先,笔记涵盖了Java的基础知识,如Java的发展历史、安装配置、基本语法、数据类型、运算符等。这些内容对于初学者来说非常重要,可以帮助他们快速入门。 其次,笔记还介绍了Java的面向对象编程思想,包括封装、继承、多态等概念,以及如何使用类、对象、方法等构建自己的程序。这是Java开发的核心内容,通过深入学习这些知识,可以更好地掌握Java编程。 此外,狂神还在笔记详细介绍了Java常用的类库和API,如集合框架、IO操作、多线程、网络编程等。这些内容对于提升开发效率和扩展能力非常有帮助。 最后,笔记还包含了一些实战项目的案例分析,可以帮助读者将所学的知识应用到实际项目。通过动手实践,读者可以更好地理解和掌握Java开发的各个环节。 总的来说,狂神说Java全部笔记是一份非常全面和实用的学习资料,适合各个阶段的Java学习者。无论是初学者还是有一定经验的开发者,都可以从获益良多。通过学习这份笔记,读者可以打下良好的Java基础,掌握Java开发的核心知识,提高开发能力,从而更好地应对实际项目的需求。 ### 回答2: 狂神说Java是一份关于Java编程语言的全面笔记,内容涵盖了Java的基础知识、面向对象编程、集合框架、多线程编程、Java IO、数据库编程等方面的内容。 在Java的基础知识部分,狂神详细介绍了Java的发展历史、Java的安装配置、Java的数据类型、运算符、控制语句等基本知识,并给出了许多实际案例进行演示和讲解,帮助读者理解和掌握这些概念和技能。 在面向对象编程部分,狂神详细介绍了Java的类和对象、封装性、继承性、多态性等面向对象的特性,以及如何利用这些特性进行软件开发,包括类的设计、构造方法方法重载和方法重写等内容。 在集合框架部分,狂神讲解了Java的各种集合类,如ArrayList、LinkedList、HashMap等,并介绍了它们的使用方法和常见应用场景,以及集合的遍历和排序等相关操作。 在多线程编程部分,狂神详细介绍了Java的线程概念、线程的创建和启动、线程同步与通信等内容,并提供了一些实际案例来演示多线程编程的实际应用。 在Java IO部分,狂神讲解了Java的输入输出流、文件操作、字符流和字节流等内容,并提供了一些示例代码进行演示。 在数据库编程部分,狂神介绍了Java如何使用JDBC进行数据库的连接和操作,包括建立连接、执行SQL语句、事务处理等内容,并提供了一些实际案例进行演示。 总之,狂神说Java是一份非常全面、详细的Java编程笔记,适合初学者和有一定基础的Java开发者阅读和学习。通过阅读狂神说Java,读者可以系统地了解和掌握Java编程的基本知识和技能,为以后的Java开发打下良好的基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值