`
qimo601
  • 浏览: 3438854 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

VS2008 Qt Designer 中自定义信号槽

    博客分类:
  • Qt
阅读更多

一、Qt Designer自定义槽函数

发现:在VS2008 +Qt4.7  中打开ui文件,所用的英文QT Designer工具,没有转到槽函数的功能,不如QtCreator自带的QtDesigner功能齐全,只能Editor已有的信号槽。

 

发现:在QtCreator中右击某个控件 有"转到槽"功能,就会在.h和.cpp文件中生成我们的自定义槽函数void on_openButton_clicked()

 

 

解决方法:在VS2008中,选择某个项目,选择菜单Qt/Creat basic .pro File 然后用QtCreator打开.pro文件,就可以以Qt工程文件编辑我们的界面,然后右击控件转槽功能,自定义我们的槽函数。在VS2008里一样可以引用。信号也可以在QtDesigner中自定义,但无法写触发函数,一般控件自带的信号已经够我们用了。所以要自定义信号并触发,还是在我们的.h和.cpp文件中手写即可。

 

 

当然,如果我们自己在VS2008中ui文件相应的.h和.cpp文件中,手动写槽函数,在ui界面中,Qt也可以自动识别的。

 

 

 

 

从前面知道

二、我们也可以手动定义槽函数,ui界面可以自动识别

 

问题:相对于用代码生成界面来讲,使用QtDesigner来直接设计界面不失为一个更快捷直观的方法。在添加完控件后,怎么进行信号和槽的连接呢?Qt Designer中提供了一"Singal/Slot Editor",对于已有的信号和槽,直接新建,选择相应的Signal和slot就好了。可是往往我们需要编写自己的Slot函数,这时应该怎么添加呢?有以下几种方法:

 

1.按照一定的格式规范命名Slot函数,setupUi()函数可以自动将符合on_objectName_signalName()命名的槽与相应的ObjectName的SignalName连接在一起。不需要自己写connect()函数了。

例如UI里新建了一个openButton,在.h文件里声明void on_openButton_clicked()函数并在cpp文件里添加这个函数的定义后,seupUi()就可以自动将openButton的clicked信号与我们定义的slot函数联系在一起了!

        我们的.ui文件自动生成的ui_mainwindow.h文件里的代码总会有一句:

 

 QMetaObject::connectSlotsByName(MainWindowClass);
它就是用来自动识别我们所有界面控件的信号槽的,但必须是以下面的格式。
void QMetaObject::connectSlotsByName ( QObject * object ) [static]

Searches recursively for all child objects of the given object, and connects matching signals from them to slots of object that follow the following form:

void on_<object name>_<signal name>(<signal parameters>);
Let's assume our object has a child object of type QPushButton with the object name button1. The slot to catch the button's clicked() signal would be:

void on_button1_clicked();
 

 

2.直接在.h文件和cpp文件里定义slot函数,例如void open();进入到Edit Signal and slots模式下,在我们要响应slot函数的控件上滑动鼠标左键,便会出来一个Configure connection的对话框,点Edit,这时我们需要的open函数出现啦,选择这个函数,就完成了信号和槽的连接。在Edit里我们还能新建新的槽,先新建,再添代码也能达到同样的目的~

     ???????

    上面2有疑问:界面上绑定信号槽,只能在同一个ui的对象,所以还是需要手动写connect()函数实现信号槽连接

0
0
分享到:
评论
1 楼 wwc7654321 2015-07-22  
自动连接
可查看setupUi函数里的最后一句调用,作用是注册on_xxx_xxx

相关推荐

    GUI开发示例代码---QTdesigner实现自定义槽函数

    在本示例中,我们将深入探讨如何利用QTDesigner来实现自定义槽函数,并结合Python进行GUI程序的开发。 首先,QTDesigner生成的是.ui文件,这是一个XML格式的文件,记录了GUI界面的所有布局和控件信息。要将.ui文件...

    Linux QtDesigner自定义Button控件

    本教程将详细介绍如何在Qt4中使用Qt Designer实现自定义Button控件的过程。 首先,要创建自定义的Button控件,你需要了解Qt的插件系统。Qt Designer通过插件机制加载自定义控件,使得它们可以在设计界面中显示和...

    QT自定义信号和槽

    QT QT自定义信号和槽 QT自定义 信号和槽 QT信号。讲解怎么在 QT中自己定义消息和槽,QT编程可以看看

    Qt Designer中添加自定义插件示例源码

    "qtdesigner自定义插件.JPG"可能是一张截图,展示了自定义插件在Qt Designer中的实际效果。 总的来说,这个示例源码是一个很好的学习资源,帮助开发者深入理解Qt Designer的插件机制,从而能够根据项目需求创建和...

    3.QTdesigner信号与槽工作流程.zip

    在本资料中,“3.QTdesigner信号与槽工作流程.zip”很可能包含了一系列关于如何在QTDesigner中运用信号与槽的教程或示例代码。 信号(Signals)是对象在特定事件发生时发出的通知,例如按钮被点击、文本框内容改变...

    QT自定义信号与槽示例

    综上所述,"QT自定义信号与槽示例"是一个关于如何在QT项目中创建和使用自定义信号与槽的实践教程。通过学习这个示例,开发者可以更深入地理解QT中的事件驱动编程模式,提高代码的可维护性和可扩展性。

    QT添加自定义控件

    - **信号与槽**: 这是QT的核心机制之一,用于组件间通信。 #### 三、创建自定义控件 1. **设计自定义控件**: - **步骤1**: 打开QT Creator,新建一个Qt Widgets Application项目。项目名称可根据实际需求设定,...

    QtDesigner.rar

    在给定的压缩包“QtDesigner.rar”中,包含了一个名为“Qt Designer Setup.exe”的安装文件,这正是用于在Windows操作系统上安装Qt Designer的程序。 Qt Designer通过提供直观的拖放界面,使得程序员可以轻松创建...

    Qt Designer1+Tmake手册中文版.doc

    - **工具熟悉度**: 需要掌握Qt Designer的基本操作,如布局管理、信号和槽机制等。 **2. 指南:在Qt Designer的帮助下创造一个简单的应用程序** - **创建新项目**: 使用Qt Designer创建一个新的UI设计项目。 - **设计...

    Qt Designer.rar

    Qt Designer 允许开发者直接在设计视图中设置信号与槽的连接,极大地简化了事件处理的编程工作。 3. **自定义小部件**:除了内置的小部件,Qt Designer 还支持创建自定义小部件。开发者可以通过继承现有小部件并...

    Linux下QT图形界面开发(信号槽)

    信号与槽是QT框架中用于对象间通信的一种方式,它提供了一种安全、高效且灵活的事件处理机制。相比于传统的回调函数,信号和槽机制更加易于理解和使用。 一、信号和槽 信号是对象在特定事件发生时发出的通知,比如...

    Qt Designer 的插件的编写

    3. **元对象系统(Meta-Object System)**:利用 moc 工具处理Qt的信号和槽,这是Qt框架的核心特性,使得我们可以动态地连接和断开对象间的交互。 4. **资源文件(.qrc)**:可能包含插件所需的图像资源,如图标,...

    QT 电子表格(Designer设计版)

    此外,QT还提供了信号和槽机制,使得当用户界面中的事件发生时(例如单元格的点击或编辑),可以轻松地触发相应的处理函数。 在设计电子表格应用时,关键知识点包括: 1. **QT基础知识**:理解QT的基本结构、类库...

    python GUI库图形界面开发之PyQt5结合Qt Designer创建信号与槽的详细方法与实例

    结合Qt Designer,我们可以方便地设计UI布局,并且利用信号与槽机制来处理用户交互。信号与槽是Qt框架的核心特性,它们为事件驱动编程提供了简洁而强大的方式。 信号是当特定事件发生时,由对象发出的通知。槽是...

    PyQt5系列教程(二)利用QtDesigner设计UI界面源码包

    在QtDesigner中,可以通过“信号与槽编辑器”连接控件的信号到相应的槽函数,实现事件驱动编程。 4. **代码生成与集成**:通过`pyuic5`,将`.ui`文件转换为`.py`文件,例如`firstPyQt5.ui`转换后的`firstPyQt5.py`...

    QT designer.rar

    QT Designer是Qt框架中的一个图形用户界面(GUI)设计工具,它允许开发者通过直观的拖放界面来构建和设计应用程序的用户界面。这个压缩包"QT designer.rar"包含了一些资源,帮助初学者理解和掌握QT Designer的基本...

    Qt设计器手册(QT Designer)

    - **简单方法**:介绍在Qt设计器早期版本中引入的创建自定义部件的简单方法。 - **插件方法**:探索利用插件创建自定义部件的新方法,提供更高级别的自定义能力。 #### 七、创建数据库应用程序 - **Qt SQL类**:...

    qt 自定义实现文件选择框

    在Qt框架中,自定义控件是开发桌面应用的一个重要环节,这允许开发者根据项目需求定制界面风格,提升用户体验。本篇文章将详细讲解如何在Qt中自定义实现一个文件选择框,并修改其样式以保持与桌面应用的整体设计一致...

    Qt下自定义控件的制作与使用

    - **事件连接**:可以在Qt Designer中为自定义控件连接信号和槽,以便实现交互逻辑。 #### 四、总结 通过上述步骤,我们可以看到自定义控件的设计与实现是一个相对完整的过程。从创建工程到实现具体功能,再到最终...

Global site tag (gtag.js) - Google Analytics