Qt 信号和槽的小问题(新手向)

Qt项目报错: static assertion failed: Signal and slot arguments are not compatible(信号和槽的参数不对应)
例:
槽函数:

void A::give(QString a){
    qDebug()<<"give"<<a;
} 

部分代码

    void (A:: *asignanl)(QString)=&A::give;
    void (B:: *bsignanl)(QString)=&B::hungry; 
    connect(tea,asignal,stu,bsignal);
    QPushButton *btn=new QPushButton("dianji",this);
    connect(btn,&QPushButton::clicked,tea,asignal);
}

执行第二个connect函数时将会报错: static assertion failed: Signal and slot arguments are not compatible
原因:clicked函数的参数为布尔类型,而槽函数asignal的参数为Qstring类型,导致链接失败
解决方法:
1 链接一个返回值为bool或者void的槽函数,才该函数中使用emit激活

    void (A:: *asignanl)(QString)=&A::give;
    void (B:: *bsignanl)(QString)=&B::hungry; 
    connect(tea,asignal,stu,bsignal);
    QPushButton *btn=new QPushButton("dianji",this);
   
    void Widget ::C()
    {
    emit tea->hungry("aaaa");
    }
    connect(btn,&QPushButton::clicked,tea,&Widget::c);

2 使用栏目他表达式直接接收信号

    void (A:: *asignanl)(QString)=&A::give;
    void (B:: *bsignanl)(QString)=&B::hungry; 
    connect(tea,asignal,stu,bsignal);
    QPushButton *btn=new QPushButton("dianji",this);
    connect(btn,&QPushButton::clicked,[=](){emit tea->hungry(aaaaa)});
}

注意:1.信号和槽函数的参数,类型必须进行一一对应
2.信号和槽函数的参数数量可以不一致,则信号的参数应该多于槽函数的参数,切对应的参数一致

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: PyQt5 Qt Designer 新手教程可以分为以下几个步骤: 1. 安装 PyQt5 和 Qt Designer:在安装 PyQt5 之前,需要先安装 Python。然后,可以使用 pip 命令安装 PyQt5 和 Qt Designer。 2. 打开 Qt Designer:在命令行中输入 designer 命令,即可打开 Qt Designer。 3. 创建界面:在 Qt Designer 中,可以使用拖拽的方式创建界面。可以选择不同的控件,如按钮、标签、文本框等,然后将它们拖拽到界面中。 4. 设置属性:在创建控件后,可以设置它们的属性,如大小、位置、颜色等。可以通过属性编辑器或者属性面板来设置属性。 5. 保存界面:在完成界面设计后,可以将界面保存为 .ui 文件。这个文件可以在 Python 代码中使用。 6. 将界面与代码结合:在 Python 代码中,可以使用 PyQt5 的模块来加载 .ui 文件,并将界面与代码结合起来。可以通过信号来实现控件之间的交互。 以上就是 PyQT5 Qt Designer 新手教程的基本步骤。希望对您有所帮助。 ### 回答2: PyQt5是一个非常强大的Python GUI工具包,可以帮助你构建高效和美观的用户界面,而Qt Designer则是PyQt5的图形化设计工具,让你可以使用可视化的方式创建和布局PyQt5的用户界面。本篇教程将为新手入门PyQt5的使用方法之一,详述如何使用Qt Designer来创建PyQt5 GUI程序。以下是流程: ### 步骤1:安装PyQt5和Qt Designer 首先,需要安装PyQt5和Qt Designer。我们可以在PyQt5官网上下载和安装PyQt5,或者使用命令行或终端安装。具体步骤如下: ``` pip install pyqt5 ``` 安装完成后,我们可以使用命令行或终端启动Qt Designer: ``` designer ``` ### 步骤2:创建PyQt5 GUI程序 使用Qt Designer创建PyQt5 GUI程序的第一步是创建一个新项目。 - 在Qt Designer中选择File > New… > Widget > Choose,此时会创建一个新的窗口。 - 在窗口上添加控件,比如按钮、标签和文本框等。 - 在Qt Designer中选择File > Save As…来保存你的项目文件。此时会生成一个以.ui结尾的文件,这个文件包含了你所创建的窗口和控件信息。 ### 步骤3:将Qt Designer生成的UI文件转换成Python代码 我们无法直接在Python环境中使用Qt Designer生成的UI文件,需要将其转换成可用的Python代码。这一步可以使用PyUIC工具来完成,PyUIC是PyQt5的一个命令行应用程序,它可以将Qt Designer生成的UI文件转换为Python模块文件。在终端中运行以下命令来将.ui文件转换成.py文件: ``` pyuic5 filename.ui -o filename.py ``` 其中,filename为你所创建的UI文件的名字。 ### 步骤4:编写Python代码 现在,我们已经将Qt Designer生成的UI文件转换成了Python模块文件,接下来只需要在Python交互环境或PyCharm中编写Python代码即可。在编写Python代码时,需要在文件开头导入所需模块: ```python from PyQt5.QtWidgets import QApplication, QWidget from filename import Ui_Form ``` 然后在类中继承Ui_Form: ```python class MainWindow(QWidget, Ui_Form): def __init__(self): super().__init__() self.setupUi(self) ``` 最后,在Python交互环境或PyCharm中运行你所编写的代码,即可看到Qt Designer生成的GUI界面。 总结: 本文列出了从安装PyQt5和Qt Designer,到创建和保存窗口和控件,再到将Qt Designer生成的UI文件转换成Python模块文件等一系列步骤。希望这篇文章对PyQt5的新手用户提供了有用和详细的指导,让大家能够更加方便快捷地使用PyQt5来创建图形化用户界面。 ### 回答3: PyQt5是一个Python的GUI框架,它允许创建跨平台的桌面应用程序。其中,Qt Designer是一个可视化的GUI设计工具,它提供了一系列的图形化控件和布局,可以轻松地设计和布局GUI界面,同时还提供代码模板,可以帮助快速生成基本GUI应用程序的骨架代码。在PyQt5中使用Qt Designer可以帮助开发者更为高效地进行开发工作。 如果你正在使用PyQt5和Qt Designer进行开发,以下是几个简单的步骤: 1. 安装PyQt5和Qt Designer:可以通过pip进行安装,例如输入 "pip install PyQt5"和"pip install pyqt5-tools",其中pyqt5-tools包含了Qt Designer。 2. 启动Qt Designer:可以通过运行“designer.exe”或在命令行中输入“designer”打开Qt Designer。 3. 设计GUI界面:可以拖拽各种图形化的控件和布局进行设计,还可以设置每个控件的属性和事件。 4. 保存设计界面:保存文件时需要注意使用.ui扩展名,以便在Python代码中导入UI文件。 5. 生成代码:在Qt Designer中,可以使用 "File" -> "Save As..." 选项保存设计好的 UI 文件,在 Python 代码中通过 “uic.loadUiType()" 方法导入 UI 文件,生成一个名为 Ui_Class 的UI类。 最后,你可以使用UI类中的各种方法来实现你需要的功能。例如,你可以使用 QtGui.QWidget 基类创建一个新窗口,并使用 Ui_Class.ui 中定义的组件来填充窗口,并使用函数(Gridlayout_example.clicked())实现该组件的交互功能。 总体而言,PyQt5和Qt Designer是一种非常方便的GUI开发框架,可以让开发者轻松创建各种类型的GUI应用程序。虽然这只是一个简单的入门指南,但是对于初学者来说,它可能是一个有用的教程,可以帮助开发者更快速地熟悉PyQt5和Qt Designer的使用。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值