Qt4中的信号和插槽-不工作
我正在使用Qt4和Qt Creator。我无法将自定义槽写入UI中的进度条。如何在ui文件中为特定小部件编写自定义插槽?在我的场景中,信号不是来自ui元素 以下代码在运行时产生错误: main window.hQt4中的信号和插槽-不工作,qt,qt4,qt-creator,signals-slots,Qt,Qt4,Qt Creator,Signals Slots,我正在使用Qt4和Qt Creator。我无法将自定义槽写入UI中的进度条。如何在ui文件中为特定小部件编写自定义插槽?在我的场景中,信号不是来自ui元素 以下代码在运行时产生错误: main window.h #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> #include<QFile> #include<QFileInfo> namespace Ui { class Ma
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include<QFile>
#include<QFileInfo>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private slots:
void on_btcopy_clicked();
void on_btquit_clicked();
void ChangeValue(qint64 val);
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
错误消息
Object::connect: No such slot ProgressBar::CangeValue(qint64)in..\untitled\mainwindow.cpp:26
Object::connect: (receiver name: 'pbar')
CangeValue
是主窗口中的一个插槽(为了记录:它应该被称为ChangeValue
)
因此,
connect(…)
语句中的第三个参数必须是主窗口,而不是进度条。在connect语句中,将ui->pbar
替换为this
。CangeValue
是主窗口中的一个插槽(请注意:它应该被称为ChangeValue
)
因此,
connect(…)
语句中的第三个参数必须是主窗口,而不是进度条。在您的connect语句中将ui->pbar
替换为this
。我更改了它。但是复制插槽时无法工作。您能帮我吗?添加qDebug(“插槽被调用”)代码>到您的插槽,查看它是否实际被调用。如果调用了is,则可能必须添加QApplication::processEvents(QEventLoop::ExcludeUserInputEvents)在调用setValue
callI之后,我刚刚看到您在调用copy
之后执行了connect
。改变这两个的顺序。在复制整个文件之前,copy
的调用不会返回。我更改了它。但是,当复制插槽时,插槽不起作用。您能帮我吗?添加qDebug(“插槽被调用”)代码>到您的插槽,查看它是否实际被调用。如果调用了is,则可能必须添加QApplication::processEvents(QEventLoop::ExcludeUserInputEvents)在调用setValue
callI之后,我刚刚看到您在调用copy
之后执行了connect
。改变这两个的顺序。在复制整个文件之前,copy
的调用不会返回。您假设在执行QFile::copy时会发出任何信息。不会的。它将在文件系统上执行同步复制,而不通知您进度。不会的。它将在文件系统上执行同步复制,而不通知您进度。
Object::connect: No such slot ProgressBar::CangeValue(qint64)in..\untitled\mainwindow.cpp:26
Object::connect: (receiver name: 'pbar')