Home · All Classes · Modules · QSS HELP · QSS 案例 · VER007 HOME |
该QSignalMapper捆绑类的个别发件人的信号。More...
继承QObject。
该QSignalMapper捆绑类的个别发件人的信号。
此类采集一组参数的信号,并重新发射它们与整型,字符串或对应于发送该信号的插件对象的参数。
这个类支持使用特定的字符串或整数与特定对象的映射setMapping( ) 。的对象的信号可以被连接到map()槽,将放出mapped()信号与原信号的对象相关联的字符串或整数。映射可以在以后使用中删除removeMappings( ) 。
例如:假设我们要创建一个包含一组按钮(如工具选项板)的自定义窗口小部件。一种方法是在连接各个按钮的clicked()信号到其自己的定制插槽,但在这个例子中,我们希望所有的按钮连接到一个单一的插槽,并通过单击的按钮,参数化的插槽。
下面是一个简单的自定义窗口小部件,有一个单一信号的定义,clicked(),这是发射与被点击的按钮的文本:
class ButtonWidget : public QWidget { Q_OBJECT public: ButtonWidget(QStringList texts, QWidget *parent = 0); signals: void clicked(const QString &text); private: QSignalMapper *signalMapper; };
我们需要实现的唯一功能是构造函数:
ButtonWidget.ButtonWidget(QStringList texts, QWidget *parent) : QWidget(parent) { signalMapper = new QSignalMapper(this); QGridLayout *gridLayout = new QGridLayout; for (int i = 0; i < texts.size(); ++i) { QPushButton *button = new QPushButton(texts[i]); connect(button, SIGNAL(clicked()), signalMapper, SLOT(map())); signalMapper->setMapping(button, texts[i]); gridLayout->addWidget(button, i / 3, i % 3); } connect(signalMapper, SIGNAL(mapped(const QString &)), this, SIGNAL(clicked(const QString &))); setLayout(gridLayout); }
文本列表被传递给构造函数。信号映射器的构造和在列表中的每个文本QPushButton被创建。我们连接每个按钮的clicked()信号到信号映射器的map()槽,并从每个按钮的信号映射到该按钮的文本创建一个映射。最后,我们连接信号变换器的mapped( )信号到自定义widget的clicked()信号。当用户点击一个按钮,自定义窗口小部件会发出一个单一的clicked()信号,其参数是用户点击按钮的文本。
该parent的说法,如果不是没有,原因self通过Qt的,而不是PyQt的拥有。
构造一个QSignalMapper与父parent。
这种方法也是一个Qt槽与C + +的签名void map()。
这个插槽发出的信号的基础上哪个对象发送信号给它。
这种方法也是一个Qt槽与C + +的签名void map(QObject *)。
这个时隙发射的基础上,信号sender对象。
返回发件人QObject是与相关联的id。
See also setMapping( ) 。
这个函数的重载mapping( ) 。
这个函数的重载mapping( ) 。
返回发件人QObject是与相关联的widget。
这个函数的重载mapping( ) 。
返回发件人QObject是与相关联的object。
删除所有映射sender。
这是自动完成的,当映射对象被销毁。
添加一个映射,这样,当map()被从给定的信号sender中,信号映射(id)被发射。
有可能是对每个发送至多一个整数ID 。
See also mapping( ) 。
添加一个映射,这样,当map()是从信号sender中,信号映射(text)被发射。
可能有最多一个文本为每个发件人。
添加一个映射,这样,当map()是从信号sender中,信号映射(widget)被发射。
可能有最多一个部件每个发件人。
添加一个映射,这样,当map()是从信号sender中,信号映射(object)被发射。
可能存在至多一个对象的每个发送者。
这是该信号的默认超载。
这个信号被发射时map()从一个对象,该对象具有整数的映射集信号。对象的映射整数传入i。
See also setMapping( ) 。
这个信号被发射时map()从一个对象,它有一个字符串的映射集信号。该对象的字符串映射中传递text。
See also setMapping( ) 。
这个信号被发射时map( )从一个对象,它有一个小部件映射集信号。对象的映射部件被传递widget。
See also setMapping( ) 。
这个信号被发射时map()从一个对象,该对象具有对象映射集信号。由地图提供的对象被传递object。
See also setMapping( ) 。
PyQt 4.10.3 for X11 | Copyright © Riverbank Computing Ltd and Nokia 2012 | Qt 4.8.5 |