3

我是 PyQt 和 Qt Designer 的新手,我正在尝试创建一种简单的方法来将 qWidgets 与 SQLite 数据库中的表和列相关联。我的想法是用两个自定义属性标记设计器中的每个 qWidget,一个带有表名,一个带有列名。稍后,我将使用设计师提供的信息来构建我自己的类,该类在 qwidets 和 SQLite 数据库之间创建关系。

在 Designer 中添加自定义属性似乎工作正常,但是在将设计器的 xml 转换为 python(使用 UIC)时,不会生成这些自定义属性的代码。有没有人成功做到这一点?也许有更好的方法来做到这一点?

谢谢,

埃里克

4

3 回答 3

2

如果您在 Designer 中添加了一个名为“myproperty”的属性,请使用...

mywidget.property("myproperty")

这在 pyqt 4.8.3 中运行良好,也许它在以前的版本中不起作用。

于 2011-04-19T01:57:35.250 回答
0

看看这篇文章埃里克。特别看一下标题为“制作插件”的部分。River Bank Computing 有另一个很棒的PyQt 参考资料

编辑:我一直在做更多的阅读,但我找不到自动为你完成这项工作的方法。如果您可以在运行时而不是设计时添加动态属性,您可以完成相同的最终结果。这里解释一下QObject中的setProperty()方法,QWidget继承自该方法。

如果这对您不起作用,那么似乎您最好采用不那么通用的方法。您可以使用从 QSqlTableModel 派生的自定义类来跟踪您的连接信息,而不是使用通用 QWidget。另一种方法是只使用 QTableView 并自己进行查询以填充数据。这里这里是关于 Qt 数据库的文章。您可能会从其中一个中获得一些新设计的灵感。

于 2010-02-23T20:07:59.567 回答
0

我在使用 Designer 工具时运气不佳——通常我最终会做一些粗略的布局,使用pyuic然后手动编辑和添加其他东西。

听起来您可以通过创建自己的自定义类来轻松完成任务,该类继承自QWidget您描述的其他属性并具有您描述的其他属性。根据我尝试在设计器中使用自定义小部件的经验,我认为“更简单”的方法是自己编写类,然后手动设置布局。

我知道这并不能完全回答您的问题,但也许您会尝试我的一些建议。

于 2010-02-24T00:59:39.767 回答