本文整理汇总了C++中SignalSlotConnection类的典型用法代码示例。如果您正苦于以下问题:C++ SignalSlotConnection类的具体用法?C++ SignalSlotConnection怎么用?C++ SignalSlotConnection使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了SignalSlotConnection类的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Q_ASSERT
Connection *SignalSlotEditor::createConnection(QWidget *source, QWidget *destination)
{
SignalSlotConnection *con = 0;
Q_ASSERT(source != 0);
Q_ASSERT(destination != 0);
ConnectDialog dialog(m_form_window, source, destination, m_form_window->core()->topLevel());
dialog.setShowAllSignalsSlots(m_showAllSignalsSlots);
if (dialog.exec() == QDialog::Accepted) {
con = new SignalSlotConnection(this, source, destination);
con->setSignal(dialog.signal());
con->setSlot(dialog.slot());
}
m_showAllSignalsSlots = dialog.showAllSignalsSlots();
return con;
}
示例2: setData
bool ConnectionModel::setData(const QModelIndex &index, const QVariant &data, int)
{
if (!index.isValid())
return false;
if (data.type() != QVariant::String)
return false;
SignalSlotConnection *con = static_cast<SignalSlotConnection*>(m_editor->connection(index.row()));
QDesignerFormWindowInterface *form = m_editor->formWindow();
QString s = data.toString();
switch (index.column()) {
case 0: {
if (!s.isEmpty() && !objectNameList(form).contains(s))
s.clear();
m_editor->setSource(con, s);
break;
}
case 1: {
if (!memberList(form, con->object(CETypes::EndPoint::Source), SignalMember).contains(s))
s.clear();
m_editor->setSignal(con, s);
break;
}
case 2: {
if (!s.isEmpty() && !objectNameList(form).contains(s))
s.clear();
m_editor->setTarget(con, s);
break;
}
case 3: {
if (!memberList(form, con->object(CETypes::EndPoint::Target), SlotMember).contains(s))
s.clear();
m_editor->setSlot(con, s);
break;
}
}
return true;
}
示例3: Q_ASSERT
void ConnectionModel::connectionChanged(Connection *con)
{
Q_ASSERT(m_editor);
const int idx = m_editor->indexOfConnection(con);
SignalSlotConnection *changedCon = static_cast<SignalSlotConnection*>(m_editor->connection(idx));
SignalSlotConnection *c = 0;
for (int i=0; i<m_editor->connectionCount(); ++i) {
if (i == idx)
continue;
c = static_cast<SignalSlotConnection*>(m_editor->connection(i));
if (c->sender() == changedCon->sender() && c->signal() == changedCon->signal()
&& c->receiver() == changedCon->receiver() && c->slot() == changedCon->slot()) {
const QString message = tr("The connection already exists!<br>%1").arg(changedCon->toString());
m_editor->formWindow()->core()->dialogGui()->message(m_editor->parentWidget(), QDesignerDialogGuiInterface::SignalSlotEditorMessage,
QMessageBox::Warning, tr("Signal and Slot Editor"), message, QMessageBox::Ok);
break;
}
}
emit dataChanged(createIndex(idx, 0), createIndex(idx, 3));
}
示例4: connectionChanged
void ConnectionModel::connectionChanged(Connection *con)
{
const int idx = m_editor->indexOfConnection(con);
SignalSlotConnection *changedCon = static_cast<SignalSlotConnection*>(m_editor->connection(idx));
SignalSlotConnection *c = 0;
for (int i=0; i<m_editor->connectionCount(); ++i) {
if (i == idx)
continue;
c = static_cast<SignalSlotConnection*>(m_editor->connection(i));
if (c->sender() == changedCon->sender() && c->signal() == changedCon->signal()
&& c->receiver() == changedCon->receiver() && c->slot() == changedCon->slot()) {
QMessageBox::warning(m_editor->parentWidget(), tr("Signal and Slot Editor"),
tr("The connection already exists!<br>SENDER(%1), SIGNAL(%2), RECEIVER(%3), SLOT(%4)")
.arg(changedCon->sender())
.arg(changedCon->signal())
.arg(changedCon->receiver())
.arg(changedCon->slot()));
break;
}
}
emit dataChanged(createIndex(idx, 0), createIndex(idx, 3));
}
示例5: undo
void SetMemberCommand::undo()
{
m_con->update();
if (m_type == EndPoint::Source)
m_con->setSignal(m_old_member);
else
m_con->setSlot(m_old_member);
m_con->update();
emit m_editor->connectionChanged(m_con);
}
示例6: redo
void ModifyConnectionCommand::redo()
{
m_conn->setSignal(m_newSignal);
m_conn->setSlot(m_newSlot);
}