关于QT怎么获取所有win10系统盘符变成了x忘下,多谢

qt吧_百度贴吧
签到排名:今日本吧第个签到,
本吧因你更精彩,明天继续来努力!
本吧排名:
本吧签到人数:738
可签7级以上的吧50个
本月漏签0次!
成为超级会员,赠送8张补签卡
连续签到:天&&累计签到:天
超级会员单次开通12个月以上,赠送连续签到卡3张
构建强大的跨平台应用程序
小白求助,我用QWebEngineView做浏览器,里面放了个做好的html页面,html里面js希望打开一个本地的exe,但是
要做个如以上的界面,下面的交易单号那一框,既要显示信息,又可以点击查看以显示详细信息,请教下
学尔森携手百度商学信贷,0元0息入学,业内专业老师精准考前押题.
如果可以的话,麻烦给些参考源码,谢谢了
qwt plot 组件 设置每秒刷新一次数据。。 x值取的是QDateTime::currentDateTime()-&toTime_t(); (已重载scaleDraw的label()
本人需要学习一下QT,并且写个小程序,有偿求帮助。。。如果有意向,可以加微信,谢谢,真诚求
新建工程,运行出现这样的错误。第二张图是我kit的截图。我的QT是5.7对应的VS2013,但是我之前装的VS2010,
因为最近百度查网页链接查得紧,容易删帖,而且教程里面图片也太多,不方便用贴吧的帖子发出来,放
QGridLayout这个头文件为什么我安装的qt没有?有人知道是怎么一回事吗
为了减少求资料的帖子,本帖子包括了绝大部分内容,持续更新! 个人资料下载:链接:/s
老是有问怎么下载旧版本、怎么装、从国外下载太慢之类的问题, 所以专门弄了一个百度网盘把目前下载到的Qt4.8.6和Qt5.4.0放到百度网盘分享了, 顺带发
安装完Qt5.7,发现Qtcreator可以打开,但是一点开Designer却没反应,打开任务管理器,发现Designer的exe在运行
学尔森携手百度商学信贷,0元0息入学,业内专业老师精准考前押题
安全靠谱 QQ
QT在window下运行进行编译,怎么让其在linux下运行?谢谢指导
这个版本要什么编译器呀,我下了个mingw可是在构建套件中用不了, 两天还没搞好,不知道哪里出错了,
想通过在程序中写入数据,然后通过按钮点击发送 void MainWindow::on_sendMsgBtn_clicked() { myCom-&write(ui-&sendMsg
小白一枚,界面设计得不是很好看,大神误喷!如果发现有什么bug,跟我说以哦!!
在debug模式下从没有出现过此问题,本人是新手,还望各位高手指点一二。该项目很急,谢谢!!!
请问这个思路
大神们求指点 !!!!
相关代码很少,之前也一直想做一个这样的东西,没抽出时间来,现在项目上用到了,现在吧他分享出来
如题,安装完64位的qt5.6.2后,出现无法打开shell32.lib的错误,如何解决?感谢大家
编辑框为空的时候的默认字符怎么实现!比如用户名输入框!当这个输入框为空的时候显示灰色的字是请
安装好了vs2015企业版,也安装好了qt 5.6.0,并也添加了qt的bin文件夹路径到系统的环境变量里,但是重启电
下载链接:/s/1slIS9sT 大家先看一下,有需要的话我会公布源码。
自学Qt也有一小段时间了,学的马马虎虎,也总想动手写点什么检验一下学习成果,见贴吧有大神写了2048,自己也动手试试。先声明,本人并没有参考已有的
通过调用百度地图的API实现一个地图的浏览器客户端,当然,这货也可以当浏览器用的。 注意: 1、百度
QSpinBox怎么设置显示固定位数的数字,不足的时候在前面补0?
例如 ui-&setTable(&学生成绩&);
老板让我安装QT的环境 win7 下 我已经安装好win7虚拟机不知道如何安转QT 求帮助 下载哪个版本怎么装 谢谢
我现在用QT做一个界面 我是用QCombobox控件 可是当我设置setMaxVisibleItems对大显示数时,会出现滚动条,这个
Error while building/deploying project hajimete (kit: Desktop Qt 5.7.0 MSVC2015_64bit) When executing step &qmake&
求问各路大佬!!! 卸掉了之前的qt mingw,重装的MSVC2015,配置了环境之后提示这个错误,但是文件路径并
求大神解答~
Qt学习虚拟机 Qt5.7-Win10x64-VS2015 /s/1eSiFwAm 总共4个分卷约15GB,要全部下载了解压,解压之后大
QListWidget 中的item中的内容被改变时所执行的函数 图片传不上来、 这样子。 QListWidgetItem 中Item双击执行函
直接切正题 现在有份xml文件,数据量非常大 用dom树处理太慢 用QXmlStreamReader读取非常快 现在问题来了,我
你没看错,这个播放器又是模仿酷狗的(不得不承认酷狗的用户量还是很大的)。 贴吧也有很多同学写过
比如把mysql表中某项属性的字符集从“latin1”设置为“GBK”
你可能感兴趣的吧...
发贴红色标题
签到六倍经验
兑换本吧会员
赠送补签卡1张,获得
助攻总额: 43W
贴吧热议榜
使用签名档&qt吧_百度贴吧
签到排名:今日本吧第个签到,
本吧因你更精彩,明天继续来努力!
本吧排名:
本吧签到人数:738
可签7级以上的吧50个
本月漏签0次!
成为超级会员,赠送8张补签卡
连续签到:天&&累计签到:天
超级会员单次开通12个月以上,赠送连续签到卡3张
构建强大的跨平台应用程序
小白求助,我用QWebEngineView做浏览器,里面放了个做好的html页面,html里面js希望打开一个本地的exe,但是
要做个如以上的界面,下面的交易单号那一框,既要显示信息,又可以点击查看以显示详细信息,请教下
学尔森携手百度商学信贷,0元0息入学,业内专业老师精准考前押题.
如果可以的话,麻烦给些参考源码,谢谢了
qwt plot 组件 设置每秒刷新一次数据。。 x值取的是QDateTime::currentDateTime()-&toTime_t(); (已重载scaleDraw的label()
本人需要学习一下QT,并且写个小程序,有偿求帮助。。。如果有意向,可以加微信,谢谢,真诚求
新建工程,运行出现这样的错误。第二张图是我kit的截图。我的QT是5.7对应的VS2013,但是我之前装的VS2010,
因为最近百度查网页链接查得紧,容易删帖,而且教程里面图片也太多,不方便用贴吧的帖子发出来,放
QGridLayout这个头文件为什么我安装的qt没有?有人知道是怎么一回事吗
为了减少求资料的帖子,本帖子包括了绝大部分内容,持续更新! 个人资料下载:链接:/s
老是有问怎么下载旧版本、怎么装、从国外下载太慢之类的问题, 所以专门弄了一个百度网盘把目前下载到的Qt4.8.6和Qt5.4.0放到百度网盘分享了, 顺带发
安装完Qt5.7,发现Qtcreator可以打开,但是一点开Designer却没反应,打开任务管理器,发现Designer的exe在运行
学尔森携手百度商学信贷,0元0息入学,业内专业老师精准考前押题
安全靠谱 QQ
QT在window下运行进行编译,怎么让其在linux下运行?谢谢指导
这个版本要什么编译器呀,我下了个mingw可是在构建套件中用不了, 两天还没搞好,不知道哪里出错了,
想通过在程序中写入数据,然后通过按钮点击发送 void MainWindow::on_sendMsgBtn_clicked() { myCom-&write(ui-&sendMsg
小白一枚,界面设计得不是很好看,大神误喷!如果发现有什么bug,跟我说以哦!!
在debug模式下从没有出现过此问题,本人是新手,还望各位高手指点一二。该项目很急,谢谢!!!
请问这个思路
大神们求指点 !!!!
相关代码很少,之前也一直想做一个这样的东西,没抽出时间来,现在项目上用到了,现在吧他分享出来
如题,安装完64位的qt5.6.2后,出现无法打开shell32.lib的错误,如何解决?感谢大家
编辑框为空的时候的默认字符怎么实现!比如用户名输入框!当这个输入框为空的时候显示灰色的字是请
安装好了vs2015企业版,也安装好了qt 5.6.0,并也添加了qt的bin文件夹路径到系统的环境变量里,但是重启电
下载链接:/s/1slIS9sT 大家先看一下,有需要的话我会公布源码。
自学Qt也有一小段时间了,学的马马虎虎,也总想动手写点什么检验一下学习成果,见贴吧有大神写了2048,自己也动手试试。先声明,本人并没有参考已有的
通过调用百度地图的API实现一个地图的浏览器客户端,当然,这货也可以当浏览器用的。 注意: 1、百度
QSpinBox怎么设置显示固定位数的数字,不足的时候在前面补0?
例如 ui-&setTable(&学生成绩&);
老板让我安装QT的环境 win7 下 我已经安装好win7虚拟机不知道如何安转QT 求帮助 下载哪个版本怎么装 谢谢
我现在用QT做一个界面 我是用QCombobox控件 可是当我设置setMaxVisibleItems对大显示数时,会出现滚动条,这个
Error while building/deploying project hajimete (kit: Desktop Qt 5.7.0 MSVC2015_64bit) When executing step &qmake&
求问各路大佬!!! 卸掉了之前的qt mingw,重装的MSVC2015,配置了环境之后提示这个错误,但是文件路径并
求大神解答~
Qt学习虚拟机 Qt5.7-Win10x64-VS2015 /s/1eSiFwAm 总共4个分卷约15GB,要全部下载了解压,解压之后大
QListWidget 中的item中的内容被改变时所执行的函数 图片传不上来、 这样子。 QListWidgetItem 中Item双击执行函
直接切正题 现在有份xml文件,数据量非常大 用dom树处理太慢 用QXmlStreamReader读取非常快 现在问题来了,我
你没看错,这个播放器又是模仿酷狗的(不得不承认酷狗的用户量还是很大的)。 贴吧也有很多同学写过
比如把mysql表中某项属性的字符集从“latin1”设置为“GBK”
你可能感兴趣的吧...
发贴红色标题
签到六倍经验
兑换本吧会员
赠送补签卡1张,获得
助攻总额: 43W
贴吧热议榜
使用签名档&qt如何实现目录树啊,例子中只显示盘符,如何从“我的电脑”显示
qt如何实现目录树啊,例子中只显示盘符,如何从“我的电脑”显示
09-10-27 &
svchost.exe是NT核心系统非常重要的文件,对于Win2000/XP来说,不可或缺。这些svchost进程提供很多系统服务,如:rpcss服务(remote procedure call)、dmserver服务(logical disk manager)、dhcp服务(dhcp client)等等。1)什么是svchost.exe? 引用原文: 大家对windows操作系统一定不陌生,但你是否注意到系统中“svchost.exe”这个文件呢?细心的朋友会发现windows中存在多个 “svchost”进程(通过Ctrl+alt+del”键打开任务管理器,这里的“进程”标签中就可看到了),为什么会这样呢?下面就来揭开它神秘的面纱。 发现 在基于nt内核的windows操作系统家族中,不同版本的windows系统,存在不同数量的“svchost”进程,用户使用“任务管理器”可查看其进程数目。一般来说,win2000有两个svchost进程,winxp中则有四个或四个以上的svchost进程(以后看到系统中有多个这种进程,千万别立即判定系统有病毒了哟),而win2003 server中则更多。这些svchost进程提供很多系统服务,如:rpcss服务(remote procedure call)、dmserver服务(logical disk manager)、dhcp服务(dhcp client)等。 如果要了解每个svchost进程到底提供了多少系统服务,可以在win2000的命令提示符窗口中输入“tlist -s”命令来查看,该命令是win2000 support tools提供的。在winxp则使用“tasklist /svc”命令。 svchost中可以包含多个服务 深入 windows系统进程分为独立进程和共享进程两种,“svchost.exe”文件存在于“%systemroot% system32”目录下,它属于共享进程。随着windows系统服务不断增多,为了节省系统资源,微软把很多服务做成共享方式,交由 svchost.exe进程来启动。但svchost进程只作为服务宿主,并不能实现任何服务功能,即它只能提供条件让其他服务在这里被启动,而它自己却不能给用户提供任何服务。那这些服务是如何实现的呢? 原来这些系统服务是以动态链接库(dll)形式实现的,它们把可执行程序指向 svchost,由svchost调用相应服务的动态链接库来启动服务。那svchost又怎么知道某个系统服务该调用哪个动态链接库呢?这是通过系统服务在注册表中设置的参数来实现。下面就以rpcss(remote procedure call)服务为例,进行讲解。 从启动参数中可见服务是靠svchost来启动的。 实例 以windows xp为例,点击“开始”/“运行”,输入“services.msc”命令,弹出服务对话框,然后打开“remote procedure call”属性对话框,可以看到rpcss服务的可执行文件的路径为“c:\windows\system32\svchost -k rpcss”,这说明rpcss服务是依靠svchost调用“rpcss”参数来实现的,而参数的内容则是存放在系统注册表中的。 在运行对话框中输入“regedit.exe”后回车,打开注册表编辑器,找到[hkey_local_machine systemcurrentcontrolsetservicesrpcss]项,找到类型为“reg_expand_sz”的键“magepath”,其键值为“%systemroot%system32svchost -k rpcss”(这就是在服务窗口中看到的服务启动命令),另外在“parameters”子项中有个名为“servicedll”的键,其值为“% systemroot%system32rpcss.dll”,其中“rpcss.dll”就是rpcss服务要使用的动态链接库文件。这样 svchost进程通过读取“rpcss”服务注册表信息,就能启动该服务了。 解惑 因为svchost进程启动各种服务,所以病毒、木马也想尽办法来利用它,企图利用它的特性来迷惑用户,达到感染、入侵、破坏的目的(如冲击波变种病毒“w32.welchia.worm”)。但windows系统存在多个svchost进程是很正常的,在受感染的机器中到底哪个是病毒进程呢?这里仅举一例来说明。 假设windows xp系统被“w32.welchia.worm”感染了。正常的svchost文件存在于“c:\windows\system32”目录下,如果发现该文件出现在其他目录下就要小心了。“w32.welchia.worm”病毒存在于“c:\windows\system32wins”目录中,因此使用进程管理器查看svchost进程的执行文件路径就很容易发现系统是否感染了病毒。windows系统自带的任务管理器不能够查看进程的路径,可以使用第三方进程管理软件,如“windows优化大师”进程管理器,通过这些工具就可很容易地查看到所有的svchost进程的执行文件路径,一旦发现其执行路径为不平常的位置就应该马上进行检测和处理。 问:我的系统进程里有四个svchost.exe,听说有些木马就是伪装成系统的进程,不知道这个是不是? 答:svchost.exe 存在 %windir%\system32\wins 下。 如果怀疑svchost.exe是病毒可以通过以下方法来证实是不是病毒:1.可以去 wins 目录找找有无多余,2.可以搜搜windows文件夹中 svchost.exe 看看有几个(应为1个),3.tlist -s察看,4.也可以下载一个可以看带路径名的进程的浏览工具。 问:svchost.exe是起什么作用的进程? 答:Svchost.exe文件对那些从动态连接库中运行的服务来说是一个普通的主机进程名。Svhost.exe文件定位在系统的%systemroot%\system32文件夹下。在启动的时候,Svchost.exe检查注册表中的位置来构建需要加载的服务列表。这就会使多个Svchost.exe在同一时间运行。每个Svchost.exe的回话期间都包含一组服务,以至于单独的服务必须依靠Svchost.exe怎样和在那里启动。这样就更加容易控制和查找错误。 Svchost.exe 组是用下面的注册表值来识别。HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Svchost每个在这个键下的值代表一个独立的Svchost组,并且当你正在看活动的进程时,它显示作为一个单独的例子。每个键值都是REG_MULTI_SZ类型的值而且包括运行在Svchost组内的服务。每个Svchost组都包含一个或多个从注册表值中选取的服务名,这个服务的参数值包含了一个ServiceDLL值。 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Service 2)用什么软件可以找出svchost.exe是····? 用services命令可以查看 或者: Windows进程管理器V4.0 Windows 进程管理器是一款功能比较强大的进程管理工具。它为您提供以下功能:进程查询(描述/模块)、进程管理(结束/暂停/恢复/删除……)、端口访问查询、系统性能/信息等。进程信息数据库将不断更新。绿色发布,解压即用! 下载地址有好多。只提供一个: 参考资料:网上资料太多了,多找找就会发现
请登录后再发表评论!>> qt 商品管理系统
qt 商品管理系统
所属分类:
下载地址:
商品管理.rar文件大小:13.53 kB
分享有礼! 》
请点击右侧的分享按钮,把本代码分享到各社交媒体。
通过您的分享链接访问Codeforge,每来2个新的IP,您将获得0.1 积分的奖励。
通过您的分享链接,每成功注册一个用户,该用户在Codeforge上所获得的每1个积分,您都将获得0.2 积分的分成奖励。
qt实现的 商品管理系统 可用于管理公司物品进出及价格~附部分实现文件源码:#include &client.h&#include &ui_client.h&#include #include Client::Client(QWidget *parent) : QDialog(parent), ui(new Ui::Client){ ui-&setupUi(this); payloadSize = 64*1024; // 64KB totalBytes = 0; bytesWritten = 0; bytesToWrite = 0; tcpClient = new QTcpSocket(this); // 当连接服务器成功时,发出connected()信号,开始传送文件 connect(tcpClient, SIGNAL(connected()), this, SLOT(startTransfer())); connect(tcpClient, SIGNAL(bytesWritten(qint64)), this, SLOT(updateClientProgress(qint64))); connect(tcpClient, SIGNAL(error(QAbstractSocket::SocketError)), this, SLOT(displayError(QAbstractSocket::SocketError))); ui-&sendButton-&setEnabled(false);}Client::~Client(){ delete }// 打开文件void Client::openFile(){ fileName = QFileDialog::getOpenFileName(this); if (!fileName.isEmpty()) { ui-&sendButton-&setEnabled(true); ui-&clientStatusLabel-&setText(tr(&打开文件 %1 成功!&).arg(fileName)); }}// 连接到服务器void Client::send(){ ui-&sendButton-&setEnabled(false); // 初始化已发送字节为0 bytesWritten = 0; ui-&clientStatusLabel-&setText(tr(&连接中…&)); tcpClient-&connectToHost(ui-&hostLineEdit-&text(), ui-&portLineEdit-&text().toInt());}// 传输文件大小等信息void Client::startTransfer(){ localFile = new QFile(fileName); if (!localFile-&open(QFile::ReadOnly)) { qDebug() && &client: open file error!&; return; } // 获取文件大小 totalBytes = localFile-&size(); QDataStream sendOut(&outBlock, QIODevice::WriteOnly); sendOut.setVersion(QDataStream::Qt_4_0); QString currentFileName = fileName.right(fileName.size() - fileName.lastIndexOf('/')-1); // 保留总大小信息空间、文件名大小信息空间,然后输入文件名 sendOut && qint64(0) && qint64(0) && currentFileN // 这里的总大小是总大小信息、文件名大小信息、文件名和实际文件大小的总和 totalBytes += outBlock.size(); sendOut.device()-&seek(0); // 返回outBolock的开始,用实际的大小信息代替两个qint64(0)空间 sendOut && totalBytes && qint64((outBlock.size() - sizeof(qint64)*2)); // 发送完文件头结构后剩余数据的大小 bytesToWrite = totalBytes - tcpClient-&write(outBlock); ui-&clientStatusLabel-&setText(tr(&已连接&)); outBlock.resize(0);}// 发送数据,并更新进度条void Client::updateClientProgress(qint64 numBytes){ // 已经发送数据的大小 bytesWritten += (int)numB // 如果已经发送了数据 if (bytesToWrite & 0) { // 每次发送payloadSize大小的数据,这里设置为64KB,如果剩余的数据不足64KB, // 就发送剩余数据的大小 outBlock = localFile-&read(qMin(bytesToWrite, payloadSize)); // 发送完一次数据后还剩余数据的大小 bytesToWrite -= (int)tcpClient-&write(outBlock); // 清空发送缓冲区 outBlock.resize(0); } else { // 如果没有发送任何数据,则关闭文件 localFile-&close(); } // 更新进度条 ui-&clientProgressBar-&setMaximum(totalBytes); ui-&clientProgressBar-&setValue(bytesWritten); // 如果发送完毕 if(bytesWritten == totalBytes) { ui-&clientStatusLabel-&setText(tr(&传送文件 %1 成功&).arg(fileName)); localFile-&close(); tcpClient-&close(); }}// 显示错误void Client::displayError(QAbstractSocket::SocketError){ qDebug() && tcpClient-&errorString(); tcpClient-&close(); ui-&clientProgressBar-&reset(); ui-&clientStatusLabel-&setText(tr(&客户端就绪&)); ui-&sendButton-&setEnabled(true);}// 打开按钮void Client::on_openButton_clicked(){ ui-&clientProgressBar-&reset(); ui-&clientStatusLabel-&setText(tr(&状态:等待打开文件!&)); openFile();}// 发送按钮void Client::on_sendButton_clicked(){ send();}
Sponsored links
源码文件列表
温馨提示: 点击源码文件名可预览文件内容哦 ^_^
2.17 kB29-12-11 21:47
1.25 kB29-12-11 21:57
402.00 B29-12-11 21:05
logindialog.ui2.01 kB29-12-11 21:05
621.00 B29-12-11 21:57
manager.pro460.00 B29-12-11 20:51
manager.pro.user7.99 kB13-03-15 16:54
14.42 kB29-12-11 18:23
1.99 kB29-12-11 17:37
12.60 kB29-12-11 21:58
1.10 kB29-12-11 19:21
widget.ui19.97 kB12-05-12 20:20
&manager&0.00 B13-03-15 16:54
&manager-build-desktop&0.00 B13-03-15 16:54
&4-5&0.00 B13-03-15 16:54
(提交有效评论获得积分)
评论内容不能少于15个字,不要超出160个字。
xybxyb8888看了一下代码,作为学习用还是可以的,作为实际使用,还有很多改进工作。
why0000看了源代码,觉得比较实用,QT写商品管理工程比较大
oyjosh看了代码,对于这次作业的写作帮助很大,值得参考使用
评价成功,多谢!
下载商品管理.rar
CodeForge积分(原CF币)全新升级,功能更强大,使用更便捷,不仅可以用来下载海量源代码马上还可兑换精美小礼品了
您的积分不足,优惠套餐快速获取 30 积分
10积分 / ¥100
30积分 / ¥200原价 ¥300 元
100积分 / ¥500原价 ¥1000 元
订单支付完成后,积分将自动加入到您的账号。以下是优惠期的人民币价格,优惠期过后将恢复美元价格。
支付宝支付宝付款
微信钱包微信付款
更多付款方式:、
您本次下载所消耗的积分将转交上传作者。
同一源码,30天内重复下载,只扣除一次积分。
鲁ICP备号-3 runtime:Elapsed:105.134ms - init:0.1;find:0.7;t:0.9;tags:0.2;related:25.1;comment:11.1; 27.69
登录 CodeForge
还没有CodeForge账号?
Switch to the English version?
^_^"呃 ...
Sorry!这位大神很神秘,未开通博客呢,请浏览一下其他的吧QT 线程锁~ 多谢了~挺急的~ -Mobile- TryCatch
>> Content
QT 线程锁~ 多谢了~挺急的~
小弟在做一个项目,&多线程的.现在设计到线程间共享资源的问题.我希望利用线程锁,在一个线程使用一个QListWidget时(包括添加,删除,拉滚动条等),另一个线程无法对其进行任何操作,等到当前线程释放资源后,在进行操作.请问应该如何实现,是使用QMutex吗?如果是应该怎么加,加在哪里啊?谢谢~&
------Solutions------
看不懂你的问题QListWidget&作为QWidget的派生类,本来就只能在一个线程(主线程)内使用吧,
------Solutions------
我也木有看懂……&UI操作只能在主线程中操作
------Solutions------
是这样,我做的是客户端,连接服务端.服务端定期要调用我这边得一个回调函数(连接的时候传递了一个函数指针),我把回调函数设成主窗口类的友元,我在回调函数里获取了主窗口的指针,主窗口中有一个QListWidget,我想在回调函数中修改主窗口的控件,就利用指针-&ui.listwidget操作控件.
------Solutions------
项目的要求是:&客户端初始化连接服务端时,传递一个函数指针,之后每次服务端数据发生变化时,就自动调用我传过去的函数(相当于通知客户端刷新列表数据),而我想在这个回调函数中修改UI显示的ListWidget中的数据.请问应该怎么做?十分感谢~
------Solutions------
引用&4&楼&ff007bit&的回复:项目的要求是:&客户端初始化连接服务端时,传递一个函数指针,之后每次服务端数据发生变化时,就自动调用我传过去的函数(相当于通知客户端刷新列表数据),而我想在这个回调函数中修改UI显示的ListWidget中的数据.请问应该怎么做?十分感谢~无论你怎么做,有一点Manual中说的很明确&The&GUI&classes,&notably&QWidget&and&all&its&subclasses,&are&not&reentrant.&They&can&only&be&used&from&the&main&thread.
------Solutions------
引用&5&楼&dbzhang800&的回复:引用&4&楼&ff007bit&的回复:项目的要求是:&客户端初始化连接服务端时,传递一个函数指针,之后每次服务端数据发生变化时,就自动调用我传过去的函数(相当于通知客户端刷新列表数据),而我想在这个回调函数中修改UI显示的ListWidget中的数据.请问应该怎么做?十分感谢~无论你怎么做,有一点Manual中说的很明确&The&GUI&classes,&nota……谢谢,请问这种要求要怎么解决?求大侠帮助~
------Solutions------
使用信号槽机制吧。在调用的函数里向主程序发送信号。目前只有这样方式吧。不知道说的对不对。。
------Solutions------
引用&4&楼&ff007bit&的回复:项目的要求是:&客户端初始化连接服务端时,传递一个函数指针,之后每次服务端数据发生变化时,就自动调用我传过去的函数(相当于通知客户端刷新列表数据),而我想在这个回调函数中修改UI显示的ListWidget中的数据.请问应该怎么做?十分感谢~客户端和服务端是两个不同的程序?&两个进程?&在同一台机器本地还是基于网络的?第一次听过可以这样条用回调函数的。靠函数指针跨进程直接调用。不知道这个项目的要求是怎么来的,不过给这个要求的人很有才。。。。。。编程的基本常识都不懂,居然还可以提这么牛x的要求!!!
------Solutions------
LZ确实说得不太清楚~你的SERVER&和&CLIENT是不是同一个进程啊~不同进程有回调函数一说吗,而且你更新UI是在UI线程更新,其它线程不能动它,不存在多线程操作同一资源,所以不用线程锁,你就更新你的就好了.
------Solutions------
按你的说法那不叫回调函数~你直接说"客户端"提供一个API之类的就行了.
------Solutions------
我来给你补贴。。。。。我也遇到这样问题,我通过传指针实现了,主进程里widget里不断生成的线程都可用倒主线程里的某一个东西,但是我考虑倒,如果后来生成线程如果继续增大,可能回存在的同时调用此指针,回产生安全隐患,希望实现一个线程琐,让后来的线程同一时间只能一个线程调用此指针。。。完毕,一起努力
------Solutions------
你应该修改的是QListWidget&的model
------Solutions------
引用&11&楼&bailangxhao&的回复:我来给你补贴。。。。。我也遇到这样问题,我通过传指针实现了,主进程里widget里不断生成的线程都可用倒主线程里的某一个东西,但是我考虑倒,如果后来生成线程如果继续增大,可能回存在的同时调用此指针,回产生安全隐患,希望实现一个线程琐,让后来的线程同一时间只能一个线程调用此指针。。。完毕,一起努力谢谢~&请问具体的线程所是怎么实现的呢?
------Solutions------
引用&8&楼&blueness883&的回复:引用&4&楼&ff007bit&的回复:项目的要求是:&客户端初始化连接服务端时,传递一个函数指针,之后每次服务端数据发生变化时,就自动调用我传过去的函数(相当于通知客户端刷新列表数据),而我想在这个回调函数中修改UI显示的ListWidget中的数据.请问应该怎么做?十分感谢~客户端和服务端是两个不同的程序?&两个进程?&在同一台机器本地还是基于网络的?第一次听过可……可能我对回调函数的理解不太对,是两个进程,基于网络的,通过通信的动态链接库,将函数指针传递到Server端,Server端赋值后,Client端再调用该函数.
------Solutions------
你的意思是客户端得到服务端的函数指针,想去调用服务端的函数?
------Solutions------
引用&11&楼&bailangxhao&的回复:我来给你补贴。。。。。我也遇到这样问题,我通过传指针实现了,主进程里widget里不断生成的线程都可用倒主线程里的某一个东西,但是我考虑倒,如果后来生成线程如果继续增大,可能回存在的同时调用此指针,回产生安全隐患,希望实现一个线程琐,让后来的线程同一时间只能一个线程调用此指针。。。完毕,一起努力咱来举个例子,Widget是主线程,每当一个新链接上来的时候,产生一个新进程,如果你把widget的this&指针传导新进程里,因为新进程是共享此指针的,后来进程其实都只是同一指针都可见,你如果读widget指针上琐Mutex,或者简单点上个flat控制量,新进程里都是可读到它的,剩下就简单了,在新进程里对此指针变化判断控制等操作,基本完事。。。。
------Solutions------
引用&16&楼&bailangxhao&的回复:引用&11&楼&bailangxhao&的回复:我来给你补贴。。。。。我也遇到这样问题,我通过传指针实现了,主进程里widget里不断生成的线程都可用倒主线程里的某一个东西,但是我考虑倒,如果后来生成线程如果继续增大,可能回存在的同时调用此指针,回产生安全隐患,希望实现一个线程琐,让后来的线程同一时间只能一个线程调用此指针。。。完毕,一起努力咱来举个例子,Widget是主线程,每……还是不是太明白,大体有个方向了~谢谢你~我的情况是,服务端数据变化时,会调用客户端通过动态链接库提供的回调函数,我在回调函数中发送了一个信号,让我的MainWindow类的槽函数做出响应,修改MainWindow中的内容,但是我怕用户在操作的时候正好也在修改这个内容,产生安全隐患,所以想加锁.我的问题:上述的情况,应该如何加锁.是在槽函数修改内容的时候加上Mutex就行了,还是在主线程中所有涉及到用户修改的部分都要加上Mutex?
------Solutions------
先回答我一个最简单的问题,你说的服务端和客户端是在同一台电脑上,还是基于网络在不同的电脑上?如果是基于网络的不同电脑的C/S设计,“动态链接库提供的回调函数”,什么牛x的动态链接库可以做到这个分布式的不同进程的函数回调呢?函数回调和网络通信是完全两个不同级别的概念。。。。。。
------Solutions------
我理解你的问题是:1,&UI可以改特定数据2,&网络消息也可以改特定数据3,&如果解决1,2同时发生的情况。那么解决的方法就是在你的数据的写入那里加锁就行了。类似于updateData(newData)这样的函数里面加锁应该就ok了。
------Solutions------
引用&18&楼&blueness883&的回复:先回答我一个最简单的问题,你说的服务端和客户端是在同一台电脑上,还是基于网络在不同的电脑上?如果是基于网络的不同电脑的C/S设计,“动态链接库提供的回调函数”,什么牛x的动态链接库可以做到这个分布式的不同进程的函数回调呢?函数回调和网络通信是完全两个不同级别的概念。。。。。。这个问题我也很想问,这是神马niuX的调用方式,感觉听不懂呢,晕菜。。。。。。。。
------Solutions------
引用&18&楼&blueness883&的回复:先回答我一个最简单的问题,你说的服务端和客户端是在同一台电脑上,还是基于网络在不同的电脑上?如果是基于网络的不同电脑的C/S设计,“动态链接库提供的回调函数”,什么牛x的动态链接库可以做到这个分布式的不同进程的函数回调呢?函数回调和网络通信是完全两个不同级别的概念。。。。。。谢谢~我明白了一些是在基于网络的不同的电脑上.其实我理解就是本地调用的,只不过是服务端的通信动态链接库发送一个消息,客户端本地的动态链接库中的函数接收到后,把参数赋值,自动调用这个函数而已,可能不算是回调函数吧.这块不是我做得,我主要负责界面部分.
------Solutions------
看了一眼自己的题目...才发觉...才刚刚要进入主题....之前有的概念理解的不是很到位.描述也不是很清楚,大家见谅了~
------Solutions------
Ok,明白你的意思了。那你现在问题解决没有?&我19楼提的方案ok不?
------Solutions------
引用&23&楼&blueness883&的回复:Ok,明白你的意思了。那你现在问题解决没有?&我19楼提的方案ok不?方案本身明白了,但是代码实现上还需要点时间,之前没有用过类似的东西.就用QMutex吗?
------Solutions------
还有一点不明白,在用户操作MainWindow的一个子对话框时,这时客户端重新调用了Update函数,将MainWindow中的内容刷新了一下.请问用户的操作和这个刷新是两个线程完成的吗,是可以并行的吗?为什么每次刷新的时候,我的子对话框都要卡一下,刷新结束后才能恢复正常?
------Solutions------
恩,就用QMutex就ok了。
------Solutions------
你确认你的程序是多线程的?
------Solutions------
所有UI的操作和UI刷新都是在GUI的主线程里面做的。你说的情况可能你是的程序其实是单线程的。当网络数据处理的时候,UI当然就不能动了。关于多线程,假设你有2个线程1---&&UI2---&&net当你net线程收到数据要更新UI的时候,应该是更新数据-&给UI的对象发信号-&然后UI对象在自己的UI线程里面刷新,更新UI显示。PS:如果你的数据是Qt的model/view里面的model管理更新的话,Qt有自动的dataChanged之类的信号通知UI&view,会自动刷新。
------Solutions------
我对QT的有的机制了解不太透彻.程序是多线程的,但是通信线程在接到信号后,是向我的MainWindow中发送的信号,然后通过MainWindow的成员函数修改的内容.
------Solutions------
我理解了,但是我在刷新的过程中,是可以操作MainWindow的对应内容的.我的依据是:我在刷新函数中设置了延时,是刷新函数时间变长,然后尝试操作要刷新的控件,但是是可以操作的.PS:之前说的卡一下是在子对话框的情况下会卡一下
------Solutions------
引用&29&楼&ff007bit&的回复:我对QT的有的机制了解不太透彻.程序是多线程的,但是通信线程在接到信号后,是向我的MainWindow中发送的信号,然后通过MainWindow的成员函数修改的内容.那就相当于是把我前面说的把数据处理的这个操作拿到UI线程来做了。那么自然这个时候会block住你的UI线程。可以参见一下我上面说的方案。更新数据-&给UI的对象发信号(在net线程)UI对象在自己的UI线程里面刷新,更新UI显示(在UI线程)你们的数据是用什么东西存的?
------Solutions------
“刷新函数中设置了延时”你怎么设置延时的?据我所知,QT的GUI线程是不能sleep的。如果你说的是延迟update函数的调用。但这个只是指延迟更新UI,并不是block住UI。当然这个时候UI还是可以操作的。
------Solutions------
protobuf存的数据.我没有用model,而是用的QTableWidget,显示的时候就insert一行比较麻烦.想改但是改的地方太多了....如果传的是一个固定结构体的数据,用model实现方便吗?
------Solutions------
“我没有用model,而是用的QTableWidget,显示的时候就insert一行”这么说来,你每次从网络更新数据,都需要重新new&很多QTableWidgetItem,然后insert?这设计。。。。。。
------Solutions------
好好看看QT的model/view的文档吧。会给你很多启发,最终你会发现原来搞了半天的代码,其实也许几行就搞定了。。。。。
------Solutions------
大神有没相关的程序啊?
------Solutions------
邮箱:不胜感激!
------Solutions------
Qt的demo和example里面很多model/view的东西,拿来看就行了。关键还是看QT的帮助文档。
------Solutions------
好的~真的是太谢谢了~
------Solutions------

我要回帖

更多关于 如何更改系统盘盘符 的文章

 

随机推荐