- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在编译项目时收到此错误消息:
“无法将 'Principal::setValues' 从类型 'void*(Principal::)(void*)' 转换为类型 'void*()(void)' ”
...
enter code here
void* Principal:: setValues(void*){
QString velocidadCARGA=QString::number(VelocidadCargador);
QString velocidadLAVA=QString::number(VelocidadLavado);
ui->Velocidad_Carga->setText(velocidadCARGA);
ui->Velocidad_Lavado->setText(velocidadLAVA);
ui->lbl_CantidadActual_Banda_Principal->setNum(botellasCargadas);
return NULL;
}
void Principal::on_Start_Cargador_clicked(){
pthread_t hilo3;
pthread_create(&hilo3,NULL,setValues,NULL);//error in this line.
pthread_join(hilo3,NULL);
}
最佳答案
Principal::setValues
是成员函数,所以它的类型不符合pthread_create
要求的函数类型.
要在线程中启动成员函数,您可以声明一些静态方法并传递 this
反对它:
class Principal
{
...
static void* setValuesThread(void *data);
...
}
void* Principal::setValuesThread(void *data)
{
Principal *self = reinterpret_cast<Principal*>(data);
self->setValues();
return NULL;
}
// your code
void Principal::setValues()
{
QString velocidadCARGA=QString::number(VelocidadCargador);
QString velocidadLAVA=QString::number(VelocidadLavado);
ui->Velocidad_Carga->setText(velocidadCARGA);
ui->Velocidad_Lavado->setText(velocidadLAVA);
ui->lbl_CantidadActual_Banda_Principal->setNum(botellasCargadas);
}
void Principal::on_Start_Cargador_clicked()
{
pthread_t hilo3;
pthread_create(&hilo3, NULL, Principal::setValuesThread, this);
pthread_join(hilo3,NULL);
}
Principal
是一个 Qt 小部件(我想是),此代码将不起作用,因为在 Qt 中您只能从主线程访问小部件。
QThread
和 Qt 信号/插槽机制。
class MyThread : public QThread
{
Q_OBJECT
public:
MyThread(QObject *parent = 0);
void run();
signals:
void dataReady(QString data);
}
void MyThread::run()
{
QString data = "Some data calculated in this worker thread";
emit dataReady(data);
}
class Principal
{
...
public slots:
void setData(QString data);
}
void Principal::setData(QString data)
{
ui->someLabel->setText(data);
}
void Principal::on_Start_Cargador_clicked()
{
MyThread *thread = new MyThread;
connect(thread, SIGNAL(dataReady(QString)), this, SLOT(setData(QString()));
connect(thread, SIGNAL(finished()), thread, SLOT(deleteLater()));
thread->start();
}
关于qt - 如何加入运行 mainWindow 类(Principal)中的函数的线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32556587/
我做了我的研究,人们倾向于使用 ViewModel 来实现这一点,但我有点陷入其中。 我有一个 public ObservableCollection orderList { get; set; }
当用户更改主题时,我使用 mainWindow.webContents.send 更改 DOM 中的类。我还将它保存在商店中,在键 theme 下。 mainWindow.webContents.se
所以我有一个名为 MainWindow 的空主框架和一个 WelcomeWidget,它在程序启动时立即调用并加载到主框架中。然后我想要 WelcomeWidget 中的按钮 next_btn 调用
像a一样用slot和signal连接就对了 connect( ui->widget, SIGNAL( GetSquareParameters( int &, int &,int &,int &)),
我正在尝试构建一个桌面应用程序,使用 Electron 在 web View 中打开 gmail。在我的主文件中,我已经加载了这样的网址 mainWindow.loadURL("https://gma
在我的 (Py)Qt4 应用程序中,直到用户使用 command-tab 切换离开应用程序,然后使用 command-tabs 切换回它,主窗 Eloquent 会出现。 奇怪的是这个问题仅在双击启动
我有一个带有菜单的MainWindow,可以打开一个注册对话框。如何在注册后更新 MainWindow 中的 tableView? 这是我的 MainWindow 实现: MainWindow::Ma
我想使用 PyQt5 和 QtDesigner 开始一个新项目。首先,我只是复制了 PyQt4 中以前项目中的代码,并将其调整为 PyQt5 中的更改。因此,启动 Main Window 和更新应用程
我正在尝试制作一个包含 MainWindow.cpp 和一个 dialog1.cpp 的程序,我需要将一个字符串从我的对话框的 QLineEdit 传递到 MainWindow.cpp 中的一个函数。
我有一个使用 Qt Designer 制作的 PyQt5 MainWindow。 这个窗口应该抓取网站并在找到后在 TreeView 中列出抓取的链接。 每次抓取新链接时,我都可以创建一个模型 QSt
我理解 Static 和 Instance 的概念,但我很困惑,当我有一个只有 1 个实例的类时,我应该使用哪个实例,这是在我的应用程序开始时调用的实例 (=Application.Current .
我正在尝试将 MainWindow 的 DataContext 设置为其在 App.OnStartup 中的 ViewModel。我注意到这样做时,MainWindow() 构造函数被调用了两次,我看
是否可以将相对于 MainWindow 的点转换为相对于其子控件之一?例如,假设一个控件的左上角位于 500, 500 相对于 MainWindow 什么代码会将该数字转换为 (0, 0)?我希望解决
所以我按照以下网站上的指南来限制文本框可以接受的字符。 http://www.rhyous.com/2010/06/18/how-to-limit-or-prevent-characters-in-a
我目前正在使用 QT Creator 创建用于查看的 UI 文件,我是 QT 初学者。 有一部分我很好奇,我如何创建另一个类,比如 GraphicView,以便我可以将信号和槽发送到该类而不是主窗体?
我在 MainWindow.xaml.cs 中有这个: public partial class MainWindow : Window { public double _frameCount
我有用户控件,它有两个控件 标签 和 文本 block 并且在我的 MainWindow 中,我有一个 List
我有一个关于 Scope 的初学者问题。在 MainWindow 类中,我创建了用于数据绑定(bind)的 ModelView 类的实例,以及具有要显示的 Leaves 属性的 Cabbage 类的实
首先,在主窗口中看到这段代码 我创建了一个名为 RightPanel 的用户控件,并将其命名为 MainWindow.xaml rightPanel 例如,在用户
首先,在主窗口中看到这段代码 我创建了一个名为 RightPanel 的用户控件,并将其命名为 MainWindow.xaml rightPanel 例如,在用户
我是一名优秀的程序员,十分优秀!