从 javascript 填充 QComboBox 和 QTable[View|Widget]

发布于 2024-11-10 23:51:53 字数 801 浏览 6 评论 0原文

我正在尝试为使用 Qt 开发的应用程序编写脚本,使用 javascript 作为业务逻辑,使用 .ui 文件作为 GUI,但我面临两个问题。

  1. 在 ui 中,我声明了一个 QComboBox,我成功地将 javascript 函数连接到它来处理 诸如 editTextChanged 等信号。我想知道我无法从内部填充组合框 javascript 代码,因为 addItem 函数不会向脚本端代码公开。

    combobox.editTextChanged[action](ComboBoxChanged); // OK(操作是“连接”或“断开连接”)
    combobox.addItem("元素 1"); // 错误!
    

    有没有任何(其他)方法可以做到这一点?

  2. 我需要在类似表格的组件中显示一组项目(字符串)。我尝试使用 QTableViewQTableWidget 但我无法插入或获取项目。例如,从 javascript 我无法访问 QTableViewsetModel 函数(如果至少我可以创建一个 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.

  1. In the ui I declared a QComboBox, to which I successfully connect javascript functions to handle
    signals such as editTextChanged, etc. I was wondering I cannot populate the combobox from within
    javascript code, because the addItem 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?

  2. I need to show a set of items (strings) in a table-like component. I tried using a QTableView and
    QTableWidget but I cannot insert or get items. For example, from javascript I cannot access the
    setModel function of a QTableView (if at least I could create a QAbstractItemModel from
    script...), neither I can access the item(row,col) function of a QTableWidget 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

焚却相思 2024-11-17 23:51:53

由于 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文