QT界面开发,线程函数里面不饿能够调用UI控件的问题

用QT做上位机界面,在QT头文件定义类
class MainWindow : public QMainWindow
{ QOBJECT
piblic :
explicit MainWindow(QWidget parent =0);
~MainWindow();
int initPort();
static DWORD stdcall ThreadPDoTest( DWORD EventID, LPVOID pBuf, DWORD BufLen, LPVOID UserData);

private:
Ui:: Mainwindow *ui;
}
#end if

然后ThreadPDoTest函数是这样定义的:
DWORD __stdcall MainWindow threadDotest(DWORD EventID, LPVOID pBuf, DWORD Buflen, LPVOID UserData)//。主要功能是完成数据的计算并且显示到QT的控件上
{
....
c1=(float)(256*data[1]+data[0])-512)*1.5/1000;
ui->NUMERIC_C1->setText(temp.setNum(c1));
c2=...
....
}

编译报错 invalid use of member ' MainWindow :: *ui' instatic member function
我看网上说把ui 改成public可行,但是主线程函数中才行,不然就会崩溃。

1个回答

QT 明确说明UI操作必须由ui主线程操作,

gy19920615
gy19920615 针对我这个问题,可以具体说明下解决思路吗
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
C#在非UI线程调用UI线程的控件
首先需要定义一个委托(delegate): private delegate void delegateSetProcessBarVal(int value); 然后定义一个方法来执行具体的操作: private void setProcessBarVal(int value){ this.processBar1.Value = val; } 在需要访问UI线程的时
BackgroundWorker 的线程里面如何操作UI控件?
如题,再BackgroundWorker 线程里面要操作UI控件再2。0里面会报错误,这么弄呢?
QT UI中调用QT UI动态库
Windows下用QT做了一个带UI的工具软件,现要集成到同样是QT开发界面的主软件中,为什么封装成静态库可以调用,但是动态库调用不了呢?调用动态库时,测试程序会直接退出。
线程更新UI控件问题
我做了个读取远程RSS文件的小程序,用timer定时启动AutoUpdateRss更新类rnrnDim ud As New AutoUpdateRssrn AddHandler ud.DoEvent, AddressOf doeventSorn Dim newThread As New Thread(New ThreadStart(AddressOf ud.AutoUpdate))rn newThread.Start()rnrnDoEvent是类中的事件rnrn定义委托rn Delegate Sub UpdateUIHandler(ByVal str As String, ByVal percent As Integer)rnrn Public Sub ChangUI(ByVal str As String, ByVal percent As Integer)rn Me.ToolStripStatusLabel1.Text = strrn Me.ToolStripStatusLabel3.Value = percentrn End Subrnrn下边是事件控制的方法更新UIrnPrivate Sub doeventSo(ByVal str As String, ByVal percent As Integer)rn Dim handler As New UpdateUIHandler(AddressOf ChangUI)rn Dim args() As Object = str, percentrn Me.BeginInvoke(handler, args)rnEnd Subrnrn但我在线程执行中点窗体上的关闭(X)进行退出程序时会提示rn 在创建窗体语柄之前不能在窗体上调用invoke 或BeginInvoke.rnrn请教怎么在关窗体退出这个线程.或者说怎么解决这个问题,谢谢.rnrn我试过将doeventSo改为下边代码rn If Me.InvokeRequired Thenrn Dim handler As New UpdateUIHandler(AddressOf ChangUI)rn Dim args() As Object = str, percentrn Me.Invoke(handler, args)rn Elsern ChangUI(str, percent)rn End Ifrnrn则报错:未将对象引用设置到对象实例..
QT中外部函数如何调用ui控件?
希望能够将相机传来的每一帧图片都进行显示,通过下面这个函数来实现(每接收到一帧数据都会调用一次 FrameRecved)。rnrn void __stdcall FrameRecved(uint cameraIp)rn rn //锁定数据帧rn const DataFrame* frame = LockDataFrame(cameraIp);rn if (frame == NULL)rn return;rn //操作数据帧rn QImage* img = new QImage(frame->pBmp,384,288,QImage::Format_RGB32);rn ui->lable->setPixmap(QPixmap::fromImage(*img));rnrn //解锁数据帧rn UnlockDataFrame(cameraIp);rn rn QT creator提示ui未声明的标识符;我将UI::Widget *ui改为public,还是不能访问。请问怎样能在外部函数中调用ui?
Qt界面开发
Qt做界面和MFC做界面哪个方便?跟linux系统或windows系统有关吗?
qt界面开发
用于QT界面开发,用于QT界面开发,用于QT界面开发,用于QT界面开发,用于QT界面开发,用于QT界面开发,用于QT界面开发,用于QT界面开发,用于QT界面开发。
Qt调用Ui文件
Qt设计师方便了界面设计功能,只需要拖拽相关控件就可以满足需求,以前写程序的时候直接创建的是Gui类,并没有单独创建ui,今天因为需要,特意查找了一些资料大致看了一下,记录下来方便以后查找。 网上说ui的使用方法主要有三种,我取两种最简单的方法(简单就好不是) 首先创建一个工程项目,名称为Ui文件,类名为UiDesign,基类为QDialog,到main文件中,将 UiDesign w;
关于在函数里面调用控件问题!
function getUrlSource(strUrl: string):string; //获取网页源码rnbeginrnrn //tryrn lsResult := IdHTTP1.GET(strUrl);rnrn //exceptrn //ShowMessage('获取源码出错');rn //end;rnrnend;rnrnrn错误提示:IdHTTP1没定义!页面上已加入TIdHTTP控件。
Atitit.swt 线程调用ui控件的方法
Atitit.swt 线程调用ui控件的方法     1 SwingUtilities.invokeLater 1 2 display.asyncExec方法 1 3  display.timerExec(500,timer); 2 4 、但有时候并不一定要程序执行时就要定时检测,有时需要外部事情激发这就出现了第2种解决方案,写一个内置类,可以放在事件监听的方法中,然后激发: 2 5 参考 3...
Qt回调到UI线程
桌面客户端程序主线程就是UI线程,我们经常要将网络中获取到的数据展示到界面上,通常有同步和异步两种方式,同步方式会阻塞UI,所以这种方式可以忽略了(特殊情况下可以使用)。大多数异步方式请求后是在子线程中返回数据的,而在这里我们是不能直接操作UI的。 下面介绍两种方法将子线程获取到的数据抛到UI层处理: 调用和接收在一起 UI层直接调用下面方法就可以在槽函数中处理应答了 通过网络请求...
Qt的线程调用COM的问题
在run()中放入CoInitialize是可行的,不过频繁调用内存会出问题,想问下Qt有没有自己的封装?
在线程里面写UI控件问题求救....紧急.
各位高手,我写了一个多线程的程序,其中有一个线程把数据写入界面上的TXTBOX 控件上,但是老是在写的时候出问题. 比如我写四个数.1,2,3,4 ,但是界面上只现实两个。1和4 ,如果用写外部LOG 文件来替换写倒UI 控件上的地方,LOG 里面是1234. 请各位大侠指点密经.....感激不尽.
修改密码UI界面开发
n 课程概述:nn<p>n 本季度预计200课时,每周二和周五更新,每次更新10课时。<br />n本季度为uni-app实战项目第一季度,将实战开发仿糗事百科app,其中会包括发布到安卓端app,IOS端app、微信小程序和支付宝小程序。<br /></p><p>n <br /></p>n <p>n <span style="font-size:16px;">课程大纲见以下图:</span>n </p>n <p>n <span style="font-size:16px;"><img src="https://edu-image.nosdn.127.net/131acee3329548af98de723684627444.png?imageView&amp;quality=100&amp;type=webp" alt="" /><img src="https://edu-image.nosdn.127.net/e47f78ebfadf4222835ff74984f27d0d.png?imageView&amp;quality=100&amp;type=webp" alt="" /><img src="https://edu-image.nosdn.127.net/c8497275e3e143639fc86cf535d012bb.png?imageView&amp;quality=100&amp;type=webp" alt="" /><img src="https://edu-image.nosdn.127.net/3ca90e8399a9473f92fbaf1ecb4b4865.png?imageView&amp;quality=100&amp;type=webp" alt="" /><img src="https://edu-image.nosdn.127.net/2e0e6356c184448bbb03d1d0cf08c474.png?imageView&amp;quality=100&amp;type=webp" alt="" /><br /></span>n </p>n
android_app开发UI界面开发
这是开源-github库,我想说的是,对于android开发者来说,功能的实现其实显得没有那么重要(虽然前提是把功能实现),界面漂亮才能给用户很好的体验,不多说了,点击去看看吧:https://github.com/wasabeef/awesome-android-ui
客户端开发_UI界面开发
<span style="font-size:24px;color:#E53333;">整体介绍:</span><br />rn<span style="font-size:18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 本进阶篇面向的学员不再是完全的编程“小白”,而是具备一定C#编程经验,需要进一步查漏补缺、或者需要进一步全面完善自己C#编程知识体系的广大Unity学员。相信通过本进阶篇的学习,可以使得Unity初中级开发人员对于编程语言的掌握更进一步;对于开发中大型游戏项目,在编程语言这一层级进一步打下坚实的语言基础。</span><br />rn<br />rn<span style="font-size:24px;color:#E53333;">“中级/进阶篇”讲解特点与内容:</span><br />rn&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="font-size:18px;">&nbsp;&nbsp; 本“中级”与“进阶”篇, 是面向初中级游戏研发人员,以及Unity中高级学习者。为了更加深入的刨析各个语法的本质,我们采用反编译解读IL中间语言的方式,来解构语法重点与难点。 中级篇内容主要讲解: .Net 框架、里氏替换原则(LSP)、类的属性极其本质特性、IS ,AS 关键字、字符串的“驻留性” 原理、深入解析Equals() 原理、枚举类型、自定义集合、深入解析动态集合特性与内部原理、泛型集合、泛型约束、初级委托与事件讲解等。</span><br />rn<br />rn<span style="font-size:18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "进阶篇"是在中级篇的基础之上,进一步研究与讲解关于IO操作、序列化、正则表达式、系统委托(Action、Function、Predicate等)、反射原理与特性、Linq查询表达式、多线程、线程池、任务、Socket套接字编程(Tcp与UDP协议),以及最后使用Unity开发具备实战价值的通讯聊天程序等。</span><br />rn<br />rn&nbsp;<br />rn<span style="font-size:24px;color:#E53333;">C#“进阶篇”教学详细说明如下:</span><br />rn<br />rn<span style="font-size:18px;">1: IO操作与序列化</span><br />rn<span style="font-size:18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 学习文件、目录、二进制文件、文本文件的读取与写入底层原理。学习文件序列化与反序列化技能。</span><br />rn<br />rn<span style="font-size:18px;">2: 正则表达式</span><br />rn<span style="font-size:18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 学习正则表达式的强大作用与常用原字符的含义与应用场景。</span><br />rn<br />rn<span style="font-size:18px;">3: 深入委托与事件</span><br />rn<span style="font-size:18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 学习Action、Func、Predicate 系统内置委托类型,已经适用场合。学习匿名方法、Lambda表达式。深入解析委托与事件的区别。</span><br />rn<br />rn<br />rn<span style="font-size:18px;">4: 反射与特性</span><br />rn<span style="font-size:18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 学习反射的概念与动态调用的重要应用价值,以及Type、Assembley核心类等,最后讲解“特性”技术。</span><br />rn<span style="font-size:18px;">&nbsp;</span><br />rn<span style="font-size:18px;">5: Linq 查询表达式</span><br />rn<span style="font-size:18px;">&nbsp;&nbsp;&nbsp;&nbsp; 学习Linq 查询表达式对于“对象集合”(支持IEnumberable 或IEnumberable&lt;T&gt;) 以及SQL数据库、XML文档方面的强大查询功能。</span><br />rn<span style="font-size:18px;">&nbsp;&nbsp;&nbsp; &nbsp;</span><br />rn<span style="font-size:18px;">6: 多线程</span><br />rn<span style="font-size:18px;">&nbsp;&nbsp;&nbsp;&nbsp; 学习多线程以及线程传参、线程取得返回数值技术,前台与后台线程、线程的同步、线程池、任务等技术。</span><br />rn<span style="font-size:18px;">&nbsp;&nbsp; &nbsp;</span><br />rn<span style="font-size:18px;">7: Socket套接字通讯</span><br />rn<span style="font-size:18px;">&nbsp;&nbsp;&nbsp;&nbsp; 学习Socket套接字通讯中,Tcp与UPD通讯协议的不同应用场景,以及各自的演示示例,最后用Unity开发一款实用性的聊天通讯工具。</span><br />rn<br />rn<p>rn <span style="font-size:24px;color:#E53333;"><strong>温习提示:</strong></span> rn</p>rn<p>rn <span style="font-size:18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size:18px;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size:18px;"> 本C# for Unity 使用Virtual Studio2012,以及Unity5.2 进行开发与讲解。(学员使用更高版本,对学习没有任何影响)。&nbsp;&nbsp;&nbsp; &nbsp; <br />rn</span> rn</p>rn<br />
matlab ui 设计界面开发
matlab ui 设计界面开发
java ui界面开发课件
java ui课件 简单的ui基础,初学者可以看一哈 主要为swing
android UI界面开发图片
android UI界面开发图片,数量巨大,而且经典,觉得值得收藏 android UI界面开发图片,数量巨大,而且经典,觉得值得收藏
修改邮箱UI界面开发
n 课程概述:nn<p>n 本季度预计200课时,每周二和周五更新,每次更新10课时。<br />n本季度为uni-app实战项目第一季度,将实战开发仿糗事百科app,其中会包括发布到安卓端app,IOS端app、微信小程序和支付宝小程序。<br /></p><p>n <br /></p>n <p>n <span style="font-size:16px;">课程大纲见以下图:</span>n </p>n <p>n <span style="font-size:16px;"><img src="https://edu-image.nosdn.127.net/131acee3329548af98de723684627444.png?imageView&amp;quality=100&amp;type=webp" alt="" /><img src="https://edu-image.nosdn.127.net/e47f78ebfadf4222835ff74984f27d0d.png?imageView&amp;quality=100&amp;type=webp" alt="" /><img src="https://edu-image.nosdn.127.net/c8497275e3e143639fc86cf535d012bb.png?imageView&amp;quality=100&amp;type=webp" alt="" /><img src="https://edu-image.nosdn.127.net/3ca90e8399a9473f92fbaf1ecb4b4865.png?imageView&amp;quality=100&amp;type=webp" alt="" /><img src="https://edu-image.nosdn.127.net/2e0e6356c184448bbb03d1d0cf08c474.png?imageView&amp;quality=100&amp;type=webp" alt="" /><br /></span>n </p>n
黑莓UI界面开发指导
黑莓UI界面开发指导 包含了最新的触摸屏的UI设计, 介绍了: Interaction交互方式(TouchScreen、Trackball、Trackwheel、Keyboard、Shortcut、Cursor等); Screen屏幕显示; Controls控件; Menu菜单; Text文本; Theme主题; Icon & Indicator 图标和提示; Sound声音; Localization国际本地化。 本文档版权属于RIM,仅用于学习交流,切勿用于商业用途。
急求QT界面开发的问题
rn1.各位应该有在QT主界面上绘制不同的控件吧?我的理解绘制的控件多了,应该一个复杂点的控件用一个类来绘制。面向对象嘛,但是无法显示在主框架上。rnrn比如我的主框架上设置好菜单和工具栏。现在我想在主框架上的左边绘制一个treeview控件,右边绘制一个列表框。rnrn如果我新建一个工程来分别绘制这两个控件,是可以显示。但是现在想把绘制代码加到主框架工程中去就无法显示。请问我要怎么做才能实现。。rnrn 谢谢
Qt界面开发(一)(各种控件以及图表)
注:资源主要来源:http://www.qtcn.org/bbs/u/110085(刘大神) 如若侵权,请联系删除。 本文只是将作品集合到起来,方便大家一起学习。 资源集合已经放到链接:https://pan.baidu.com/s/1sVvQE8uDujVxeKVVSoxyYw 密码:wslk Qt界面开发(各种控件以及图表) 1.Qt简洁窗体 源代码链接:点击打开链接 2....
吃饱不饿的问题
我想做一个后台管理的招聘,就是别人添了表单之后就存到我的数据库了~~我不知道怎么和数据库连接啊!包括后台管理我都不会
关于调用线程函数的问题
[code=C/C++]rn/* ************************************rn*《精通Windows API》rn* 示例代码rn* CreateThread.crn* 6.3.1 创建线程、退出线程、获取线程信息rn**************************************/rn/* 头文件 */rn#include rn#include rn/* 常量定义 */rn#define MAX_THREADS 5rn/* 结构类型 */rntypedef struct _THREAD_PARAM rn DWORD i;rn DWORD dwRandom;rn DWORD dwData; rn THREAD_PARAM, *LPTHREAD_PARAM;rnrn/*************************************rn* DWORD WINAPI ThreadProc( LPVOID lpParam )rn* 功能 线程函数rn* 将参数打印出rn*rn* 参数 LPVOID lpParam THREAD_PARAM 结构类型rn**************************************/rnDWORD WINAPI ThreadProc( LPVOID lpParam ) rn rn LPTHREAD_PARAM pData;rn // 参数数据类型rn pData = (LPTHREAD_PARAM)lpParam;rn // 显示参数rn printf("TID = %u,\t Parameters = %u, %u, %u\n", rn GetCurrentThreadId(), rn pData->i, pData->dwRandom, pData->dwData); rn // 释放保存参数的内存(在主线程中分配的).rn HeapFree(GetProcessHeap(), 0, pData);rn return 0; rn rn/*************************************rn* void main()rn* 功能 主线程函数,创建了多个线程rn**************************************/rnvoid main()rnrn LPTHREAD_PARAM pData;rn DWORD dwThreadId[MAX_THREADS];rn HANDLE hThread[MAX_THREADS]; rn int i;rnrn // 创建MAX_THREADS 个线程.rn for( i=0; ii = i;rn pData->dwRandom = rand();rn pData->dwData = 100;rn // 创建线程rn hThread[i] = CreateThread( rn NULL, // 默认安全属性rn 0, // 默认堆栈大小 rn ThreadProc, // 线程函数rn pData, // 参数rn 0, // 默认创建标志rn &dwThreadId[i]); // 返回TIDrn // 判断是否创建成功rn //线程是在什么时候调用线程构造函数的???rn if (hThread[i] == NULL) rn rn ExitProcess(i);rn rn rn getchar();rnrn[/code]
多线程调用UI线程下的方法
public void getcontent(string content)rn Monitor.Enter (this);rn m_spiderForm.SetContent(content);rn Monitor.Pulse(this);rn Monitor.Exit(this);rnrnrnSetContent(string str)是窗口m_spiderForm下的方法:rnpublic void SetContent(string content)rn此处我可以获得getcontent传过来的content,但调用UI线程时老是无法执行savedata()方法保存.rn//这里我要处理的就是调用savedata这个函数,利用多线程(注意:要求一定要利用多线程,因为要将content处理,需要一定的时间)将content保存到数据库,并绑定datagrid;在这里如何实现它呢?????请高手指点.谢谢 rnrnpublic void savedata()rn ................rn datagrid.datasource = dt;rn ........rn
UI线程能够使用线程池么?
如题rn我写了一个线程池,但只是针对work线程的rn现在我想让它支持UI线程,可以么?rn
UI线程与非UI线程
通过本课程的学习,让你透彻精通Android多线程编程,课程内容包括:rn1.UI线程和非UI线程rn2.使用Handler发送post请求rn3.使用Handler处理Message消息rn4.Handler、Looper、MessageQueue三者的关系rn5.UI线程Handler和工作线程Handlerrn6.使用HandlerThreadrn7.更新UI的方法rn8.使用AsyncTask
Qt遍历ui窗口控件
//遍历UI中的QPushButton MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); QSignalMapper *mapper = new QSignalMapper(this); QObjec
Qt 的界面开发笔记
现在的工作是界面应用程序开发,以前使用C编程,现在需要qt 下用到C++做嵌入式界面开发,边做项目边总结。 一般找到的教程是直接操作,没有定义自己的类,在项目比较小,功能比较单一的情况下可以使用,但是不如依据个人需求重新定义类更方便快捷, qt 工程中资源文件的添加 一、类的定义,利用好继承关系,添加自己需要的功能, 现在做的无外乎添加图标,控件布局都是比较基础的,改变控件效果,通过重
Qt预测控制界面开发(一)
本次开发项目,是控制学科的水项目,需要添加一个界面方便对控制器各参数的调试。达成的目的都很简单,而且也没有什么程序性能等方面的要求,实现起来应该是很简单的,但鉴于是第一次使用这些工具,个人认为有必要记录一下开发过程。 关于预测控制就不谈了,只谈一下这两天看Qt的收获。 开发环境 : 硬件:树莓派3 系统:Linux定制 version :based on Qt 5.3.2;Qt cr
Qt界面开发9-13
Qt界面开发9-13例
Qt界面开发10-12
Qt界面开发10-12例,
Qt界面开发10-15
Qt界面开发10-15例,
Qt界面开发11-5
Qt界面开发11-5例
Qt界面开发11-7
Qt界面开发11-7例
Qt界面开发12-4
Qt界面开发12-4例,
Qt界面开发12-5
Qt界面开发12-5例,
Qt界面开发12-7
Qt界面开发12-7例,
Qt界面开发fireworks-master
Qt界面开发fireworks-master例
相关热词 c#部署端口监听项目、 c#接口中的属性使用方法 c# 昨天 c#func链接匿名方法 c#怎么创建文件夹 c#从键盘接收空格 c#da/ad c#部门请假管理系统 c#服务器socket c# 默认的访问修饰符