从 javascript 填充 QComboBox 和 QTable[View|Widget]
我正在尝试为使用 Qt 开发的应用程序编写脚本,使用 javascript 作为业务逻辑,使用 .ui 文件作为 GUI,但我面临两个问题。
在 ui 中,我声明了一个
QComboBox
,我成功地将 javascript 函数连接到它来处理 诸如editTextChanged
等信号。我想知道我无法从内部填充组合框 javascript 代码,因为addItem
函数不会向脚本端代码公开。combobox.editTextChanged[action](ComboBoxChanged); // OK(操作是“连接”或“断开连接”) combobox.addItem("元素 1"); // 错误!
有没有任何(其他)方法可以做到这一点?
我需要在类似表格的组件中显示一组项目(字符串)。我尝试使用
QTableView
并QTableWidget
但我无法插入或获取项目。例如,从 javascript 我无法访问QTableView
的setModel
函数(如果至少我可以创建一个QAbstractItemModel
脚本...),我也无法访问QTableWidget
类的item(row,col)
函数来设置 项目的文本。有没有办法向用户显示字符串表,让其编辑并检索 修改的内容?
提前致谢。
安东尼奥
I'm trying to write a script for an application developed with Qt, using javascript for the business logic and a .ui file for the GUI, but I'm facing two problems.
In the ui I declared a
QComboBox
, to which I successfully connect javascript functions to handle
signals such aseditTextChanged
, etc. I was wondering I cannot populate the combobox from within
javascript code, because theaddItem
function is not exposed to script-side code.combobox.editTextChanged[action](ComboBoxChanged); // OK (action is "connect" or "disconnect") combobox.addItem("element 1"); // Error!
Is there any (other) way to do this?
I need to show a set of items (strings) in a table-like component. I tried using a
QTableView
andQTableWidget
but I cannot insert or get items. For example, from javascript I cannot access thesetModel
function of aQTableView
(if at least I could create aQAbstractItemModel
from
script...), neither I can access theitem(row,col)
function of aQTableWidget
class, to set an
item's text. Is there any way to show a table of strings to the user, let edit them and retrieve
the modified contents?
Thanks in advance.
Antonio
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
由于 addItem() 函数不是槽,因此您需要一个中间公共槽来处理事务。您想要实现的其他功能也将是相同的。
Because the addItem() function isn't a slot, you'll need an intermediate public slot to handle the transaction. It'll be the same with the other functions you are trying to get at as well.