如何在另一个小部件更新qt中的相同内容后更新小部件内容

     2023-03-30     109

关键词:

【中文标题】如何在另一个小部件更新qt中的相同内容后更新小部件内容【英文标题】:How to update widget content after another widget updates same content in qt 【发布时间】:2012-05-18 15:18:11 【问题描述】:

我在 qt/pyside 中开发桌面应用程序,用于多台计算机,它有一个通用数据库服务器。 我有两个问题:

    问题 1:当用户打开小部件时,假设为 w1(例如小部件显示数据库中的城市列表)。 现在假设同一个用户打开新的小部件(w2)(添加/更新城市的小部件),现在如果他/她在数据库中添加新城市,那么如何在 w1 小部件中反映这种变化(即更新 w1 的内容)

    问题 2:场景与问题 1 非常相似,唯一的区别是用户 1 有一个打开的小部件/选项卡 w1 显示城市列表。 另一台机器上的用户 2(但数据库相同)添加了新城市,然后如何更新或更改用户 1 的小部件(这里可能用户 1 正在处理 w1 小部件)

他们有什么方法可以使用一些常用功能来做到这一点吗?

我已经为问题 1 找到了 2 个解决方案:

    定期检查数据库更改并更新小部件,但由于有多个小部件,这可能会导致应用程序变慢。

    从 w1 和 w2 发射信号将有槽来接收信号,然后 w2 将被更新。

这两个问题还有其他解决方案吗?

【问题讨论】:

【参考方案1】:
case:1

connect(w2,SIGNAL(On_Widgetchange),SLOT(this),SignaltoW1anddatabase());

this 是您的父应用。 On_Widgetchange() 我的意思是小部件 W2 在更新它时发出的信号。 将SignaltoW1anddatabase() 声明为私有插槽。

在您的SignaltoW1anddatabase() 中编写代码以根据 w2 更改更新数据库,并向 w1 添加/删除详细信息并更新 w1。这不会减慢您的应用程序。

case:2

更新数据库时需要广播消息,但不轮询数据库仍然可行。就像您可以使用相同的 Signal Slot 机制在特定 PC 上更新小部件时将包含城市名称的消息广播到网络。

connect(w1,SIGNAL(On_update()),this,SLOT(sendmessage()));

在 sendmessage() 中编写代码以发送添加的详细信息。并让 netwatcher 在另一边运行。

【讨论】:

信号发射和连接功能适用于问题 1,第二个问题同样的问题在网络不工作,什么是 netwatcher? 通过 netwatcher 我的意思是一些模块不断探测传入的数据包。

如何更新导航抽屉中的有状态小部件,同时在 Android 中保持与片段相同的类?

】如何更新导航抽屉中的有状态小部件,同时在Android中保持与片段相同的类?【英文标题】:HowtoupdatestatefulwidgetinNavigationdrawerwhilekeepingsameclasslikefragmentsinAndroid?【发布时间】:2018-11-1714:06:01【问题描述】:我想在从服务器、导... 查看详情

Qt 在另一个小部件中调整小部件的大小

】Qt在另一个小部件中调整小部件的大小【英文标题】:Qtresizewidgetinsideanotherwidget【发布时间】:2012-07-2312:02:35【问题描述】:我有以下布局:黑色矩形是QVBoxLayouts,红色是通用小部件容器,蓝色小矩形是我自定义的openGL小部件... 查看详情

如何从另一个小部件类更新小部件树 - Flutter

】如何从另一个小部件类更新小部件树-Flutter【英文标题】:Howtoupdatewidgettreefromanotherwidgetclass-Flutter【发布时间】:2022-01-1622:49:32【问题描述】:当一个类/小部件(父小部件和子小部件都是有状态的类)中的变量发生变化时,我... 查看详情

获取 Qt 小部件以更新使用 Qt Designer 制作的 Qt 表单中的鼠标事件

...ner【发布时间】:2019-02-1614:26:43【问题描述】:我制作了一个自定义QGraphicsView,我将其作为小部件添加到我使用QtDesigner制作的应用程序表单中。一切似乎都在工作,包括鼠标点击。进行绘图的 查看详情

单击按钮后如何通过服务执行小部件更新?

】单击按钮后如何通过服务执行小部件更新?【英文标题】:howtoperformwidgetupdatebyserviceafterclickingabutton?【发布时间】:2012-02-0510:04:43【问题描述】:这是我最初尝试部署小部件时的配置活动。publicclassWeatherAppWidgetConfigureextendsPrefe... 查看详情

如何在另一个小部件中管理小部件状态

】如何在另一个小部件中管理小部件状态【英文标题】:Howtomanageawidgetstateinanotherwidget【发布时间】:2021-09-2806:04:27【问题描述】:我最近开始使用Flutter和FlutterWeb。从另一个文件(tables_display.dart)更改一个文件(content_table.dart... 查看详情

从另一个线程更新 QT 小部件的不那么冗长的方法?

】从另一个线程更新QT小部件的不那么冗长的方法?【英文标题】:AlessverbosewaytoupdateQTwidgetsfromanotherthread?【发布时间】:2018-04-0118:36:48【问题描述】:我正在编写一个QT应用程序,它在其他线程上接收我需要从另一个线程更新的... 查看详情

一些第 3 方小部件在应用程序升级后停止更新

】一些第3方小部件在应用程序升级后停止更新【英文标题】:Some3rdpartywidgetsstopupdatingafterapplicationupgrade【发布时间】:2015-07-2921:45:01【问题描述】:我的应用程序托管用户安装的小部件,与启动器应用程序相同。绑定小部件后... 查看详情

Android:从活动更新小部件

...(Activity)用于编辑文本。当我单击小部件并输入文本后,如何使用文本更新小部件时打开EditW 查看详情

如何有效地更新应用小部件

】如何有效地更新应用小部件【英文标题】:Howtoefficientlyupdateappwidget【发布时间】:2014-04-0217:17:38【问题描述】:我正在开发一个音乐播放器。我想有效地更新小部件并避免java.lang.IllegalArgumentException:RemoteViewsforwidgetupdateexceedsmax... 查看详情

在 c++11 线程中更新 QT 小部件

】在c++11线程中更新QT小部件【英文标题】:updateQTwidgetinc++11thread【发布时间】:2017-07-1804:11:35【问题描述】:我正在使用c++11std::thread发出请求和响应,然后使用响应更新QTlineedit。我读过从非gui线程更新QT小部件是非法的。在某... 查看详情

Flutter - setState 不更新内部有状态小部件

...:2018-07-2810:15:08【问题描述】:基本上,我正在尝试制作一个应用程序,其内容将使用从网站获取信息的异步​​函数进行更新,但是当我尝试设置新状态时,它不会重新加载新内容。如果我调试应用程序,它会显示当前内容是... 查看详情

如何在 GTK 中更新(绘制)一个小部件和仅这个小部件

】如何在GTK中更新(绘制)一个小部件和仅这个小部件【英文标题】:Howtoupdate(draw)awidgetandonlythiswidgetinGTK【发布时间】:2021-05-1112:12:12【问题描述】:例如,当我有以下小部件层次结构时:窗口盒子绘图区1绘图区2然后我在绘图... 查看详情

更新继承小部件的变量值

...得的parent_inherit(InheritedWidget)中的令牌。但是我无法理解如何在没有该构建方法或parent_inherit小部件的情况下显式更新Inherited小部件变量的值。我想改变 查看详情

小部件如何在 Android 中更新(使用 AlarmManager)

】小部件如何在Android中更新(使用AlarmManager)【英文标题】:HowiswidgetbeingupdatedinAndroid(usingAlarmManager)【发布时间】:2021-11-0411:23:34【问题描述】:我的应用程序使用了一个小部件,我想在一天中的特定时间获取更新。代码如下... 查看详情

更新函数内的小部件

...述】:我的问题是,我正在尝试更新小部件背景颜色内部一个函数,并在一段时间后将其换回。问题是,Kivy似乎会在每个功能完成后立即更新小部件,并且它可以回到它自己的神秘循环中。是否有更新整个小部件或命令应用程... 查看详情

如何在更新父有状态小部件时更新子有状态小部件

】如何在更新父有状态小部件时更新子有状态小部件【英文标题】:HowtoUpdatechildstatefulwidgetonupdateparentstatefulwidget【发布时间】:2021-07-2514:42:28【问题描述】:当更新父状态小部件时,它也应该更新子状态小部件。当我刷新父状... 查看详情

如何阻止 Dashing 在视口之外更新小部件

】如何阻止Dashing在视口之外更新小部件【英文标题】:HowcanIstopDashingfromupdatingwidgetsoutsideofviewport【发布时间】:2017-10-1923:31:49【问题描述】:我已经建立了一个使用Shopify/Dashing作为基础的家庭自动化仪表板。Dashing使用Gridster.js... 查看详情