标签: slot

Qt QNetworkAccessManager不发出信号

使用类似http://example.com的URL调用函数CheckSite(),它初始化QNetworkAccessManager对象和connect()槽和信号.

manger-> get()调用似乎有效(它生成http流量),但在请求结束时不调用插槽replyFinished().

这段代码出了什么问题?

#include <QtCore>
#include <QtNetwork>

class ClientHandler : public QObject
{
Q_OBJECT
  QNetworkAccessManager *manager;
private slots:
  void replyFinished(QNetworkReply *);
public:
  void CheckSite(QString url);
};

void ClientHandler::replyFinished(QNetworkReply *reply) { qDebug() << "DONE"; }

void ClientHandler::CheckSite(QString url) {
  QUrl qrl(url);
  manager = new QNetworkAccessManager(this);
  connect(manager, SIGNAL(finished(QNetworkReply*)), this, SLOT(replyFinished(QNetworkReply*)));
  manager->get(QNetworkRequest(qrl));
}
Run Code Online (Sandbox Code Playgroud)

qt signals qt4 slot

5
推荐指数
1
解决办法
1943
查看次数

不使用gif文件进行动画的jquery老虎机效果

我想知道是否可以使用分离的png文件制作插槽动画效果,任何文件都将是符号,并在特定的时间周期结束后,例如在旋转2秒后?有些人用jquery做了一台老虎机http://eyecon.ro/slotmachine/但是他用gif文件做动画.

jquery animation slot

5
推荐指数
1
解决办法
4447
查看次数

C++ Qt - 当调用一个槽时,该函数是否被称为新线程?

我想知道do_something()当我点击时该函数是否被视为新线程my_button.

connect(my_button, SIGNAL(clicked), this, SLOT(do_something));
Run Code Online (Sandbox Code Playgroud)

qt multithreading slot

5
推荐指数
1
解决办法
1652
查看次数

暂时阻止两个QObject之间的信号

我想在QObjects不修改其他信号/插槽行为的情况下,一般地和暂时地阻止两者之间的信号,并且不知道它们的上下文.

QObject :: blockSignals(bool)之类的东西,但只在两个之间起作用QObjects.

也就是说,实现以下SignalBlocker::blockSignals(bool)功能:

class SignalBlocker {

public:
  SignalBlocker(QObject *sender, QObject *receiver) :
    mSender(sender), mReceiver(receiver) {}
  void blockSignals(bool block);

private:
  QObject *mSender, *mReceiver;
}
Run Code Online (Sandbox Code Playgroud)

通过断开和重新连接对象是可能的,但首先必须存储信号/时隙列表.似乎自省方法不足够强大来实现这一(我看了看QMetaObject,并QSignalSpy没有成功).

qt signals qobject slot

5
推荐指数
1
解决办法
1万
查看次数

无法将信号连接到另一个类的插槽

我有2节课.A级和B级.我发出A级信号,我希望B接收.

我是这样做的

在监听器文件中

Header File:
  Class Listener:public DDSDataReaderListener
  {
     //Some code
    public:
       A m_objectSendData;
  }
Run Code Online (Sandbox Code Playgroud)

实施档案:

  void Listener::ondataavailable(DDSDataReader *reader)
 {
  m_objSendData.GetDDSData();
 }
Run Code Online (Sandbox Code Playgroud)

在A班

头文件:

Class A:public QObject
{
  Q_OBJECT
  public:
    void GetDDSData();
  signals:
    void Signal_Data();
}
Run Code Online (Sandbox Code Playgroud)

.cpp文件

 A::A(QWidget *parent):QObject(parent)
{
}

void A::GetDDSData()
 {
   emit Signal_Data();
 }   
Run Code Online (Sandbox Code Playgroud)

在B班

Header File:

  Class B:public QObject
  {
    Q_Object
    public:
    A objGetData;

    public slots:
    void getData();
  }

Implementation File:

 B::B(QWidget *parent):QObject(parent)
{
   //Some part of code

  connect(&objGetData,SIGNAL(Signal_Data()),this,SLOT(getData());
 }

 void B::getData()
 {
    //Watever is to …
Run Code Online (Sandbox Code Playgroud)

qt signals slot

5
推荐指数
1
解决办法
2万
查看次数

将信号从QML连接到Qt 5.1

我想用qt 5.1将qml信号连接到qt插槽.我不能在这个版本的qt中使用DeclarativeView.我的qml元素是一个简单的矩形,onClicked事件启动信号.

Rectangle{
    id:test
    width:  200
    height: 50
    x: 10
    y: 10
    signal qmlSignal()
    MouseArea {
        hoverEnabled: false
        anchors.fill: parent
        onClicked: {

            console.log("geklickt")
            test.qmlSignal()


        }
}
Run Code Online (Sandbox Code Playgroud)

我有一个带有此标头的SignalslotlistView类:

class SignalslotlistView: public QObject{
Q_OBJECT
public slots:
void cppSlot(const QString &msg);
Run Code Online (Sandbox Code Playgroud)

};

和.cpp

void SignalslotlistView::cppSlot(const QString &msg) {

qDebug() << "Called the C++ slot with message:" << msg;}
Run Code Online (Sandbox Code Playgroud)

在MainWindow类中,我尝试设置连接:

view->setSource(QUrl::fromLocalFile("main.qml"));
QObject *object = (QObject *)view->rootObject();
QObject *rect = object->findChild<QObject*>("test");

SignalslotlistView myClass;
    QObject::connect(rect, SIGNAL(qmlSignal()),
                     &myClass, SLOT(cppSlot()));
Run Code Online (Sandbox Code Playgroud)

视图来自QQuickView类型.

但什么都没发生.谢谢.

c++ signals qml slot qt5.1

5
推荐指数
1
解决办法
2183
查看次数

c ++ QPushButton信号和插槽

我在创建带有信号和插槽的 QPushButton 时遇到问题。首先,我创建了一个类,其中插槽:

class A : public QWidget{

  public slots:
void handleButton();

};
Run Code Online (Sandbox Code Playgroud)

有我的 handleButton 功能:在 .cpp 中

   void A::handleButton(int row, int col){
    m_button->setText("Example");
  // resize button
    m_button->resize(100,100);
      }
Run Code Online (Sandbox Code Playgroud)

然后我想连接按钮。

           QObject::connect(m_button, SIGNAL(clicked()),qApp, SLOT(handleButton()));
Run Code Online (Sandbox Code Playgroud)

但是当我启动应用程序时出现错误:“没有这样的插槽”有人可以帮助我吗?

c++ qt signals slot qpushbutton

5
推荐指数
1
解决办法
9273
查看次数

如何使用名为Vue的slot呈现静态内容列表?

我在弄清楚如何使以下各项工作方面遇到困难:

我的父母模板

<comp>
  <a href="#" slot="links>link 1</a>
  <a href="#" slot="links>link 2</a>
</comp>
Run Code Online (Sandbox Code Playgroud)

我的组件comp模板如下所示:

<ul class="comp">
  <li class="comp-item"><slot name="links"></slot></li>
</ul>
Run Code Online (Sandbox Code Playgroud)

目前,我所有的定位li标记都转到了单个标记(这是预期的),但是我希望能够为li插入的每个命名插槽生成多个标记,如下所示:

<ul class="comp">
  <li class="comp-item"><a href="#" slot="links>link 1</a></li>
  <li class="comp-item"><a href="#" slot="links>link 2</a></li>
</ul>
Run Code Online (Sandbox Code Playgroud)

有什么方法可以在不使用作用域插槽的情况下实现我所需要的?因为我的内容是纯HTML,所以我觉得没有必要将静态内容放入prop中以进行呈现。

从我所看到的情况来看,大多数vue UI框架都要求您为列表项使用另一个自定义组件,我觉得这个问题已被淘汰。还有其他方法吗?

javascript components slot vue.js vuejs2

5
推荐指数
1
解决办法
2383
查看次数

QT SLOT:成员函数指针错误

我目前正在开发一个Qt项目,我在SLOT方面遇到了一些麻烦.我想传递一个指向成员函数的指针作为SLOT的参数.为此,我在课堂上宣布了SLOT,但是当我这样做时,我得到了MOC错误.我不知道我想要达到的目标是否可行.

名为MainFrame的类的语法示例:

void slotAnswerReceived (QString answer, void (MainFrame::*ptr)(QString));
Run Code Online (Sandbox Code Playgroud)

我没有任何连接,没有使用该功能,我唯一的错误是在上面的这一行.

谢谢大家的帮助.我在网上找不到任何解决方案(但是如果有人感兴趣,我发现这篇文章深入解释了SIGNAL和SLOT).

c++ qt member-function-pointers signals-slots slot

4
推荐指数
1
解决办法
1881
查看次数

如何使用来自 Qt PushButton 的单击信号传递值?

我有 n 个按钮最初都标记为“0”。当程序运行时,这些标签或值将更改为不同的整数,例如在某些时候我可能有:'7'、'0'、'2'、...

我有一个将 int 作为参数的函数(或插槽):

void do_stuff(int i);
Run Code Online (Sandbox Code Playgroud)

我想在按下“x”时调用 do_stuff(x)。即:当按下任何按钮时,使用该按钮的值调用 do_stuff。我怎样才能做到这一点?到目前为止,我有类似的东西:

std::vector values; // keeps track of the button values
for (int i = 0; i < n; i++){
    values.push_back(0);
    QPushButton* button = new QPushButton("0");
    layout->addWidget(button);
    // next line is nonsense but gives an idea of what I want to do:
    connect(button, SIGNAL(clicked()), SLOT(do_stuff(values[i])));
}
Run Code Online (Sandbox Code Playgroud)

c++ qt slot

4
推荐指数
1
解决办法
6149
查看次数