Qt 保存指向mainwindow的指针-Qevent
我需要将事件从线程发布到主窗口中的QtreeView。现在要发布事件,我们需要指向Qobject的指针(即主窗口内的qtreeview) 为此,我必须在构造函数mainwindow::mainwindow()中获取指向我的mainwindow的指针 sharedobj.h文件包含指向主窗口的指针:---- Mainwindow类包含以下对象:--- 主窗口构造函数:----- 请建议将指针指向主窗口是否正确Qt 保存指向mainwindow的指针-Qevent,qt,qevent,Qt,Qevent,我需要将事件从线程发布到主窗口中的QtreeView。现在要发布事件,我们需要指向Qobject的指针(即主窗口内的qtreeview) 为此,我必须在构造函数mainwindow::mainwindow()中获取指向我的mainwindow的指针 sharedobj.h文件包含指向主窗口的指针:---- Mainwindow类包含以下对象:--- 主窗口构造函数:----- 请建议将指针指向主窗口是否正确 我还可以在另一个sharedobj.h文件中包含文件“ui_mainwindow.h”来
我还可以在另一个sharedobj.h文件中包含文件“ui_mainwindow.h”来访问mainwindow的命名空间ui,以声明指针,就像我在“sharedobj.h”文件中所做的那样?您需要在mainwindow中本地化知识,并将事件发布到它 因此:
main窗口::customEvent(…)
如下所示(如果它是自定义QEvent,否则您将重新实现event(…)
:
地球,为什么你需要发送一个事件到一个视图?
为什么你必须直接从线程中发布事件?我会考虑线程之间的信号/时隙,然后在主线程中发布事件。#include "ui_mainwindow.h"
/*!
Shared object among threads.
*/
class cntrlObj
{
public:
cntrlObj();
~ctrlObj();
/// Thread run control
bool m_bQuit;
/*!
Pointer to mainwindow window
*/
Ui::MainWindow *ui;
}
cntrlObj cntrlObj_obj;
/*!
Take Pointer to Mainwindow session window
*/
cntrlObj_obj->ui_ptr->setupUi(this);
void MainWindow::customEvent(QEvent * ev) {
if (ev->type() == MyEventType) {
QCoreApplication::sendEvent(ui->treeView, ev);
}
}